org.apache.struts2.jasper.compiler

## Class SmapStratum

- java.lang.Object
- - org.apache.struts2.jasper.compiler.SmapStratum

-     public class SmapStratum
      extends Object

  Represents the line and file mappings associated with a JSR-045 "stratum".
  Author:
    Jayson Falkner, Shawn Bayern

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `SmapStratum.LineInfo` Represents a single LineSection in an SMAP, associated with a particular stratum.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SmapStratum(String stratumName)` Constructs a new SmapStratum object for the given stratum name (e.g., JSP).

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addFile(String filename)` Adds record of a new file, by filename.
    `void` | `addFile(String filename, String filePath)` Adds record of a new file, by filename and path.
    `void` | `addLineData(int inputStartLine, String inputFileName, int inputLineCount, int outputStartLine, int outputLineIncrement)` Adds complete information about a simple line mapping.
    `String` | `getStratumName()`
    `String` | `getString()`
    `void` | `optimizeLineSection()` Combines consecutive LineInfos wherever possible
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### SmapStratum

          public SmapStratum(String stratumName)

      Constructs a new SmapStratum object for the given stratum name (e.g., JSP).
      Parameters:
        `stratumName` - the name of the stratum (e.g., JSP)

  - ### Method Detail

    - #### addFile

          public void addFile(String filename)

      Adds record of a new file, by filename.
      Parameters:
        `filename` - the filename to add, unqualified by path.

    - #### addFile

          public void addFile(String filename,
                     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 path
        `filePath` - 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,
                         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 String getStratumName()

      Returns:
        the name of the stratum.

    - #### getString

          public String getString()

      Returns:
        the given stratum as a String: a StratumSection, followed by at least one FileSection and at least one LineSection.

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

Copyright © 2000–2021 Apache Software Foundation. All rights reserved.