Package com.google.javascript.rhino
Class JSDocInfo.Builder
- java.lang.Object
-
- com.google.javascript.rhino.JSDocInfo.Builder
-
- Enclosing class:
- JSDocInfo
public static class JSDocInfo.Builder extends java.lang.Object
A builder forJSDocInfo
objects. This builder is required because JSDocInfo instances have immutable structure. It provides early incompatibility detection among properties stored on theJSDocInfo
object being created.
-
-
Constructor Summary
Constructors Constructor Description Builder()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
addAuthor(java.lang.String author)
Adds an author to the current information.boolean
addLicense(java.lang.String license)
boolean
addReference(java.lang.String reference)
Adds a reference ("@see") to the current information.void
addSuppression(java.lang.String suppression)
JSDocInfo
build()
Builds aJSDocInfo
object based on the populated information and returns it.JSDocInfo
build(boolean always)
Builds aJSDocInfo
object based on the populated information and returns it.JSDocInfo
buildAndReset()
Builds aJSDocInfo
object based on the populated information and returns it.boolean
changeBaseType(JSTypeExpression type)
Changes a base type, even if one has already been set on currentInfo.static JSDocInfo.Builder
copyFrom(JSDocInfo info)
static JSDocInfo.Builder
copyFromWithNewType(JSDocInfo info, JSTypeExpression typeExpression)
boolean
hasParameter(java.lang.String name)
boolean
isConstructorRecorded()
boolean
isCustomElementRecorded()
Returns whether current JSDoc is annotated with@customElement
.boolean
isDeprecationReasonRecorded()
Returns whether a deprecation reason has been recorded.boolean
isDescriptionRecorded()
Returns whether this builder recorded a description.boolean
isDictRecorded()
boolean
isInterfaceRecorded()
boolean
isMixinClassRecorded()
Returns whether current JSDoc is annotated with@mixinClass
.boolean
isMixinFunctionRecorded()
Returns whether current JSDoc is annotated with@mixinFunction
.boolean
isNgInjectRecorded()
Returns whether current JSDoc is annotated with@ngInject
.boolean
isPolymerBehaviorRecorded()
Returns whether current JSDoc is annotated with@polymerBehavior
.boolean
isPolymerRecorded()
Returns whether current JSDoc is annotated with@polymer
.boolean
isPopulatedWithFileOverview()
boolean
isStructRecorded()
boolean
isUnrestrictedRecorded()
boolean
isWizactionRecorded()
Returns whether current JSDoc is annotated with@wizaction
.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.void
markName(java.lang.String name, Node templateNode, int lineno, int charno)
Adds a name declaration to the current marker.void
markText(java.lang.String text, int startLineno, int startCharno, int endLineno, int endCharno)
Adds a textual block to the current marker.void
markTypeNode(Node typeNode, int lineno, int startCharno, int endLineno, int endCharno, boolean hasLC)
Adds a type declaration to the current marker.static JSDocInfo.Builder
maybeCopyFrom(JSDocInfo info)
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.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.void
overwriteVisibility(JSDocInfo.Visibility visibility)
JSDocInfo.Builder
parseDocumentation()
Configures the builder to parse documentation.boolean
recordAbstract()
boolean
recordAlternateMessageId(java.lang.String alternateMessageId)
Records an ID for an alternate message to be used if this message is not yet translated.boolean
recordBaseType(JSTypeExpression type)
Records a base type.boolean
recordBlockDescription(java.lang.String description)
Records a block-level description.boolean
recordClosurePrimitiveId(java.lang.String closurePrimitiveId)
Records an identifier for a Closure Primitive.boolean
recordConsistentIdGenerator()
Records that theJSDocInfo
being built should have itsJSDocInfo.isConsistentIdGenerator()
flag set totrue
.boolean
recordConstancy()
boolean
recordConstructor()
boolean
recordCustomElement()
Records that this method is to be exposed as a customElement.boolean
recordDefineType(JSTypeExpression type)
Records the type of a define.boolean
recordDeprecated()
boolean
recordDeprecationReason(java.lang.String reason)
Records the deprecation reason.boolean
recordDescription(java.lang.String description)
Records a description giving context for translation (i18n).boolean
recordDict()
boolean
recordEnumParameterType(JSTypeExpression type)
Records a parameter type to an enum.boolean
recordExport()
boolean
recordExpose()
boolean
recordExtendedInterface(JSTypeExpression interfaceType)
Records an extended interface type.boolean
recordExterns()
boolean
recordFileOverview(java.lang.String description)
Records a fileoverview description.boolean
recordFinality()
boolean
recordHiddenness()
boolean
recordIdGenerator()
boolean
recordImplementedInterface(JSTypeExpression interfaceType)
Records an implemented interface.boolean
recordImplicitCast()
boolean
recordImplicitMatch()
Records that theJSDocInfo
being built should have itsJSDocInfo.usesImplicitMatch()
flag set totrue
.void
recordInlineType()
boolean
recordInterface()
boolean
recordLends(JSTypeExpression name)
Records that we're lending to another name.boolean
recordLicense(java.lang.String license)
boolean
recordMappedIdGenerator()
Records that theJSDocInfo
being built should have itsJSDocInfo.isStableIdGenerator()
flag set totrue
.boolean
recordMeaning(java.lang.String meaning)
Records a meaning giving context for translation (i18n).boolean
recordMixinClass()
Records that this method is to be exposed as a mixinClass.boolean
recordMixinFunction()
Records that this method is to be exposed as a mixinFunction.boolean
recordModifies(java.util.Set<java.lang.String> modifies)
Records the list of modifies warnings.boolean
recordMutable()
boolean
recordNgInject(boolean ngInject)
Records that we'd like to add$inject
property inferred from parameters.boolean
recordNoCollapse()
boolean
recordNoCompile()
boolean
recordNoInline()
boolean
recordNoSideEffects()
Records that theJSDocInfo
being built should have itsJSDocInfo.isNoSideEffects()
flag set totrue
.void
recordOriginalCommentPosition(int position)
Sets the position of original JSDoc comment.void
recordOriginalCommentString(java.lang.String sourceComment)
Sets the original JSDoc comment string.boolean
recordOverride()
boolean
recordParameter(java.lang.String parameterName, JSTypeExpression type)
Records a typed parameter.boolean
recordParameterDescription(java.lang.String parameterName, java.lang.String description)
Records a parameter's description.boolean
recordPolymer()
Records that this method is to be exposed as a polymer element.boolean
recordPolymerBehavior()
Records that this method is to be exposed as a polymerBehavior.boolean
recordReturnDescription(java.lang.String description)
Records a return descriptionboolean
recordReturnType(JSTypeExpression type)
Records a return type.boolean
recordStableIdGenerator()
Records that theJSDocInfo
being built should have itsJSDocInfo.isStableIdGenerator()
flag set totrue
.boolean
recordStruct()
void
recordSuppressions(java.util.Set<java.lang.String> suppressions)
Records the list of suppressed warnings, possibly adding to the set of already configured warnings.boolean
recordTemplateTypeName(java.lang.String name)
Records a template type name.boolean
recordTemplateTypeName(java.lang.String name, JSTypeExpression bound)
boolean
recordThisType(JSTypeExpression type)
Records a type for@this
annotation.boolean
recordThrowDescription(JSTypeExpression type, java.lang.String description)
Records a throw type's description.boolean
recordThrowType(JSTypeExpression type)
Records a thrown type.boolean
recordType(JSTypeExpression type)
Records a type.boolean
recordTypedef(JSTypeExpression type)
Records that theJSDocInfo
being built should be populated with atypedef
'd type.boolean
recordTypeSummary()
boolean
recordTypeTransformation(java.lang.String name, Node expr)
Records a type transformation expression together with its template type name.boolean
recordUnrestricted()
Records that theJSDocInfo
being built should have itsJSDocInfo.makesUnrestricted()
flag set totrue
.boolean
recordVersion(java.lang.String version)
Records the version.boolean
recordVisibility(JSDocInfo.Visibility visibility)
Records a visibility.boolean
recordWizaction()
Records that this method is to be exposed as a wizaction.boolean
recordXidGenerator()
boolean
removeExport()
boolean
shouldParseDocumentation()
-
-
-
Method Detail
-
copyFrom
public static JSDocInfo.Builder copyFrom(JSDocInfo info)
-
maybeCopyFrom
public static JSDocInfo.Builder maybeCopyFrom(@Nullable JSDocInfo info)
-
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.
-
copyFromWithNewType
public static JSDocInfo.Builder copyFromWithNewType(JSDocInfo info, JSTypeExpression typeExpression)
-
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()
-
isDescriptionRecorded
public boolean isDescriptionRecorded()
Returns whether this builder recorded a description.
-
build
public JSDocInfo build()
Builds aJSDocInfo
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 returnsnull
-
build
public JSDocInfo build(boolean always)
Builds aJSDocInfo
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 andalways
is false, returnsnull
. Ifalways
is true, returns a default JSDocInfo.
-
buildAndReset
public JSDocInfo buildAndReset()
Builds aJSDocInfo
object based on the populated information and returns it. Once this method is called, the builder can be reused to build anotherJSDocInfo
object.- Returns:
- a
JSDocInfo
object populated with the values given to this builder. If no value was populated, this method simply returnsnull
-
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 andfalse
if it was already defined
-
overwriteVisibility
public void overwriteVisibility(JSDocInfo.Visibility visibility)
-
recordParameter
public boolean recordParameter(java.lang.String parameterName, JSTypeExpression type)
Records a typed parameter.- Returns:
true
if the typed parameter was recorded andfalse
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 andfalse
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 andfalse
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 andfalse
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 theJSDocInfo
being built should have itsJSDocInfo.isConsistentIdGenerator()
flag set totrue
.- Returns:
true
if the consistentIdGenerator flag was recorded andfalse
if it was already recorded
-
recordStableIdGenerator
public boolean recordStableIdGenerator()
Records that theJSDocInfo
being built should have itsJSDocInfo.isStableIdGenerator()
flag set totrue
.- Returns:
true
if the stableIdGenerator flag was recorded andfalse
if it was already recorded.
-
recordXidGenerator
public boolean recordXidGenerator()
- Returns:
true
if the isXidGenerator flag was recorded andfalse
if it was already recorded.
-
recordMappedIdGenerator
public boolean recordMappedIdGenerator()
Records that theJSDocInfo
being built should have itsJSDocInfo.isStableIdGenerator()
flag set totrue
.- Returns:
true
if the stableIdGenerator flag was recorded andfalse
if it was already recorded.
-
recordIdGenerator
public boolean recordIdGenerator()
- Returns:
true
if the idGenerator flag was recorded andfalse
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 andfalse
if it is invalid or was already defined
-
recordInlineType
public void recordInlineType()
-
recordTypedef
public boolean recordTypedef(JSTypeExpression type)
Records that theJSDocInfo
being built should be populated with atypedef
'd type.
-
recordReturnType
public boolean recordReturnType(JSTypeExpression type)
Records a return type.- Returns:
true
if the return type was recorded andfalse
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 andfalse
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 andfalse
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 andfalse
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 andfalse
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()
- Returns:
true
if the constancy was recorded andfalse
if it was already defined
-
recordMutable
public boolean recordMutable()
- Returns:
true
if the mutability was recorded andfalse
if it was already defined
-
recordFinality
public boolean recordFinality()
- Returns:
true
if the finality was recorded andfalse
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 andfalse
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 andfalse
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()
- Returns:
true
if the hiddenness was recorded andfalse
if it was already defined
-
recordNoCompile
public boolean recordNoCompile()
- Returns:
true
if the no compile flag was recorded andfalse
if it was already recorded
-
recordNoCollapse
public boolean recordNoCollapse()
- Returns:
true
if the no collapse flag was recorded andfalse
if it was already recorded
-
recordNoInline
public boolean recordNoInline()
- Returns:
true
if the no inline flag was recorded andfalse
if it was already recorded
-
recordConstructor
public boolean recordConstructor()
- Returns:
true
if the constructor was recorded andfalse
if it was already defined or it was incompatible with the existing flags
-
recordImplicitMatch
public boolean recordImplicitMatch()
Records that theJSDocInfo
being built should have itsJSDocInfo.usesImplicitMatch()
flag set totrue
.- Returns:
true
if the@record
tag was recorded andfalse
if it was already defined or it was incompatible with the existing flags
-
isConstructorRecorded
public boolean isConstructorRecorded()
-
recordUnrestricted
public boolean recordUnrestricted()
Records that theJSDocInfo
being built should have itsJSDocInfo.makesUnrestricted()
flag set totrue
.- Returns:
true
if annotation was recorded andfalse
if it was already defined or it was incompatible with the existing flags
-
isUnrestrictedRecorded
public boolean isUnrestrictedRecorded()
-
recordAbstract
public boolean recordAbstract()
- Returns:
true
if the flag was recorded andfalse
if it was already defined or it was incompatible with the existing flags
-
recordStruct
public boolean recordStruct()
- Returns:
true
if the struct was recorded andfalse
if it was already defined or it was incompatible with the existing flags
-
isStructRecorded
public boolean isStructRecorded()
-
recordDict
public boolean recordDict()
- Returns:
true
if the dict was recorded andfalse
if it was already defined or it was incompatible with the existing flags
-
isDictRecorded
public boolean isDictRecorded()
-
recordOverride
public boolean recordOverride()
-
recordDeprecated
public boolean recordDeprecated()
-
recordInterface
public boolean recordInterface()
- Returns:
true
if the flag was recorded andfalse
if it was already defined or it was incompatible with the existing flags
-
recordExport
public boolean recordExport()
-
removeExport
public boolean removeExport()
-
recordExpose
public boolean recordExpose()
-
recordImplicitCast
public boolean recordImplicitCast()
-
recordNoSideEffects
public boolean recordNoSideEffects()
Records that theJSDocInfo
being built should have itsJSDocInfo.isNoSideEffects()
flag set totrue
.
-
recordExterns
public boolean recordExterns()
-
recordTypeSummary
public boolean recordTypeSummary()
-
isInterfaceRecorded
public boolean isInterfaceRecorded()
-
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.
-
-