@Immutable
public interface CodingConvention
extends java.io.Serializable
Modifier and Type | Interface and Description |
---|---|
static class |
CodingConvention.AssertionFunctionLookup
This stores a relation from either name or Closure Primitive to assertion function
|
static class |
CodingConvention.AssertionFunctionSpec
A description of a JavaScript function that will throw an exception when either:
One of its parameters does not match the return type of the function
One of its parameters is falsy.
|
static class |
CodingConvention.Bind
Bind class
|
static class |
CodingConvention.Cache
Cache class
|
static class |
CodingConvention.DelegateRelationship
Delegates provides a mechanism and structure for identifying where classes
can call out to optional code to augment their functionality.
|
static class |
CodingConvention.ObjectLiteralCast
An object literal cast provides a mechanism to cast object literals to
other types without a warning.
|
static class |
CodingConvention.SubclassRelationship
Record subclass relations
|
static class |
CodingConvention.SubclassType
Specify the kind of inheritance
|
Modifier and Type | Method and Description |
---|---|
void |
applyDelegateRelationship(NominalTypeBuilder delegateSuperclass,
NominalTypeBuilder delegateBase,
NominalTypeBuilder delegator,
ObjectType delegateProxy,
FunctionType findDelegate)
In many JS libraries, the function that creates a delegate relationship
also adds properties to the delegator and delegate base.
|
void |
applySingletonGetter(NominalTypeBuilder classType,
FunctionType getterType)
In many JS libraries, the function that adds a singleton getter to a class
adds properties to the class.
|
void |
applySubclassRelationship(NominalTypeBuilder parent,
NominalTypeBuilder child,
CodingConvention.SubclassType type)
In many JS libraries, the function that produces inheritance also
adds properties to the superclass and/or subclass.
|
boolean |
blockRenamingForProperty(java.lang.String name)
Check whether the property name is eligible for renaming.
|
void |
checkForCallingConventionDefinitions(Node getPropNode,
java.util.Map<java.lang.String,java.lang.String> delegateCallingConventions)
Checks for getprops that set the calling conventions on delegate methods.
|
void |
defineDelegateProxyPrototypeProperties(JSTypeRegistry registry,
java.util.List<NominalTypeBuilder> delegateProxies,
java.util.Map<java.lang.String,java.lang.String> delegateCallingConventions)
Defines the delegate proxy prototype properties.
|
CodingConvention.Cache |
describeCachingCall(Node node)
Builds a
CodingConvention.Cache instance from the given call node and returns that instance, or null
if the Node does not resemble a cache utility call. |
CodingConvention.Bind |
describeFunctionBind(Node n)
A Bind instance or null.
|
CodingConvention.Bind |
describeFunctionBind(Node n,
boolean callerChecksTypes,
boolean iCheckTypes)
A Bind instance or null.
|
java.lang.String |
extractClassNameIfProvide(Node node,
Node parent)
Convenience method for determining provided dependencies amongst different
JS scripts.
|
java.lang.String |
extractClassNameIfRequire(Node node,
Node parent)
Convenience method for determining required dependencies amongst different
JS scripts.
|
boolean |
extractIsModuleFile(Node node,
Node parent)
Convenience method for determining if the node indicates the file
is a "module" file (a file whose top level symbols are not in global
scope).
|
java.lang.String |
getAbstractMethodName()
Function name for abstract methods.
|
java.util.Collection<CodingConvention.AssertionFunctionSpec> |
getAssertionFunctions()
Returns the set of AssertionFunction.
|
CodingConvention.SubclassRelationship |
getClassesDefinedByCall(Node callNode)
Checks if the given method defines a subclass relationship,
and if it does, returns information on that relationship.
|
CodingConvention.DelegateRelationship |
getDelegateRelationship(Node callNode) |
java.lang.String |
getDelegateSuperclassName() |
java.lang.String |
getExportPropertyFunction()
Function name used when exporting properties.
|
java.lang.String |
getExportSymbolFunction()
Function name used when exporting symbols.
|
java.lang.String |
getGlobalObject()
Gets the name of the global object.
|
java.util.Collection<java.lang.String> |
getIndirectlyDeclaredProperties()
Gets a collection of all properties that are defined indirectly on global
objects.
|
CodingConvention.ObjectLiteralCast |
getObjectLiteralCast(Node callNode)
Checks if the given method performs a object literal cast, and if it does,
returns information on the cast.
|
java.lang.String |
getPackageName(StaticSourceFile source) |
java.lang.String |
getSingletonGetterClassName(Node callNode)
Checks if the given method defines a singleton getter, and if it does,
returns the name of the class with the singleton getter.
|
boolean |
hasPrivacyConvention()
Whether this CodingConvention includes a convention for what private names should look like.
|
java.util.List<java.lang.String> |
identifyTypeDeclarationCall(Node n)
Checks if the given CALL node is forward-declaring any types,
and returns the name of the types if it is.
|
boolean |
isAliasingGlobalThis(Node n)
Whether this statement is creating an alias of the global object
|
boolean |
isClassFactoryCall(Node callNode)
Checks if the given method is a call to a class factory, such a factory returns a
unique class.
|
boolean |
isConstant(java.lang.String variableName)
This checks whether a given variable name, such as a name in all-caps
should be treated as if it had the @const annotation.
|
boolean |
isConstantKey(java.lang.String keyName)
This checks whether a given key of an object literal, such as a
name in all-caps should be treated as if it had the @const
annotation.
|
boolean |
isExported(java.lang.String name)
Should be isExported(name, true) || isExported(name, false);
|
boolean |
isExported(java.lang.String name,
boolean local)
Checks whether a global variable or function name should be treated as
exported, or externally referenceable.
|
boolean |
isFunctionCallThatAlwaysThrows(Node n)
Used by CheckMissingReturn.
|
boolean |
isInlinableFunction(Node n) |
boolean |
isOptionalParameter(Node parameter)
This checks whether a given parameter name should be treated as an
optional parameter as far as type checking or function call arg count
checking is concerned.
|
boolean |
isPrivate(java.lang.String name)
Checks whether a name should be considered private.
|
boolean |
isPropertyRenameFunction(java.lang.String name)
Whether this CALL function is returning the string name for a property, but allows renaming.
|
boolean |
isPropertyTestFunction(Node call)
Whether this CALL function is testing for the existence of a property.
|
boolean |
isPrototypeAlias(Node getProp)
Whether this GETPROP node is an alias for an object prototype.
|
boolean |
isSuperClassReference(java.lang.String propertyName)
Returns true if passed a string referring to the superclass.
|
boolean |
isValidEnumKey(java.lang.String key)
This checks that a given
key may be used as a key for an enum. |
boolean |
isVarArgsParameter(Node parameter)
This checks whether a given parameter should be treated as a marker
for a variable argument list function.
|
boolean isConstant(java.lang.String variableName)
variableName
- potentially constant variable nametrue
if the name should be treated as a constant.boolean isConstantKey(java.lang.String keyName)
boolean isValidEnumKey(java.lang.String key)
key
may be used as a key for an enum.key
- the potential key to an enumtrue
if the key
may be used as an enum key,
false
otherwiseboolean isOptionalParameter(Node parameter)
parameter
- The parameter's node.true
if the parameter should be treated as an optional
parameter.boolean isVarArgsParameter(Node parameter)
parameter
- The parameter's node.true
if the parameter should be treated as a variable
length parameter.boolean isFunctionCallThatAlwaysThrows(Node n)
boolean isExported(java.lang.String name, boolean local)
name
- A global variable or function name.local
- true
if the name is a local variable.true
if the name should be considered exported.boolean isExported(java.lang.String name)
boolean blockRenamingForProperty(java.lang.String name)
name
- A property name.true
if the name can not be renamed.java.lang.String getPackageName(StaticSourceFile source)
boolean isPrivate(java.lang.String name)
name
- The name of a global variable or function, or a method or
property.true
if the name should be considered private.boolean hasPrivacyConvention()
CodingConvention.SubclassRelationship getClassesDefinedByCall(Node callNode)
callNode
- A CALL node.boolean isClassFactoryCall(Node callNode)
callNode
- A CALL node.boolean isSuperClassReference(java.lang.String propertyName)
boolean extractIsModuleFile(Node node, Node parent)
java.lang.String extractClassNameIfProvide(Node node, Node parent)
java.lang.String extractClassNameIfRequire(Node node, Node parent)
java.lang.String getExportPropertyFunction()
java.lang.String getExportSymbolFunction()
java.util.List<java.lang.String> identifyTypeDeclarationCall(Node n)
void applySubclassRelationship(NominalTypeBuilder parent, NominalTypeBuilder child, CodingConvention.SubclassType type)
java.lang.String getAbstractMethodName()
java.lang.String getSingletonGetterClassName(Node callNode)
callNode
- A CALL node.void applySingletonGetter(NominalTypeBuilder classType, FunctionType getterType)
boolean isInlinableFunction(Node n)
CodingConvention.DelegateRelationship getDelegateRelationship(Node callNode)
void applyDelegateRelationship(NominalTypeBuilder delegateSuperclass, NominalTypeBuilder delegateBase, NominalTypeBuilder delegator, ObjectType delegateProxy, FunctionType findDelegate)
java.lang.String getDelegateSuperclassName()
void checkForCallingConventionDefinitions(Node getPropNode, java.util.Map<java.lang.String,java.lang.String> delegateCallingConventions)
void defineDelegateProxyPrototypeProperties(JSTypeRegistry registry, java.util.List<NominalTypeBuilder> delegateProxies, java.util.Map<java.lang.String,java.lang.String> delegateCallingConventions)
delegateProxies
- List of delegate proxy types.java.lang.String getGlobalObject()
boolean isAliasingGlobalThis(Node n)
CodingConvention.Bind describeFunctionBind(Node n)
CodingConvention.Bind describeFunctionBind(Node n, boolean callerChecksTypes, boolean iCheckTypes)
callerChecksTypes
- Trust that the caller of this method has verified
that the bound node has a function type.iCheckTypes
- Check that the bound node has a function type.CodingConvention.Cache describeCachingCall(Node node)
CodingConvention.Cache
instance from the given call node and returns that instance, or null
if the Node
does not resemble a cache utility call.
This should match calls to a cache utility method. This type of node is specially considered for side-effects since conventionally storing something on a cache object would be seen as a side-effect.
boolean isPropertyTestFunction(Node call)
boolean isPrototypeAlias(Node getProp)
boolean isPropertyRenameFunction(java.lang.String name)
CodingConvention.ObjectLiteralCast getObjectLiteralCast(Node callNode)
callNode
- A CALL node.java.util.Collection<java.lang.String> getIndirectlyDeclaredProperties()
java.util.Collection<CodingConvention.AssertionFunctionSpec> getAssertionFunctions()
Copyright © 2009-2019 Google. All Rights Reserved.