Class CompilerInput

  • All Implemented Interfaces:
    DependencyInfo

    public class CompilerInput
    extends java.lang.Object
    implements DependencyInfo
    A class for the internal representation of an input to the compiler. Wraps a SourceAst and maintain state such as module for the input and whether the input is an extern. Also calculates provided and required types.
    • Constructor Detail

      • CompilerInput

        public CompilerInput​(SourceAst ast)
      • CompilerInput

        public CompilerInput​(SourceAst ast,
                             boolean isExtern)
      • CompilerInput

        @Deprecated
        public CompilerInput​(SourceAst ast,
                             java.lang.String inputId,
                             boolean isExtern)
        Deprecated.
        the inputId is read from the SourceAst. Use CompilerInput(ast, isExtern)
      • CompilerInput

        @Deprecated
        public CompilerInput​(SourceAst ast,
                             InputId inputId,
                             boolean isExtern)
        Deprecated.
        the inputId is read from the SourceAst. Use CompilerInput(ast, isExtern)
      • CompilerInput

        public CompilerInput​(SourceFile file)
      • CompilerInput

        public CompilerInput​(SourceFile file,
                             boolean isExtern)
    • Method Detail

      • setTypedScope

        public void setTypedScope​(@Nullable TypedScope typedScope)
      • getTypedScope

        public @Nullable TypedScope getTypedScope()
      • getInputId

        public InputId getInputId()
        Returns a name for this input. Must be unique across all inputs.
      • getName

        public java.lang.String getName()
        Returns a name for this input. Must be unique across all inputs.
        Specified by:
        getName in interface DependencyInfo
      • getPathRelativeToClosureBase

        public java.lang.String getPathRelativeToClosureBase()
        Gets the path relative to closure-base, if one is available.
        Specified by:
        getPathRelativeToClosureBase in interface DependencyInfo
      • clearAst

        public void clearAst()
      • getSourceFile

        public SourceFile getSourceFile()
      • setCompiler

        public void setCompiler​(AbstractCompiler compiler)
        Sets an abstract compiler for doing parsing.
      • getTypeRequires

        public com.google.common.collect.ImmutableList<java.lang.String> getTypeRequires()
        Description copied from interface: DependencyInfo
        Gets the symbols type-required by this file (i.e. for typechecking only).
        Specified by:
        getTypeRequires in interface DependencyInfo
      • getProvides

        public com.google.common.collect.ImmutableList<java.lang.String> getProvides()
        Gets a list of types provided by this input.
        Specified by:
        getProvides in interface DependencyInfo
      • addProvide

        public void addProvide​(java.lang.String provide)
        Registers a type that this input defines. Includes both explicitly declared namespaces via goog.provide and goog.module calls as well as implicit namespaces provided by module rewriting.
      • addOrderedRequire

        public boolean addOrderedRequire​(DependencyInfo.Require require)
        Registers a type that this input depends on in the order seen in the file.
      • getDynamicRequires

        public com.google.common.collect.ImmutableList<java.lang.String> getDynamicRequires()
        Returns the types that this input dynamically depends on in the order seen in the file. The returned types were loaded dynamically so while they are part of the dependency graph, they do not need sorted before this input.
      • addDynamicRequire

        public boolean addDynamicRequire​(java.lang.String require)
        Registers a type that this input depends on in the order seen in the file. The type was loaded dynamically so while it is part of the dependency graph, it does not need sorted before this input.
      • getRequireDynamicImports

        public com.google.common.collect.ImmutableList<java.lang.String> getRequireDynamicImports()
        Returns the types that this input dynamically imports by goog.requireDynamic() in the order seen in the file. The returned types were loaded dynamically so while they are part of the dependency graph, they do not need sorted before this input.
      • addRequireDynamicImports

        public void addRequireDynamicImports​(java.lang.String require)
        Registers a type that this input depends on in the order seen in the file. The type was loaded by goog.requireDynamic() so while it is part of the dependency graph, it does not need sorted before this input.
      • setHasFullParseDependencyInfo

        public void setHasFullParseDependencyInfo​(boolean hasFullParseDependencyInfo)
      • addRequire

        public void addRequire​(DependencyInfo.Require require)
        Registers a type that this input depends on.
      • getCode

        public java.lang.String getCode()
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • getChunk

        public JSChunk getChunk()
        Returns the chunk to which the input belongs.
      • setChunk

        public void setChunk​(JSChunk chunk)
        Sets the chunk to which the input belongs.
      • isExtern

        public boolean isExtern()
      • getLineOffset

        public int getLineOffset​(int lineno)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • isEs6Module

        public boolean isEs6Module()
        Description copied from interface: DependencyInfo
        Whether the symbol is provided by an ES6 module
        Specified by:
        isEs6Module in interface DependencyInfo
      • isGoogModule

        public boolean isGoogModule()
        Description copied from interface: DependencyInfo
        Whether the symbol is provided by a goog module
        Specified by:
        isGoogModule in interface DependencyInfo
      • getLoadFlags

        public com.google.common.collect.ImmutableMap<java.lang.String,​java.lang.String> getLoadFlags()
        Description copied from interface: DependencyInfo
        Gets the loading information for this file.
        Specified by:
        getLoadFlags in interface DependencyInfo