Package com.google.javascript.rhino
Class JSDocInfo
- java.lang.Object
-
- com.google.javascript.rhino.JSDocInfo
-
- All Implemented Interfaces:
java.io.Serializable
public class JSDocInfo extends java.lang.Object implements java.io.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 byJSDocInfoBuilder
which provides early incompatibility detection.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
JSDocInfo.Marker
Defines a class for containing the parsing information for this JSDocInfo.static class
JSDocInfo.NamePosition
A piece of information (found in a marker) which contains a position with a name node.static class
JSDocInfo.StringPosition
A piece of information (found in a marker) which contains a position with a string.static class
JSDocInfo.TypePosition
A piece of information (found in a marker) which contains a position with a type expression syntax tree.static class
JSDocInfo.Visibility
Visibility categories.
-
Constructor Summary
Constructors Constructor Description JSDocInfo()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addSuppression(java.lang.String suppression)
Add a suppressed warning.boolean
containsDeclaration()
Node
getAssociatedNode()
java.util.Collection<java.lang.String>
getAuthors()
Returns the list of authors or null if none.JSTypeExpression
getBaseType()
Gets the base type specified by the@extends
annotation.java.lang.String
getBlockDescription()
Returns the block-level description or null if none specified.com.google.common.collect.ImmutableList<java.lang.String>
getClassTemplateTypeNames()
java.lang.String
getDeprecationReason()
Returns the deprecation reason or null if none specified.java.lang.String
getDescription()
Gets the description specified by the@desc
annotation.java.lang.String
getDescriptionForParameter(java.lang.String name)
Returns the description for the parameter with the given name, if its exists.JSTypeExpression
getEnumParameterType()
Gets the enum parameter type specified by the@enum
annotation.java.util.List<JSTypeExpression>
getExtendedInterfaces()
Returns the interfaces extended by an interfaceint
getExtendedInterfacesCount()
Gets the number of extended interfaces specifiedjava.lang.String
getFileOverview()
Returns the file overview or null if none specified.int
getImplementedInterfaceCount()
Gets the number of interfaces specified by the@implements
annotation.java.util.List<JSTypeExpression>
getImplementedInterfaces()
Returns the types specified by the@implements
annotation.java.lang.String
getLendsName()
Gets the name we're lending to in a@lends
annotation.java.lang.String
getLicense()
Gets the description specified by the@license
annotation.java.util.Collection<JSDocInfo.Marker>
getMarkers()
Gets the list of all markers for the documentation in this JSDoc.java.lang.String
getMeaning()
Gets the meaning specified by the@meaning
annotation.java.util.Set<java.lang.String>
getModifies()
Returns the set of sideeffect notations.java.lang.String
getOriginalCommentString()
Returns the original JSDoc comment string.int
getParameterCount()
Gets the number of parameters defined.java.util.Set<java.lang.String>
getParameterNames()
Returns the set of names of the defined parameters.JSTypeExpression
getParameterType(java.lang.String parameter)
Gets the parameter type.java.util.Collection<java.lang.String>
getReferences()
Returns the list of references or null if none.java.lang.String
getReturnDescription()
Returns the description of the returned object or null if none specified.JSTypeExpression
getReturnType()
Gets the return type specified by the@return
annotation.java.lang.String
getSourceName()
Gets the name of the source file that contains this JSDoc.java.util.Set<java.lang.String>
getSuppressions()
Returns the set of suppressed warnings.com.google.common.collect.ImmutableList<java.lang.String>
getTemplateTypeNames()
Gets the template type name.JSTypeExpression
getThisType()
Gets the type specified by the@this
annotation.java.util.List<JSTypeExpression>
getThrownTypes()
Returns the list of thrown types.JSTypeExpression
getType()
Gets the type specified by the@type
annotation.JSTypeExpression
getTypedefType()
Gets the typedef type specified by the@type
annotation.java.util.Collection<Node>
getTypeNodes()
Returns a collection of all type nodes that are a part of this JSDocInfo.java.lang.String
getVersion()
Returns the version or null if none.JSDocInfo.Visibility
getVisibility()
Gets the visibility specified by@private
,@protected
or@public
annotation.boolean
hasBaseType()
Returns whether thisJSDocInfo
contains a type for@extends
annotation.boolean
hasDescriptionForParameter(java.lang.String name)
Returns whether a description exists for the parameter with the specified name.boolean
hasEnumParameterType()
Returns whether an enum parameter type, specified using the@enum
annotation, is present on this JSDoc.boolean
hasFileOverview()
Returns whether this has a fileoverview flag.boolean
hasModifies()
boolean
hasParameter(java.lang.String parameter)
Returns whether the parameter is defined.boolean
hasParameterType(java.lang.String parameter)
Returns whether the parameter has an attached type.boolean
hasReturnType()
Returns whether thisJSDocInfo
contains a type for@return
annotation.boolean
hasThisType()
Returns whether thisJSDocInfo
contains a type for@this
annotation.boolean
hasType()
Returns whether a type, specified using the@type
annotation, is present on this JSDoc.boolean
hasTypedefType()
Returns whether a typedef parameter type, specified using the@typedef
annotation, is present on this JSDoc.boolean
isConsistentIdGenerator()
boolean
isConstant()
Returns whether the@const
annotation is present on thisJSDocInfo
.boolean
isConstructor()
Returns whether the@constructor
annotation is present on thisJSDocInfo
.boolean
isDefine()
Returns whether the@define
annotation is present on thisJSDocInfo
.boolean
isDeprecated()
Returns whether the@deprecated
annotation is present on thisJSDocInfo
.boolean
isExport()
Returns whether the@export
annotation is present on thisJSDocInfo
.boolean
isExpose()
Returns whether the@expose
annotation is present on thisJSDocInfo
.boolean
isExterns()
Returns whether the@externs
annotation is present on thisJSDocInfo
.boolean
isHidden()
Returns whether the@hidden
annotation is present on thisJSDocInfo
.boolean
isIdGenerator()
boolean
isImplicitCast()
Returns whether the@implicitCast
annotation is present on thisJSDocInfo
.boolean
isInterface()
Returns whether the@interface
annotation is present on thisJSDocInfo
.boolean
isJavaDispatch()
Returns whether the@javadispatch
annotation is present on thisJSDocInfo
.boolean
isNgInject()
Returns whether JSDoc is annotated with@ngInject
annotation.boolean
isNoAlias()
Returns whether the@noalias
annotation is present on thisJSDocInfo
.boolean
isNoCompile()
Returns whether the@nocompile
annotation is present on thisJSDocInfo
.boolean
isNoShadow()
Returns whether the@noshadow
annotation is present on thisJSDocInfo
.boolean
isNoSideEffects()
Returns whether the@nosideeffects
annotation is present on thisJSDocInfo
.boolean
isNoTypeCheck()
Returns whether the@nocheck
annotation is present on thisJSDocInfo
.boolean
isOverride()
Returns whether the@override
annotation is present on thisJSDocInfo
.boolean
isStableIdGenerator()
boolean
makesDicts()
Returns whether the@dict
annotation is present on thisJSDocInfo
.boolean
makesStructs()
Returns whether the@struct
annotation is present on thisJSDocInfo
.void
setAssociatedNode(Node node)
Sets the node associated with this JSDoc.void
setDeprecated(boolean value)
void
setLicense(java.lang.String license)
License directives can appear in multiple comments, and always apply to the entire file.void
setVisibility(JSDocInfo.Visibility visibility)
boolean
shouldPreserveTry()
Returns whether the@preserveTry
annotation is present on thisJSDocInfo
.java.lang.String
toString()
-
-
-
Method Detail
-
setDeprecated
public void setDeprecated(boolean value)
-
isConsistentIdGenerator
public boolean isConsistentIdGenerator()
- Returns:
- whether the
@consistentIdGenerator
is present on thisJSDocInfo
-
isStableIdGenerator
public boolean isStableIdGenerator()
- Returns:
- whether the
@stableIdGenerator
is present on thisJSDocInfo
.
-
isConstant
public boolean isConstant()
Returns whether the@const
annotation is present on thisJSDocInfo
.
-
isConstructor
public boolean isConstructor()
Returns whether the@constructor
annotation is present on thisJSDocInfo
.
-
makesStructs
public boolean makesStructs()
Returns whether the@struct
annotation is present on thisJSDocInfo
.
-
makesDicts
public boolean makesDicts()
Returns whether the@dict
annotation is present on thisJSDocInfo
.
-
isDefine
public boolean isDefine()
-
isHidden
public boolean isHidden()
Returns whether the@hidden
annotation is present on thisJSDocInfo
.
-
isNoTypeCheck
public boolean isNoTypeCheck()
Returns whether the@nocheck
annotation is present on thisJSDocInfo
.
-
shouldPreserveTry
public boolean shouldPreserveTry()
Returns whether the@preserveTry
annotation is present on thisJSDocInfo
.
-
isOverride
public boolean isOverride()
Returns whether the@override
annotation is present on thisJSDocInfo
.
-
isNoAlias
public boolean isNoAlias()
Returns whether the@noalias
annotation is present on thisJSDocInfo
.
-
isDeprecated
public boolean isDeprecated()
Returns whether the@deprecated
annotation is present on thisJSDocInfo
.
-
isInterface
public boolean isInterface()
Returns whether the@interface
annotation is present on thisJSDocInfo
.
-
isExport
public boolean isExport()
Returns whether the@export
annotation is present on thisJSDocInfo
.
-
isExpose
public boolean isExpose()
Returns whether the@expose
annotation is present on thisJSDocInfo
.
-
isNoShadow
public boolean isNoShadow()
Returns whether the@noshadow
annotation is present on thisJSDocInfo
.
-
isIdGenerator
public boolean isIdGenerator()
- Returns:
- whether the
@idGenerator
is present on thisJSDocInfo
-
isImplicitCast
public boolean isImplicitCast()
Returns whether the@implicitCast
annotation is present on thisJSDocInfo
.
-
isNoSideEffects
public boolean isNoSideEffects()
Returns whether the@nosideeffects
annotation is present on thisJSDocInfo
.
-
isExterns
public boolean isExterns()
Returns whether the@externs
annotation is present on thisJSDocInfo
.
-
isJavaDispatch
public boolean isJavaDispatch()
Returns whether the@javadispatch
annotation is present on thisJSDocInfo
.
-
isNoCompile
public boolean isNoCompile()
Returns whether the@nocompile
annotation is present on thisJSDocInfo
.
-
containsDeclaration
public boolean containsDeclaration()
- Returns:
- Whether there is declaration present on this
JSDocInfo
.
-
setVisibility
public void setVisibility(JSDocInfo.Visibility visibility)
-
addSuppression
public void addSuppression(java.lang.String suppression)
Add a suppressed warning.
-
getVisibility
public JSDocInfo.Visibility getVisibility()
Gets the visibility specified by@private
,@protected
or@public
annotation. If no visibility is specified, visibility is inherited from the base class.
-
getParameterType
public JSTypeExpression getParameterType(java.lang.String parameter)
Gets the parameter type.- Parameters:
parameter
- the parameter's name- Returns:
- the parameter's type or
null
if this parameter is not defined or has anull
type
-
hasParameter
public boolean hasParameter(java.lang.String parameter)
Returns whether the parameter is defined.
-
hasParameterType
public boolean hasParameterType(java.lang.String parameter)
Returns whether the parameter has an attached type.- Returns:
true
if the parameter has an attached type,false
if the parameter has no attached type or does not exist.
-
getParameterNames
public java.util.Set<java.lang.String> 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
public java.util.List<JSTypeExpression> getThrownTypes()
Returns the list of thrown types.
-
hasType
public boolean hasType()
Returns whether a type, specified using the@type
annotation, is present on this JSDoc.
-
hasEnumParameterType
public boolean hasEnumParameterType()
Returns whether an enum parameter type, specified using the@enum
annotation, is present on this JSDoc.
-
hasTypedefType
public boolean hasTypedefType()
Returns whether a typedef parameter type, specified using the@typedef
annotation, is present on this JSDoc.
-
hasReturnType
public boolean hasReturnType()
Returns whether thisJSDocInfo
contains a type for@return
annotation.
-
getType
public JSTypeExpression getType()
Gets the type specified by the@type
annotation.
-
getReturnType
public JSTypeExpression getReturnType()
Gets the return type specified by the@return
annotation.
-
getEnumParameterType
public JSTypeExpression getEnumParameterType()
Gets the enum parameter type specified by the@enum
annotation.
-
getTypedefType
public JSTypeExpression getTypedefType()
Gets the typedef type specified by the@type
annotation.
-
getThisType
public JSTypeExpression getThisType()
Gets the type specified by the@this
annotation.
-
hasThisType
public boolean hasThisType()
Returns whether thisJSDocInfo
contains a type for@this
annotation.
-
getBaseType
public JSTypeExpression getBaseType()
Gets the base type specified by the@extends
annotation.
-
getDescription
public java.lang.String getDescription()
Gets the description specified by the@desc
annotation.
-
getMeaning
public java.lang.String getMeaning()
Gets the meaning specified by the@meaning
annotation. 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@meaning
annotation.
-
getLendsName
public java.lang.String getLendsName()
Gets the name we're lending to in a@lends
annotation. In many reflection APIs, you pass an anonymous object to a function, and that function mixes the anonymous object into another object. The@lends
annotation allows the type system to track those property assignments.
-
isNgInject
public boolean isNgInject()
Returns whether JSDoc is annotated with@ngInject
annotation.
-
getLicense
public java.lang.String getLicense()
Gets the description specified by the@license
annotation.
-
setLicense
public void setLicense(java.lang.String license)
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
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
hasBaseType
public boolean hasBaseType()
Returns whether thisJSDocInfo
contains a type for@extends
annotation.
-
getImplementedInterfaces
public java.util.List<JSTypeExpression> getImplementedInterfaces()
Returns the types specified by the@implements
annotation.- 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@implements
annotation.
-
getExtendedInterfaces
public java.util.List<JSTypeExpression> 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
public java.lang.String getDeprecationReason()
Returns the deprecation reason or null if none specified.
-
getSuppressions
public java.util.Set<java.lang.String> getSuppressions()
Returns the set of suppressed warnings.
-
getModifies
public java.util.Set<java.lang.String> getModifies()
Returns the set of sideeffect notations.
-
hasDescriptionForParameter
public boolean hasDescriptionForParameter(java.lang.String name)
Returns whether a description exists for the parameter with the specified name.
-
getDescriptionForParameter
public java.lang.String getDescriptionForParameter(java.lang.String name)
Returns the description for the parameter with the given name, if its exists.
-
getAuthors
public java.util.Collection<java.lang.String> getAuthors()
Returns the list of authors or null if none.
-
getReferences
public java.util.Collection<java.lang.String> getReferences()
Returns the list of references or null if none.
-
getVersion
public java.lang.String getVersion()
Returns the version or null if none.
-
getReturnDescription
public java.lang.String getReturnDescription()
Returns the description of the returned object or null if none specified.
-
getBlockDescription
public java.lang.String getBlockDescription()
Returns the block-level description or null if none specified.
-
hasFileOverview
public boolean hasFileOverview()
Returns whether this has a fileoverview flag.
-
getFileOverview
public java.lang.String getFileOverview()
Returns the file overview or null if none specified.
-
getAssociatedNode
public Node getAssociatedNode()
-
setAssociatedNode
public void setAssociatedNode(Node node)
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
public java.lang.String getSourceName()
Gets the name of the source file that contains this JSDoc.
-
getMarkers
public java.util.Collection<JSDocInfo.Marker> getMarkers()
Gets the list of all markers for the documentation in this JSDoc.
-
getTemplateTypeNames
public com.google.common.collect.ImmutableList<java.lang.String> getTemplateTypeNames()
Gets the template type name.
-
getClassTemplateTypeNames
public com.google.common.collect.ImmutableList<java.lang.String> getClassTemplateTypeNames()
-
getTypeNodes
public java.util.Collection<Node> 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
public java.lang.String getOriginalCommentString()
Returns the original JSDoc comment string. Returns null unless parseJsDocDocumentation is enabled via the ParserConfig.
-
-