Class SourceMapGeneratorV3

  • All Implemented Interfaces:
    SourceMapGenerator

    public class SourceMapGeneratorV3
    extends java.lang.Object
    implements SourceMapGenerator
    Collects information mapping the generated (compiled) source back to its original source for debugging purposes.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addMapping​(java.lang.String sourceName, java.lang.String symbolName, FilePosition sourceStartPosition, FilePosition startPosition, FilePosition endPosition)
      Adds a mapping for the given node.
      void appendIndexMapTo​(java.lang.Appendable out, java.lang.String name, java.util.List<SourceMapSection> sections)
      Appends the index source map to the given buffer.
      void appendTo​(java.lang.Appendable out, java.lang.String name)
      Writes out the source map in the following format (line numbers are for reference only and are not part of the format): 1.
      void mergeMapSection​(int line, int column, java.lang.String mapSectionContents)  
      void reset()
      Resets the source map for reuse.
      void setStartingPosition​(int offsetLine, int offsetIndex)
      Sets the source code that exists in the buffer for which the generated code is being generated.
      void setWrapperPrefix​(java.lang.String prefix)
      Sets the prefix used for wrapping the generated source file before it is written.
      void validate​(boolean validate)
      Whether to perform additional validation on the source map.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SourceMapGeneratorV3

        public SourceMapGeneratorV3()
    • Method Detail

      • reset

        public void reset()
        Resets the source map for reuse. A reset needs to be called between each generated output file.
        Specified by:
        reset in interface SourceMapGenerator
      • validate

        public void validate​(boolean validate)
        Description copied from interface: SourceMapGenerator
        Whether to perform additional validation on the source map.
        Specified by:
        validate in interface SourceMapGenerator
        Parameters:
        validate - Whether to perform (potentially costly) validation on the generated source map.
      • setWrapperPrefix

        public void setWrapperPrefix​(java.lang.String prefix)
        Sets the prefix used for wrapping the generated source file before it is written. This ensures that the source map is adjusted for the change in character offsets.
        Specified by:
        setWrapperPrefix in interface SourceMapGenerator
        Parameters:
        prefix - The prefix that is added before the generated source code.
      • setStartingPosition

        public void setStartingPosition​(int offsetLine,
                                        int offsetIndex)
        Sets the source code that exists in the buffer for which the generated code is being generated. This ensures that the source map accurately reflects the fact that the source is being appended to an existing buffer and as such, does not start at line 0, position 0 but rather some other line and position.
        Specified by:
        setStartingPosition in interface SourceMapGenerator
        Parameters:
        offsetLine - The index of the current line being printed.
        offsetIndex - The column index of the current character being printed.
      • addMapping

        public void addMapping​(java.lang.String sourceName,
                               @Nullable
                               java.lang.String symbolName,
                               FilePosition sourceStartPosition,
                               FilePosition startPosition,
                               FilePosition endPosition)
        Adds a mapping for the given node. Mappings must be added in order.
        Specified by:
        addMapping in interface SourceMapGenerator
        Parameters:
        startPosition - The position on the starting line
        endPosition - The position on the ending line.
        sourceName - The file name to use in the generate source map to represent this source.
        symbolName - The symbol name associated with this position in the source map.
        sourceStartPosition - The starting position in the original source for represented range outputStartPosition to outputEndPosition in the generated file.
      • appendTo

        public void appendTo​(java.lang.Appendable out,
                             java.lang.String name)
                      throws java.io.IOException
        Writes out the source map in the following format (line numbers are for reference only and are not part of the format): 1. { 2. version: 3, 3. file: "out.js", 4. lineCount: 2, 5. sourceRoot: "", 6. sources: ["foo.js", "bar.js"], 7. names: ["src", "maps", "are", "fun"], 8. mappings: "a;;abcde,abcd,a;" 9. } Line 1: The entire file is a single JSON object Line 2: File revision (always the first entry in the object) Line 3: The name of the file that this source map is associated with. Line 4: The number of lines represented in the source map. Line 5: An optional source root, useful for relocating source files on a server or removing repeated prefix values in the "sources" entry. Line 6: A list of sources used by the "mappings" entry relative to the sourceRoot. Line 7: A list of symbol names used by the "mapping" entry. This list may be incomplete. Line 8: The mappings field.
        Specified by:
        appendTo in interface SourceMapGenerator
        Parameters:
        out - The stream to which the map will be appended.
        name - The name of the generated source file that this source map represents.
        Throws:
        java.io.IOException
      • appendIndexMapTo

        public void appendIndexMapTo​(java.lang.Appendable out,
                                     java.lang.String name,
                                     java.util.List<SourceMapSection> sections)
                              throws java.io.IOException
        Appends the index source map to the given buffer.
        Specified by:
        appendIndexMapTo in interface SourceMapGenerator
        Parameters:
        out - The stream to which the map will be appended.
        name - The name of the generated source file that this source map represents.
        sections - An ordered list of map sections to include in the index.
        Throws:
        java.io.IOException