Package com.google.javascript.jscomp
Class SourceFile
- java.lang.Object
-
- com.google.javascript.jscomp.SourceFile
-
- All Implemented Interfaces:
StaticSourceFile,java.io.Serializable
- Direct Known Subclasses:
JSSourceFile
public class SourceFile extends java.lang.Object implements StaticSourceFile, java.io.Serializable
An abstract representation of a source file that provides access to language-neutral features. The source file can be loaded from various locations, such as from disk or from a preloaded string.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSourceFile.BuilderA builder interface for source files.static interfaceSourceFile.GeneratorA JavaScript source code provider.
-
Constructor Summary
Constructors Constructor Description SourceFile(java.lang.String fileName)Construct a new abstract source file.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static SourceFile.Builderbuilder()Create a new builder for source files.voidclearCachedSource()static SourceFilefromCode(java.lang.String fileName, java.lang.String code)static SourceFilefromCode(java.lang.String fileName, java.lang.String originalPath, java.lang.String code)static SourceFilefromFile(java.io.File file)static SourceFilefromFile(java.io.File file, java.nio.charset.Charset c)static SourceFilefromFile(java.lang.String fileName)static SourceFilefromFile(java.lang.String fileName, java.nio.charset.Charset c)static SourceFilefromGenerator(java.lang.String fileName, SourceFile.Generator generator)static SourceFilefromInputStream(java.lang.String fileName, java.io.InputStream s)static SourceFilefromInputStream(java.lang.String fileName, java.lang.String originalPath, java.io.InputStream s)static SourceFilefromReader(java.lang.String fileName, java.io.Reader r)java.lang.StringgetCode()Gets all the code in this source file.java.io.ReadergetCodeReader()Gets a reader for the code in this source file.intgetColumnOfOffset(int offset)Gets the 0-based column number of the given source offset.java.lang.StringgetLine(int lineNumber)Gets the source line for the indicated line number.intgetLineOffset(int lineno)Returns the offset of the given line number relative to the file start.intgetLineOfOffset(int offset)Gets the 1-based line number of the given source offset.java.lang.StringgetName()Returns a unique name for the source file.java.lang.StringgetOriginalPath()RegiongetRegion(int lineNumber)Get a region around the indicated line number.booleanisExtern()Returns whether this is an extern.voidsetOriginalPath(java.lang.String originalPath)java.lang.StringtoString()
-
-
-
Constructor Detail
-
SourceFile
public SourceFile(java.lang.String fileName)
Construct a new abstract source file.- Parameters:
fileName- The file name of the source file. It does not necessarily need to correspond to a real path. But it should be unique. Will appear in warning messages emitted by the compiler.
-
-
Method Detail
-
getLineOffset
public int getLineOffset(int lineno)
Description copied from interface:StaticSourceFileReturns the offset of the given line number relative to the file start. Line number should be 1-based. If the source file doesn't have line information, it should return Integer.MIN_VALUE. The negative offsets will make it more obvious what happened.- Specified by:
getLineOffsetin interfaceStaticSourceFile- Parameters:
lineno- the line of the input to get the absolute offset of.- Returns:
- the absolute offset of the start of the provided line.
-
getCode
public java.lang.String getCode() throws java.io.IOExceptionGets all the code in this source file.- Throws:
java.io.IOException
-
getCodeReader
public java.io.Reader getCodeReader() throws java.io.IOExceptionGets a reader for the code in this source file.- Throws:
java.io.IOException
-
getOriginalPath
public java.lang.String getOriginalPath()
-
setOriginalPath
public void setOriginalPath(java.lang.String originalPath)
-
clearCachedSource
public void clearCachedSource()
-
getName
public java.lang.String getName()
Returns a unique name for the source file.- Specified by:
getNamein interfaceStaticSourceFile
-
isExtern
public boolean isExtern()
Returns whether this is an extern.- Specified by:
isExternin interfaceStaticSourceFile
-
getLineOfOffset
public int getLineOfOffset(int offset)
Description copied from interface:StaticSourceFileGets the 1-based line number of the given source offset.- Specified by:
getLineOfOffsetin interfaceStaticSourceFile- Parameters:
offset- An absolute file offset.- Returns:
- The 1-based line number of that offset. The behavior is undefined if this offset does not exist in the source file.
-
getColumnOfOffset
public int getColumnOfOffset(int offset)
Description copied from interface:StaticSourceFileGets the 0-based column number of the given source offset.- Specified by:
getColumnOfOffsetin interfaceStaticSourceFile- Parameters:
offset- An absolute file offset.- Returns:
- The 0-based column number of that offset. The behavior is undefined if this offset does not exist in the source file.
-
getLine
public java.lang.String getLine(int lineNumber)
Gets the source line for the indicated line number.- Parameters:
lineNumber- the line number, 1 being the first line of the file.- Returns:
- The line indicated. Does not include the newline at the end
of the file. Returns
nullif it does not exist, or if there was an IO exception.
-
getRegion
public Region getRegion(int lineNumber)
Get a region around the indicated line number. The exact definition of a region is implementation specific, but it must contain the line indicated by the line number. A region must not start or end by a carriage return.- Parameters:
lineNumber- the line number, 1 being the first line of the file.- Returns:
- The line indicated. Returns
nullif it does not exist, or if there was an IO exception.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
fromFile
public static SourceFile fromFile(java.lang.String fileName, java.nio.charset.Charset c)
-
fromFile
public static SourceFile fromFile(java.lang.String fileName)
-
fromFile
public static SourceFile fromFile(java.io.File file, java.nio.charset.Charset c)
-
fromFile
public static SourceFile fromFile(java.io.File file)
-
fromCode
public static SourceFile fromCode(java.lang.String fileName, java.lang.String code)
-
fromCode
public static SourceFile fromCode(java.lang.String fileName, java.lang.String originalPath, java.lang.String code)
-
fromInputStream
public static SourceFile fromInputStream(java.lang.String fileName, java.io.InputStream s) throws java.io.IOException
- Throws:
java.io.IOException
-
fromInputStream
public static SourceFile fromInputStream(java.lang.String fileName, java.lang.String originalPath, java.io.InputStream s) throws java.io.IOException
- Throws:
java.io.IOException
-
fromReader
public static SourceFile fromReader(java.lang.String fileName, java.io.Reader r) throws java.io.IOException
- Throws:
java.io.IOException
-
fromGenerator
public static SourceFile fromGenerator(java.lang.String fileName, SourceFile.Generator generator)
-
builder
public static SourceFile.Builder builder()
Create a new builder for source files.
-
-