Package com.google.javascript.rhino
Class JSDocInfo
java.lang.Object
com.google.javascript.rhino.JSDocInfo
- All Implemented Interfaces:
Serializable
JSDoc information describing JavaScript code. JSDoc is represented as a unified object with fields for each JSDoc annotation, even though some combinations are incorrect. For instance, if a JSDoc describes an enum, it cannot have information about a return type. This implementation takes advantage of such incompatibilities to reuse fields for multiple purposes, reducing memory consumption.
Constructing JSDocInfo objects is simplified by
JSDocInfoBuilder which provides early incompatibility detection.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classDefines a class for containing the parsing information for this JSDocInfo.static classA piece of information (found in a marker) which contains a position with a name node.static classA piece of information (found in a marker) which contains a position with a string.static classA piece of information (found in a marker) which contains a position with a type expression syntax tree.static enumVisibility categories. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddSuppression(String suppression) Add a suppressed warning.booleanReturns the list of authors or null if none.Gets the base type specified by the@extendsannotation.Returns the block-level description or null if none specified.com.google.common.collect.ImmutableList<String>Returns the deprecation reason or null if none specified.Gets the description specified by the@descannotation.Returns the description for the parameter with the given name, if its exists.Gets the enum parameter type specified by the@enumannotation.Returns the interfaces extended by an interfaceintGets the number of extended interfaces specifiedReturns the file overview or null if none specified.intGets the number of interfaces specified by the@implementsannotation.Returns the types specified by the@implementsannotation.Gets the name we're lending to in a@lendsannotation.Gets the description specified by the@licenseannotation.Gets the list of all markers for the documentation in this JSDoc.Gets the meaning specified by the@meaningannotation.Returns the set of sideeffect notations.Returns the original JSDoc comment string.intGets the number of parameters defined.Returns the set of names of the defined parameters.getParameterType(String parameter) Gets the parameter type.Returns the list of references or null if none.Returns the description of the returned object or null if none specified.Gets the return type specified by the@returnannotation.Gets the name of the source file that contains this JSDoc.Returns the set of suppressed warnings.com.google.common.collect.ImmutableList<String>Gets the template type name.Gets the type specified by the@thisannotation.Returns the list of thrown types.getType()Gets the type specified by the@typeannotation.Gets the typedef type specified by the@typeannotation.Returns a collection of all type nodes that are a part of this JSDocInfo.Returns the version or null if none.Gets the visibility specified by@private,@protectedor@publicannotation.booleanReturns whether thisJSDocInfocontains a type for@extendsannotation.booleanReturns whether a description exists for the parameter with the specified name.booleanReturns whether an enum parameter type, specified using the@enumannotation, is present on this JSDoc.booleanReturns whether this has a fileoverview flag.booleanbooleanhasParameter(String parameter) Returns whether the parameter is defined.booleanhasParameterType(String parameter) Returns whether the parameter has an attached type.booleanReturns whether thisJSDocInfocontains a type for@returnannotation.booleanReturns whether thisJSDocInfocontains a type for@thisannotation.booleanhasType()Returns whether a type, specified using the@typeannotation, is present on this JSDoc.booleanReturns whether a typedef parameter type, specified using the@typedefannotation, is present on this JSDoc.booleanbooleanReturns whether the@constannotation is present on thisJSDocInfo.booleanReturns whether the@constructorannotation is present on thisJSDocInfo.booleanisDefine()Returns whether the@defineannotation is present on thisJSDocInfo.booleanReturns whether the@deprecatedannotation is present on thisJSDocInfo.booleanisExport()Returns whether the@exportannotation is present on thisJSDocInfo.booleanisExpose()Returns whether the@exposeannotation is present on thisJSDocInfo.booleanReturns whether the@externsannotation is present on thisJSDocInfo.booleanisHidden()Returns whether the@hiddenannotation is present on thisJSDocInfo.booleanbooleanReturns whether the@implicitCastannotation is present on thisJSDocInfo.booleanReturns whether the@interfaceannotation is present on thisJSDocInfo.booleanReturns whether the@javadispatchannotation is present on thisJSDocInfo.booleanReturns whether JSDoc is annotated with@ngInjectannotation.booleanReturns whether the@noaliasannotation is present on thisJSDocInfo.booleanReturns whether the@nocompileannotation is present on thisJSDocInfo.booleanReturns whether the@noshadowannotation is present on thisJSDocInfo.booleanReturns whether the@nosideeffectsannotation is present on thisJSDocInfo.booleanReturns whether the@nocheckannotation is present on thisJSDocInfo.booleanReturns whether the@overrideannotation is present on thisJSDocInfo.booleanbooleanReturns whether the@dictannotation is present on thisJSDocInfo.booleanReturns whether the@structannotation is present on thisJSDocInfo.voidsetAssociatedNode(Node node) Sets the node associated with this JSDoc.voidsetDeprecated(boolean value) voidsetLicense(String license) License directives can appear in multiple comments, and always apply to the entire file.voidsetVisibility(JSDocInfo.Visibility visibility) booleanReturns whether the@preserveTryannotation is present on thisJSDocInfo.toString()
-
Constructor Details
-
JSDocInfo
public JSDocInfo()
-
-
Method Details
-
setDeprecated
public void setDeprecated(boolean value) -
isConsistentIdGenerator
public boolean isConsistentIdGenerator()- Returns:
- whether the
@consistentIdGeneratoris present on thisJSDocInfo
-
isStableIdGenerator
public boolean isStableIdGenerator()- Returns:
- whether the
@stableIdGeneratoris present on thisJSDocInfo.
-
isConstant
public boolean isConstant()Returns whether the@constannotation is present on thisJSDocInfo. -
isConstructor
public boolean isConstructor()Returns whether the@constructorannotation is present on thisJSDocInfo. -
makesStructs
public boolean makesStructs()Returns whether the@structannotation is present on thisJSDocInfo. -
makesDicts
public boolean makesDicts()Returns whether the@dictannotation is present on thisJSDocInfo. -
isDefine
public boolean isDefine() -
isHidden
public boolean isHidden()Returns whether the@hiddenannotation is present on thisJSDocInfo. -
isNoTypeCheck
public boolean isNoTypeCheck()Returns whether the@nocheckannotation is present on thisJSDocInfo. -
shouldPreserveTry
public boolean shouldPreserveTry()Returns whether the@preserveTryannotation is present on thisJSDocInfo. -
isOverride
public boolean isOverride()Returns whether the@overrideannotation is present on thisJSDocInfo. -
isNoAlias
public boolean isNoAlias()Returns whether the@noaliasannotation is present on thisJSDocInfo. -
isDeprecated
public boolean isDeprecated()Returns whether the@deprecatedannotation is present on thisJSDocInfo. -
isInterface
public boolean isInterface()Returns whether the@interfaceannotation is present on thisJSDocInfo. -
isExport
public boolean isExport()Returns whether the@exportannotation is present on thisJSDocInfo. -
isExpose
public boolean isExpose()Returns whether the@exposeannotation is present on thisJSDocInfo. -
isNoShadow
public boolean isNoShadow()Returns whether the@noshadowannotation is present on thisJSDocInfo. -
isIdGenerator
public boolean isIdGenerator()- Returns:
- whether the
@idGeneratoris present on thisJSDocInfo
-
isImplicitCast
public boolean isImplicitCast()Returns whether the@implicitCastannotation is present on thisJSDocInfo. -
isNoSideEffects
public boolean isNoSideEffects()Returns whether the@nosideeffectsannotation is present on thisJSDocInfo. -
isExterns
public boolean isExterns()Returns whether the@externsannotation is present on thisJSDocInfo. -
isJavaDispatch
public boolean isJavaDispatch()Returns whether the@javadispatchannotation is present on thisJSDocInfo. -
isNoCompile
public boolean isNoCompile()Returns whether the@nocompileannotation is present on thisJSDocInfo. -
containsDeclaration
public boolean containsDeclaration()- Returns:
- Whether there is declaration present on this
JSDocInfo.
-
setVisibility
-
addSuppression
Add a suppressed warning. -
getVisibility
Gets the visibility specified by@private,@protectedor@publicannotation. If no visibility is specified, visibility is inherited from the base class. -
getParameterType
Gets the parameter type.- Parameters:
parameter- the parameter's name- Returns:
- the parameter's type or
nullif this parameter is not defined or has anulltype
-
hasParameter
Returns whether the parameter is defined. -
hasParameterType
Returns whether the parameter has an attached type.- Returns:
trueif the parameter has an attached type,falseif the parameter has no attached type or does not exist.
-
getParameterNames
Returns the set of names of the defined parameters. The iteration order of the returned set is not the order in which parameters are defined.- Returns:
- the set of names of the defined parameters. The returned set is immutable.
-
getParameterCount
public int getParameterCount()Gets the number of parameters defined. -
getThrownTypes
Returns the list of thrown types. -
hasType
public boolean hasType()Returns whether a type, specified using the@typeannotation, is present on this JSDoc. -
hasEnumParameterType
public boolean hasEnumParameterType()Returns whether an enum parameter type, specified using the@enumannotation, is present on this JSDoc. -
hasTypedefType
public boolean hasTypedefType()Returns whether a typedef parameter type, specified using the@typedefannotation, is present on this JSDoc. -
hasReturnType
public boolean hasReturnType()Returns whether thisJSDocInfocontains a type for@returnannotation. -
getType
Gets the type specified by the@typeannotation. -
getReturnType
Gets the return type specified by the@returnannotation. -
getEnumParameterType
Gets the enum parameter type specified by the@enumannotation. -
getTypedefType
Gets the typedef type specified by the@typeannotation. -
getThisType
Gets the type specified by the@thisannotation. -
hasThisType
public boolean hasThisType()Returns whether thisJSDocInfocontains a type for@thisannotation. -
getBaseType
Gets the base type specified by the@extendsannotation. -
getDescription
Gets the description specified by the@descannotation. -
getMeaning
Gets the meaning specified by the@meaningannotation. In localization systems, two messages with the same content but different "meanings" may be translated differently. By default, we use the name of the variable that the message is initialized to as the "meaning" of the message. But some code generators (like Closure Templates) inject their own meaning with the jsdoc@meaningannotation. -
getLendsName
Gets the name we're lending to in a@lendsannotation. In many reflection APIs, you pass an anonymous object to a function, and that function mixes the anonymous object into another object. The@lendsannotation allows the type system to track those property assignments. -
isNgInject
public boolean isNgInject()Returns whether JSDoc is annotated with@ngInjectannotation. -
getLicense
Gets the description specified by the@licenseannotation. -
setLicense
License directives can appear in multiple comments, and always apply to the entire file. Break protection and allow outsiders to update the license string so that we can attach the license text even when the JSDocInfo has been created and tagged with other information.- Parameters:
license- String containing new license text.
-
toString
-
hasBaseType
public boolean hasBaseType()Returns whether thisJSDocInfocontains a type for@extendsannotation. -
getImplementedInterfaces
Returns the types specified by the@implementsannotation.- Returns:
- An immutable list of JSTypeExpression objects that can be resolved to types.
-
getImplementedInterfaceCount
public int getImplementedInterfaceCount()Gets the number of interfaces specified by the@implementsannotation. -
getExtendedInterfaces
Returns the interfaces extended by an interface- Returns:
- An immutable list of JSTypeExpression objects that can be resolved to types.
-
getExtendedInterfacesCount
public int getExtendedInterfacesCount()Gets the number of extended interfaces specified -
getDeprecationReason
Returns the deprecation reason or null if none specified. -
getSuppressions
Returns the set of suppressed warnings. -
getModifies
Returns the set of sideeffect notations. -
hasDescriptionForParameter
Returns whether a description exists for the parameter with the specified name. -
getDescriptionForParameter
Returns the description for the parameter with the given name, if its exists. -
getAuthors
Returns the list of authors or null if none. -
getReferences
Returns the list of references or null if none. -
getVersion
Returns the version or null if none. -
getReturnDescription
Returns the description of the returned object or null if none specified. -
getBlockDescription
Returns the block-level description or null if none specified. -
hasFileOverview
public boolean hasFileOverview()Returns whether this has a fileoverview flag. -
getFileOverview
Returns the file overview or null if none specified. -
getAssociatedNode
-
setAssociatedNode
Sets the node associated with this JSDoc. Notice that many nodes may have pointer to the same JSDocInfo object (because we propagate it across the type graph). But there is only one canonical "owner" node of the JSDocInfo, which corresponds to its original place in the syntax tree. -
getSourceName
Gets the name of the source file that contains this JSDoc. -
getMarkers
Gets the list of all markers for the documentation in this JSDoc. -
getTemplateTypeNames
Gets the template type name. -
getClassTemplateTypeNames
-
getTypeNodes
Returns a collection of all type nodes that are a part of this JSDocInfo. This includes @type, @this, @extends, @implements, @param, @throws, and @return. Any future type specific JSDoc should make sure to add the appropriate nodes here.- Returns:
- collection of all type nodes
-
hasModifies
public boolean hasModifies() -
getOriginalCommentString
Returns the original JSDoc comment string. Returns null unless parseJsDocDocumentation is enabled via the ParserConfig.
-