Class 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 by JSDocInfoBuilder which provides early incompatibility detection.

    See Also:
    Serialized Form
    • Constructor Detail

      • JSDocInfo

        public JSDocInfo()
    • Method Detail

      • setDeprecated

        public void setDeprecated​(boolean value)
      • isConsistentIdGenerator

        public boolean isConsistentIdGenerator()
        Returns:
        whether the @consistentIdGenerator is present on this JSDocInfo
      • isStableIdGenerator

        public boolean isStableIdGenerator()
        Returns:
        whether the @stableIdGenerator is present on this JSDocInfo.
      • isConstant

        public boolean isConstant()
        Returns whether the @const annotation is present on this JSDocInfo.
      • isConstructor

        public boolean isConstructor()
        Returns whether the @constructor annotation is present on this JSDocInfo.
      • makesStructs

        public boolean makesStructs()
        Returns whether the @struct annotation is present on this JSDocInfo.
      • makesDicts

        public boolean makesDicts()
        Returns whether the @dict annotation is present on this JSDocInfo.
      • isDefine

        public boolean isDefine()
        Returns whether the @define annotation is present on this JSDocInfo. If this annotation is present, then the getType() method will retrieve the define type.
      • isHidden

        public boolean isHidden()
        Returns whether the @hidden annotation is present on this JSDocInfo.
      • isNoTypeCheck

        public boolean isNoTypeCheck()
        Returns whether the @nocheck annotation is present on this JSDocInfo.
      • shouldPreserveTry

        public boolean shouldPreserveTry()
        Returns whether the @preserveTry annotation is present on this JSDocInfo.
      • isOverride

        public boolean isOverride()
        Returns whether the @override annotation is present on this JSDocInfo.
      • isNoAlias

        public boolean isNoAlias()
        Returns whether the @noalias annotation is present on this JSDocInfo.
      • isDeprecated

        public boolean isDeprecated()
        Returns whether the @deprecated annotation is present on this JSDocInfo.
      • isInterface

        public boolean isInterface()
        Returns whether the @interface annotation is present on this JSDocInfo.
      • isExport

        public boolean isExport()
        Returns whether the @export annotation is present on this JSDocInfo.
      • isExpose

        public boolean isExpose()
        Returns whether the @expose annotation is present on this JSDocInfo.
      • isNoShadow

        public boolean isNoShadow()
        Returns whether the @noshadow annotation is present on this JSDocInfo.
      • isIdGenerator

        public boolean isIdGenerator()
        Returns:
        whether the @idGenerator is present on this JSDocInfo
      • isImplicitCast

        public boolean isImplicitCast()
        Returns whether the @implicitCast annotation is present on this JSDocInfo.
      • isNoSideEffects

        public boolean isNoSideEffects()
        Returns whether the @nosideeffects annotation is present on this JSDocInfo.
      • isExterns

        public boolean isExterns()
        Returns whether the @externs annotation is present on this JSDocInfo.
      • isJavaDispatch

        public boolean isJavaDispatch()
        Returns whether the @javadispatch annotation is present on this JSDocInfo.
      • isNoCompile

        public boolean isNoCompile()
        Returns whether the @nocompile annotation is present on this JSDocInfo.
      • containsDeclaration

        public boolean containsDeclaration()
        Returns:
        Whether there is declaration present on this JSDocInfo.
      • 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 a null 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 this JSDocInfo 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 this JSDocInfo 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 class java.lang.Object
      • hasBaseType

        public boolean hasBaseType()
        Returns whether this JSDocInfo 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.