Package org.apache.jasper.compiler
Class SmapStratum
- java.lang.Object
-
- org.apache.jasper.compiler.SmapStratum
-
public class SmapStratum extends java.lang.Object
Represents the line and file mappings associated with a JSR-045 "stratum".
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SmapStratum.LineInfo
Represents a single LineSection in an SMAP, associated with a particular stratum.
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<java.lang.String>
fileNameList
private java.util.List<java.lang.String>
filePathList
private int
lastFileID
private java.util.List<SmapStratum.LineInfo>
lineData
private java.lang.String
stratumName
-
Constructor Summary
Constructors Constructor Description SmapStratum(java.lang.String stratumName)
Constructs a new SmapStratum object for the given stratum name (e.g., JSP).
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addFile(java.lang.String filename)
Adds record of a new file, by filename.void
addFile(java.lang.String filename, java.lang.String filePath)
Adds record of a new file, by filename and path.void
addLineData(int inputStartLine, java.lang.String inputFileName, int inputLineCount, int outputStartLine, int outputLineIncrement)
Adds complete information about a simple line mapping.java.lang.String
getStratumName()
Returns the name of the stratum.java.lang.String
getString()
Returns the given stratum as a String: a StratumSection, followed by at least one FileSection and at least one LineSection.void
optimizeLineSection()
Combines consecutive LineInfos wherever possiblejava.lang.String
toString()
-
-
-
Field Detail
-
stratumName
private java.lang.String stratumName
-
fileNameList
private java.util.List<java.lang.String> fileNameList
-
filePathList
private java.util.List<java.lang.String> filePathList
-
lineData
private java.util.List<SmapStratum.LineInfo> lineData
-
lastFileID
private int lastFileID
-
-
Method Detail
-
addFile
public void addFile(java.lang.String filename)
Adds record of a new file, by filename.- Parameters:
filename
- the filename to add, unqualified by path.
-
addFile
public void addFile(java.lang.String filename, java.lang.String filePath)
Adds record of a new file, by filename and path. The path may be relative to a source compilation path.- Parameters:
filename
- the filename to add, unqualified by pathfilePath
- the path for the filename, potentially relative to a source compilation path
-
optimizeLineSection
public void optimizeLineSection()
Combines consecutive LineInfos wherever possible
-
addLineData
public void addLineData(int inputStartLine, java.lang.String inputFileName, int inputLineCount, int outputStartLine, int outputLineIncrement)
Adds complete information about a simple line mapping. Specify all the fields in this method; the back-end machinery takes care of printing only those that are necessary in the final SMAP. (My view is that fields are optional primarily for spatial efficiency, not for programmer convenience. Could always add utility methods later.)- Parameters:
inputStartLine
- starting line in the source file (SMAP InputStartLine)inputFileName
- the filepath (or name) from which the input comes (yields SMAP LineFileID) Use unqualified names carefully, and only when they uniquely identify a file.inputLineCount
- the number of lines in the input to map (SMAP LineFileCount)outputStartLine
- starting line in the output file (SMAP OutputStartLine)outputLineIncrement
- number of output lines to map to each input line (SMAP OutputLineIncrement). Given the fact that the name starts with "output", I continuously have the subconscious urge to call this field OutputLineExcrement.
-
getStratumName
public java.lang.String getStratumName()
Returns the name of the stratum.
-
getString
public java.lang.String getString()
Returns the given stratum as a String: a StratumSection, followed by at least one FileSection and at least one LineSection.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-