Package net.sf.saxon.expr.parser

## Class Loc

- java.lang.Object
- - net.sf.saxon.expr.parser.Loc

- All Implemented Interfaces:
    `javax.xml.transform.SourceLocator`, `Location`, `org.xml.sax.Locator`

      public class Loc
      extends java.lang.Object
      implements Location

  Class to hold details of the location of an expression, of an error in a source file, etc. The object is immutable. Previous names: ExpressionLocation, ExplicitLocation.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static Loc` | `NONE` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Loc​(java.lang.String systemId, int lineNumber, int columnNumber)` | Create an ExpressionLocation corresponding to a given module, line number, and column number
    `Loc​(javax.xml.transform.SourceLocator loc)` | Create an ExpressionLocation, taking the data from a supplied JAXP SourceLocator

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `getColumnNumber()` | Get the column number
    `int` | `getLineNumber()` | Get the line number
    `java.lang.String` | `getPublicId()` | Get the Public ID
    `java.lang.String` | `getSystemId()` | Get the system ID (the module URI)
    `static boolean` | `isUnknown​(Location location)` | Ask whether this is an "unknown location"
    `static Loc` | `makeFromSax​(org.xml.sax.Locator loc)` | Create an ExpressionLocation, taking the data from a supplied SAX Locator
    `Location` | `saveLocation()` | Get an immutable copy of this Location object.

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

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

- - ### Field Detail

    - #### NONE

          public static Loc NONE

  - ### Constructor Detail

    - #### Loc

          public Loc​(javax.xml.transform.SourceLocator loc)

      Create an ExpressionLocation, taking the data from a supplied JAXP SourceLocator
      Parameters:
        `loc` - the JAXP SourceLocator

    - #### Loc

          public Loc​(java.lang.String systemId,
                     int lineNumber,
                     int columnNumber)

      Create an ExpressionLocation corresponding to a given module, line number, and column number
      Parameters:
        `systemId` - the module URI
        `lineNumber` - the line number (starting at 1; -1 means unknown)
        `columnNumber` - the column number (starting at 1; -1 means unknown)

  - ### Method Detail

    - #### makeFromSax

          public static Loc makeFromSax​(org.xml.sax.Locator loc)

      Create an ExpressionLocation, taking the data from a supplied SAX Locator
      Parameters:
        `loc` - the SAX Locator

    - #### getSystemId

          public java.lang.String getSystemId()

      Get the system ID (the module URI)
      Specified by:
        `getSystemId` in interface `Location`
      Specified by:
        `getSystemId` in interface `org.xml.sax.Locator`
      Specified by:
        `getSystemId` in interface `javax.xml.transform.SourceLocator`
      Returns:
        the system ID

    - #### getPublicId

          public java.lang.String getPublicId()

      Get the Public ID
      Specified by:
        `getPublicId` in interface `Location`
      Specified by:
        `getPublicId` in interface `org.xml.sax.Locator`
      Specified by:
        `getPublicId` in interface `javax.xml.transform.SourceLocator`
      Returns:
        always null in this implementation

    - #### getLineNumber

          public int getLineNumber()

      Get the line number
      Specified by:
        `getLineNumber` in interface `Location`
      Specified by:
        `getLineNumber` in interface `org.xml.sax.Locator`
      Specified by:
        `getLineNumber` in interface `javax.xml.transform.SourceLocator`
      Returns:
        the line number

    - #### getColumnNumber

          public int getColumnNumber()

      Get the column number
      Specified by:
        `getColumnNumber` in interface `Location`
      Specified by:
        `getColumnNumber` in interface `org.xml.sax.Locator`
      Specified by:
        `getColumnNumber` in interface `javax.xml.transform.SourceLocator`
      Returns:
        the column number

    - #### saveLocation

          public Location saveLocation()

      Get an immutable copy of this Location object. By default Location objects may be mutable, so they should not be saved for later use. The result of this operation holds the same location information, but in an immutable form.
      Specified by:
        `saveLocation` in interface `Location`
      Returns:
        an immutable copy (which may be the original object, if it is already immutable)

    - #### isUnknown

          public static boolean isUnknown​(Location location)

      Ask whether this is an "unknown location"