Class JSDocInfo.Builder

  • Enclosing class:
    JSDocInfo

    public static class JSDocInfo.Builder
    extends java.lang.Object
    A builder for JSDocInfo objects. This builder is required because JSDocInfo instances have immutable structure. It provides early incompatibility detection among properties stored on the JSDocInfo object being created.
    • Constructor Detail

      • Builder

        public Builder()
    • Method Detail

      • maybeCopyFromWithNewType

        public static JSDocInfo.Builder maybeCopyFromWithNewType​(JSDocInfo info,
                                                                 JSTypeExpression typeExpression)
        Returns a JSDocInfo.Builder that contains a copy of the given JSDocInfo in which only the @type field of the JSDocInfo is replaced with the given typeExpression. This is done to prevent generating code in the client module which references local variables from another module.
      • maybeCopyFromAndReplaceNames

        public static JSDocInfo.Builder maybeCopyFromAndReplaceNames​(JSDocInfo info,
                                                                     java.util.Set<java.lang.String> moduleLocalNamesToReplace)
        Returns a JSDocInfo.Builder that contains a JSDoc in which all module local types (which may be inside @param, @type or @returns are replaced with unknown. This is done to prevent generating code in the client module which references local variables from another module.
      • parseDocumentation

        public JSDocInfo.Builder parseDocumentation()
        Configures the builder to parse documentation. This should be called immediately after instantiating the builder if documentation should be included, since it enables various operations to do work that would otherwise be no-ops.
      • shouldParseDocumentation

        public boolean shouldParseDocumentation()
      • recordOriginalCommentString

        public void recordOriginalCommentString​(java.lang.String sourceComment)
        Sets the original JSDoc comment string. This is a no-op if the builder isn't configured to record documentation.
      • recordOriginalCommentPosition

        public void recordOriginalCommentPosition​(int position)
        Sets the position of original JSDoc comment.
      • isPopulatedWithFileOverview

        public boolean isPopulatedWithFileOverview()
        Returns whether this builder is populated with information that can be used to build() a JSDocInfo object that has a fileoverview tag.
      • isDescriptionRecorded

        public boolean isDescriptionRecorded()
        Returns whether this builder recorded a description.
      • build

        public JSDocInfo build()
        Builds a JSDocInfo object based on the populated information and returns it.
        Returns:
        a JSDocInfo object populated with the values given to this builder. If no value was populated, this method simply returns null
      • build

        public JSDocInfo build​(boolean always)
        Builds a JSDocInfo object based on the populated information and returns it.
        Parameters:
        always - Return an default JSDoc object.
        Returns:
        a JSDocInfo object populated with the values given to this builder. If no value was populated and always is false, returns null. If always is true, returns a default JSDocInfo.
      • buildAndReset

        public JSDocInfo buildAndReset()
        Builds a JSDocInfo object based on the populated information and returns it. Once this method is called, the builder can be reused to build another JSDocInfo object.
        Returns:
        a JSDocInfo object populated with the values given to this builder. If no value was populated, this method simply returns null
      • markAnnotation

        public void markAnnotation​(java.lang.String annotation,
                                   int lineno,
                                   int charno)
        Adds a marker to the current JSDocInfo and populates the marker with the annotation information.
      • markText

        public void markText​(java.lang.String text,
                             int startLineno,
                             int startCharno,
                             int endLineno,
                             int endCharno)
        Adds a textual block to the current marker.
      • markTypeNode

        public void markTypeNode​(Node typeNode,
                                 int lineno,
                                 int startCharno,
                                 int endLineno,
                                 int endCharno,
                                 boolean hasLC)
        Adds a type declaration to the current marker.
      • markName

        public void markName​(java.lang.String name,
                             Node templateNode,
                             int lineno,
                             int charno)
        Adds a name declaration to the current marker.
      • recordBlockDescription

        public boolean recordBlockDescription​(java.lang.String description)
        Records a block-level description.
        Returns:
        true if the description was recorded.
      • recordVisibility

        public boolean recordVisibility​(JSDocInfo.Visibility visibility)
        Records a visibility.
        Returns:
        true if the visibility was recorded and false if it was already defined
      • recordParameter

        public boolean recordParameter​(java.lang.String parameterName,
                                       JSTypeExpression type)
        Records a typed parameter.
        Returns:
        true if the typed parameter was recorded and false if a parameter with the same name was already defined
      • recordParameterDescription

        public boolean recordParameterDescription​(java.lang.String parameterName,
                                                  java.lang.String description)
        Records a parameter's description.
        Returns:
        true if the parameter's description was recorded and false if a parameter with the same name was already defined
      • recordTemplateTypeName

        public boolean recordTemplateTypeName​(java.lang.String name)
        Records a template type name.
        Returns:
        true if the template type name was recorded and false if the input template type name was already defined.
      • recordTemplateTypeName

        public boolean recordTemplateTypeName​(java.lang.String name,
                                              JSTypeExpression bound)
      • recordTypeTransformation

        public boolean recordTypeTransformation​(java.lang.String name,
                                                Node expr)
        Records a type transformation expression together with its template type name.
      • recordThrowType

        public boolean recordThrowType​(JSTypeExpression type)
        Records a thrown type.
      • recordThrowDescription

        public boolean recordThrowDescription​(JSTypeExpression type,
                                              java.lang.String description)
        Records a throw type's description.
        Returns:
        true if the type's description was recorded and false if a description with the same type was already defined
      • addAuthor

        public boolean addAuthor​(java.lang.String author)
        Adds an author to the current information.
      • addReference

        public boolean addReference​(java.lang.String reference)
        Adds a reference ("@see") to the current information.
      • recordConsistentIdGenerator

        public boolean recordConsistentIdGenerator()
        Records that the JSDocInfo being built should have its JSDocInfo.isConsistentIdGenerator() flag set to true.
        Returns:
        true if the consistentIdGenerator flag was recorded and false if it was already recorded
      • recordStableIdGenerator

        public boolean recordStableIdGenerator()
        Records that the JSDocInfo being built should have its JSDocInfo.isStableIdGenerator() flag set to true.
        Returns:
        true if the stableIdGenerator flag was recorded and false if it was already recorded.
      • recordXidGenerator

        public boolean recordXidGenerator()
        Records that the JSDocInfo being built should have its JSDocInfo.isXidGenerator() flag set to true.
        Returns:
        true if the isXidGenerator flag was recorded and false if it was already recorded.
      • recordMappedIdGenerator

        public boolean recordMappedIdGenerator()
        Records that the JSDocInfo being built should have its JSDocInfo.isStableIdGenerator() flag set to true.
        Returns:
        true if the stableIdGenerator flag was recorded and false if it was already recorded.
      • recordIdGenerator

        public boolean recordIdGenerator()
        Records that the JSDocInfo being built should have its JSDocInfo.isIdGenerator() flag set to true.
        Returns:
        true if the idGenerator flag was recorded and false if it was already recorded
      • recordVersion

        public boolean recordVersion​(java.lang.String version)
        Records the version.
      • recordDeprecationReason

        public boolean recordDeprecationReason​(java.lang.String reason)
        Records the deprecation reason.
      • isDeprecationReasonRecorded

        public boolean isDeprecationReasonRecorded()
        Returns whether a deprecation reason has been recorded.
      • recordSuppressions

        public void recordSuppressions​(java.util.Set<java.lang.String> suppressions)
        Records the list of suppressed warnings, possibly adding to the set of already configured warnings.
      • addSuppression

        public void addSuppression​(java.lang.String suppression)
      • recordModifies

        public boolean recordModifies​(java.util.Set<java.lang.String> modifies)
        Records the list of modifies warnings.
      • recordType

        public boolean recordType​(JSTypeExpression type)
        Records a type.
        Returns:
        true if the type was recorded and false if it is invalid or was already defined
      • recordInlineType

        public void recordInlineType()
      • recordTypedef

        public boolean recordTypedef​(JSTypeExpression type)
        Records that the JSDocInfo being built should be populated with a typedef'd type.
      • recordReturnType

        public boolean recordReturnType​(JSTypeExpression type)
        Records a return type.
        Returns:
        true if the return type was recorded and false if it is invalid or was already defined
      • recordReturnDescription

        public boolean recordReturnDescription​(java.lang.String description)
        Records a return description
        Returns:
        true if the return description was recorded and false if it is invalid or was already defined
      • recordDefineType

        public boolean recordDefineType​(JSTypeExpression type)
        Records the type of a define.

        'Define' values are special constants that may be manipulated by the compiler. They are designed to mimic the #define command in the C preprocessor.

      • recordEnumParameterType

        public boolean recordEnumParameterType​(JSTypeExpression type)
        Records a parameter type to an enum.
        Returns:
        true if the enum's parameter type was recorded and false if it was invalid or already defined
      • recordThisType

        public boolean recordThisType​(JSTypeExpression type)
        Records a type for @this annotation.
        Returns:
        true if the type was recorded and false if it is invalid or if it collided with @enum or @type annotations
      • recordBaseType

        public boolean recordBaseType​(JSTypeExpression type)
        Records a base type.
        Returns:
        true if the base type was recorded and false if it was already defined
      • changeBaseType

        public boolean changeBaseType​(JSTypeExpression type)
        Changes a base type, even if one has already been set on currentInfo.
        Returns:
        true if the base type was changed successfully.
      • recordConstancy

        public boolean recordConstancy()
        Records that the JSDocInfo being built should have its JSDocInfo.isConstant() flag set to true.
        Returns:
        true if the constancy was recorded and false if it was already defined
      • recordMutable

        public boolean recordMutable()
        Records that the JSDocInfo being built should have its JSDocInfo.isConstant() flag set to false.
        Returns:
        true if the mutability was recorded and false if it was already defined
      • recordFinality

        public boolean recordFinality()
        Records that the JSDocInfo being built should have its JSDocInfo.isFinal() flag set to true.
        Returns:
        true if the finality was recorded and false if it was already defined
      • recordDescription

        public boolean recordDescription​(java.lang.String description)
        Records a description giving context for translation (i18n).
        Returns:
        true if the description was recorded and false if the description was invalid or was already defined
      • recordMeaning

        public boolean recordMeaning​(java.lang.String meaning)
        Records a meaning giving context for translation (i18n). Different meanings will result in different translations.
        Returns:
        true If the meaning was successfully updated.
      • recordAlternateMessageId

        public boolean recordAlternateMessageId​(java.lang.String alternateMessageId)
        Records an ID for an alternate message to be used if this message is not yet translated.
        Returns:
        true If the alternate message ID was successfully updated.
      • recordClosurePrimitiveId

        public boolean recordClosurePrimitiveId​(java.lang.String closurePrimitiveId)
        Records an identifier for a Closure Primitive. function.
        Returns:
        true If the id was successfully updated.
      • recordFileOverview

        public boolean recordFileOverview​(java.lang.String description)
        Records a fileoverview description.
        Returns:
        true if the description was recorded and false if the description was invalid or was already defined.
      • recordLicense

        public boolean recordLicense​(java.lang.String license)
      • addLicense

        public boolean addLicense​(java.lang.String license)
      • recordHiddenness

        public boolean recordHiddenness()
        Records that the JSDocInfo being built should have its JSDocInfo.isHidden() flag set to true.
        Returns:
        true if the hiddenness was recorded and false if it was already defined
      • recordNoCompile

        public boolean recordNoCompile()
        Records that the JSDocInfo being built should have its JSDocInfo.isNoCompile() flag set to true.
        Returns:
        true if the no compile flag was recorded and false if it was already recorded
      • recordNoCollapse

        public boolean recordNoCollapse()
        Records that the JSDocInfo being built should have its JSDocInfo.isNoCollapse() flag set to true.
        Returns:
        true if the no collapse flag was recorded and false if it was already recorded
      • recordNoInline

        public boolean recordNoInline()
        Records that the JSDocInfo being built should have its JSDocInfo.isNoInline() flag set to true.
        Returns:
        true if the no inline flag was recorded and false if it was already recorded
      • recordConstructor

        public boolean recordConstructor()
        Records that the JSDocInfo being built should have its JSDocInfo.isConstructor() flag set to true.
        Returns:
        true if the constructor was recorded and false if it was already defined or it was incompatible with the existing flags
      • recordImplicitMatch

        public boolean recordImplicitMatch()
        Records that the JSDocInfo being built should have its JSDocInfo.usesImplicitMatch() flag set to true.
        Returns:
        true if the @record tag was recorded and false if it was already defined or it was incompatible with the existing flags
      • recordUnrestricted

        public boolean recordUnrestricted()
        Records that the JSDocInfo being built should have its JSDocInfo.makesUnrestricted() flag set to true.
        Returns:
        true if annotation was recorded and false if it was already defined or it was incompatible with the existing flags
      • isUnrestrictedRecorded

        public boolean isUnrestrictedRecorded()
      • recordAbstract

        public boolean recordAbstract()
        Records that the JSDocInfo being built should have its JSDocInfo.isAbstract() flag set to true.
        Returns:
        true if the flag was recorded and false if it was already defined or it was incompatible with the existing flags
      • recordStruct

        public boolean recordStruct()
        Records that the JSDocInfo being built should have its JSDocInfo.makesStructs() flag set to true.
        Returns:
        true if the struct was recorded and false if it was already defined or it was incompatible with the existing flags
      • isStructRecorded

        public boolean isStructRecorded()
      • recordDict

        public boolean recordDict()
        Records that the JSDocInfo being built should have its JSDocInfo.makesDicts() flag set to true.
        Returns:
        true if the dict was recorded and false if it was already defined or it was incompatible with the existing flags
      • isDictRecorded

        public boolean isDictRecorded()
      • recordInterface

        public boolean recordInterface()
        Records that the JSDocInfo being built should have its JSDocInfo.isInterface() flag set to true.
        Returns:
        true if the flag was recorded and false if it was already defined or it was incompatible with the existing flags
      • hasParameter

        public boolean hasParameter​(java.lang.String name)
        Returns:
        Whether a parameter of the given name has already been recorded.
      • recordImplementedInterface

        public boolean recordImplementedInterface​(JSTypeExpression interfaceType)
        Records an implemented interface.
      • recordExtendedInterface

        public boolean recordExtendedInterface​(JSTypeExpression interfaceType)
        Records an extended interface type.
      • recordLends

        public boolean recordLends​(JSTypeExpression name)
        Records that we're lending to another name.
      • isNgInjectRecorded

        public boolean isNgInjectRecorded()
        Returns whether current JSDoc is annotated with @ngInject.
      • recordNgInject

        public boolean recordNgInject​(boolean ngInject)
        Records that we'd like to add $inject property inferred from parameters.
      • isWizactionRecorded

        public boolean isWizactionRecorded()
        Returns whether current JSDoc is annotated with @wizaction.
      • recordWizaction

        public boolean recordWizaction()
        Records that this method is to be exposed as a wizaction.
      • isPolymerBehaviorRecorded

        public boolean isPolymerBehaviorRecorded()
        Returns whether current JSDoc is annotated with @polymerBehavior.
      • recordPolymerBehavior

        public boolean recordPolymerBehavior()
        Records that this method is to be exposed as a polymerBehavior.
      • isPolymerRecorded

        public boolean isPolymerRecorded()
        Returns whether current JSDoc is annotated with @polymer.
      • recordPolymer

        public boolean recordPolymer()
        Records that this method is to be exposed as a polymer element.
      • isCustomElementRecorded

        public boolean isCustomElementRecorded()
        Returns whether current JSDoc is annotated with @customElement.
      • recordCustomElement

        public boolean recordCustomElement()
        Records that this method is to be exposed as a customElement.
      • isMixinClassRecorded

        public boolean isMixinClassRecorded()
        Returns whether current JSDoc is annotated with @mixinClass.
      • recordMixinClass

        public boolean recordMixinClass()
        Records that this method is to be exposed as a mixinClass.
      • isMixinFunctionRecorded

        public boolean isMixinFunctionRecorded()
        Returns whether current JSDoc is annotated with @mixinFunction.
      • recordMixinFunction

        public boolean recordMixinFunction()
        Records that this method is to be exposed as a mixinFunction.