Class CodingConventions.Proxy

  • All Implemented Interfaces:
    CodingConvention, java.io.Serializable
    Direct Known Subclasses:
    ClosureCodingConvention, GoogleCodingConvention, JqueryCodingConvention
    Enclosing class:
    CodingConventions

    public static class CodingConventions.Proxy
    extends java.lang.Object
    implements CodingConvention
    A convention that wraps another. When you want to support a new library, you should subclass this delegate, and override the methods that you want to customize. This way, a person using jQuery and Closure Library can create a new coding convention by creating a jQueryCodingConvention that delegates to a ClosureCodingConvention that delegates to a DefaultCodingConvention.
    See Also:
    Serialized Form
    • Method Detail

      • isConstant

        public boolean isConstant​(java.lang.String variableName)
        Description copied from interface: CodingConvention
        This checks whether a given variable name, such as a name in all-caps should be treated as if it had the @const annotation.
        Specified by:
        isConstant in interface CodingConvention
        Parameters:
        variableName - potentially constant variable name
        Returns:
        true if the name should be treated as a constant.
      • isConstantKey

        public boolean isConstantKey​(java.lang.String keyName)
        Description copied from interface: CodingConvention
        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.
        Specified by:
        isConstantKey in interface CodingConvention
      • isValidEnumKey

        public boolean isValidEnumKey​(java.lang.String key)
        Description copied from interface: CodingConvention
        This checks that a given key may be used as a key for an enum.
        Specified by:
        isValidEnumKey in interface CodingConvention
        Parameters:
        key - the potential key to an enum
        Returns:
        true if the key may be used as an enum key, false otherwise
      • isOptionalParameter

        public boolean isOptionalParameter​(Node parameter)
        Description copied from interface: CodingConvention
        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. Note that an optional function parameter may be declared as a simple type and is automatically converted to a union of the declared type and Undefined.
        Specified by:
        isOptionalParameter in interface CodingConvention
        Parameters:
        parameter - The parameter's node.
        Returns:
        true if the parameter should be treated as an optional parameter.
      • isVarArgsParameter

        public boolean isVarArgsParameter​(Node parameter)
        Description copied from interface: CodingConvention
        This checks whether a given parameter should be treated as a marker for a variable argument list function. A VarArgs parameter must be the last parameter in a function declaration.
        Specified by:
        isVarArgsParameter in interface CodingConvention
        Parameters:
        parameter - The parameter's node.
        Returns:
        true if the parameter should be treated as a variable length parameter.
      • isExported

        public boolean isExported​(java.lang.String name,
                                  boolean local)
        Description copied from interface: CodingConvention
        Checks whether a global variable or function name should be treated as exported, or externally referenceable.
        Specified by:
        isExported in interface CodingConvention
        Parameters:
        name - A global variable or function name.
        local - true if the name is a local variable.
        Returns:
        true if the name should be considered exported.
      • isExported

        public final boolean isExported​(java.lang.String name)
        Description copied from interface: CodingConvention
        Should be isExported(name, true) || isExported(name, false);
        Specified by:
        isExported in interface CodingConvention
      • isPrivate

        public boolean isPrivate​(java.lang.String name)
        Description copied from interface: CodingConvention
        Checks whether a name should be considered private. Private global variables and functions can only be referenced within the source file in which they are declared. Private properties and methods should only be accessed by the class that defines them.
        Specified by:
        isPrivate in interface CodingConvention
        Parameters:
        name - The name of a global variable or function, or a method or property.
        Returns:
        true if the name should be considered private.
      • isSuperClassReference

        public boolean isSuperClassReference​(java.lang.String propertyName)
        Description copied from interface: CodingConvention
        Returns true if passed a string referring to the superclass. The string will usually be from the string node at the right of a GETPROP, e.g. this.superClass_.
        Specified by:
        isSuperClassReference in interface CodingConvention
      • getExportPropertyFunction

        public java.lang.String getExportPropertyFunction()
        Description copied from interface: CodingConvention
        Function name used when exporting properties. Signature: fn(object, publicName, symbol).
        Specified by:
        getExportPropertyFunction in interface CodingConvention
        Returns:
        function name.
      • getExportSymbolFunction

        public java.lang.String getExportSymbolFunction()
        Description copied from interface: CodingConvention
        Function name used when exporting symbols. Signature: fn(publicPath, object).
        Specified by:
        getExportSymbolFunction in interface CodingConvention
        Returns:
        function name.
      • identifyTypeDeclarationCall

        public java.util.List<java.lang.String> identifyTypeDeclarationCall​(Node n)
        Description copied from interface: CodingConvention
        Checks if the given CALL node is forward-declaring any types, and returns the name of the types if it is.
        Specified by:
        identifyTypeDeclarationCall in interface CodingConvention
      • getAbstractMethodName

        public java.lang.String getAbstractMethodName()
        Description copied from interface: CodingConvention
        Function name for abstract methods. An abstract method can be assigned to an interface method instead of an function expression in order to avoid linter warnings produced by assigning a function without a return value where a return value is expected.
        Specified by:
        getAbstractMethodName in interface CodingConvention
        Returns:
        function name.
      • getSingletonGetterClassName

        public java.lang.String getSingletonGetterClassName​(Node callNode)
        Description copied from interface: CodingConvention
        Checks if the given method defines a singleton getter, and if it does, returns the name of the class with the singleton getter. By default, always returns null. Meant to be overridden by subclasses. addSingletonGetter needs a coding convention because in the general case, it can't be inlined. The function inliner sees that it creates an alias to the given class in an inner closure, and bails out.
        Specified by:
        getSingletonGetterClassName in interface CodingConvention
        Parameters:
        callNode - A CALL node.
      • checkForCallingConventionDefiningCalls

        public void checkForCallingConventionDefiningCalls​(Node n,
                                                           java.util.Map<java.lang.String,​java.lang.String> delegateCallingConventions)
        Description copied from interface: CodingConvention
        Checks for function calls that set the calling conventions on delegate methods.
        Specified by:
        checkForCallingConventionDefiningCalls in interface CodingConvention
      • defineDelegateProxyPrototypeProperties

        public void defineDelegateProxyPrototypeProperties​(JSTypeRegistry registry,
                                                           StaticScope<JSType> scope,
                                                           java.util.List<ObjectType> delegateProxyPrototypes,
                                                           java.util.Map<java.lang.String,​java.lang.String> delegateCallingConventions)
        Description copied from interface: CodingConvention
        Defines the delegate proxy prototype properties. Their types depend on properties of the delegate base methods.
        Specified by:
        defineDelegateProxyPrototypeProperties in interface CodingConvention
        delegateProxyPrototypes - List of delegate proxy prototypes.
      • getIndirectlyDeclaredProperties

        public java.util.Collection<java.lang.String> getIndirectlyDeclaredProperties()
        Description copied from interface: CodingConvention
        Gets a collection of all properties that are defined indirectly on global objects. (For example, Closure defines superClass_ in the goog.inherits call).
        Specified by:
        getIndirectlyDeclaredProperties in interface CodingConvention