compact2, compact3
org.xml.sax.helpers

## Class LocatorImpl

- java.lang.Object
- - org.xml.sax.helpers.LocatorImpl

- All Implemented Interfaces:
    Locator
  Direct Known Subclasses:
    Locator2Impl

      public class LocatorImpl
      extends Object
      implements Locator

  Provide an optional convenience implementation of Locator.

  > This module, both source code and documentation, is in the Public Domain, and comes with NO WARRANTY. See http://www.saxproject.org for further information.

  This class is available mainly for application writers, who can use it to make a persistent snapshot of a locator at any point during a document parse:

       Locator locator;
       Locator startloc;

       public void setLocator (Locator locator)
       {
               // note the locator
         this.locator = locator;
       }

       public void startDocument ()
       {
               // save the location of the start of the document
               // for future use.
         Locator startloc = new LocatorImpl(locator);
       }

  Normally, parser writers will not use this class, since it is more efficient to provide location information only when requested, rather than constantly updating a Locator object.

  Since:
    SAX 1.0
  See Also:
    `Locator`

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `LocatorImpl()` | Zero-argument constructor.
    `LocatorImpl(Locator locator)` | Copy constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `getColumnNumber()` | Return the saved column number (1-based).
    `int` | `getLineNumber()` | Return the saved line number (1-based).
    `String` | `getPublicId()` | Return the saved public identifier.
    `String` | `getSystemId()` | Return the saved system identifier.
    `void` | `setColumnNumber(int columnNumber)` | Set the column number for this locator (1-based).
    `void` | `setLineNumber(int lineNumber)` | Set the line number for this locator (1-based).
    `void` | `setPublicId(String publicId)` | Set the public identifier for this locator.
    `void` | `setSystemId(String systemId)` | Set the system identifier for this locator.

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

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

- - ### Constructor Detail

    - #### LocatorImpl

          public LocatorImpl()

      Zero-argument constructor.

      This will not normally be useful, since the main purpose of this class is to make a snapshot of an existing Locator.

    - #### LocatorImpl

          public LocatorImpl(Locator locator)

      Copy constructor.

      Create a persistent copy of the current state of a locator. When the original locator changes, this copy will still keep the original values (and it can be used outside the scope of DocumentHandler methods).

      Parameters:
        `locator` - The locator to copy.

  - ### Method Detail

    - #### getPublicId

          public String getPublicId()

      Return the saved public identifier.
      Specified by:
        `getPublicId` in interface `Locator`
      Returns:
        The public identifier as a string, or null if none is available.
      See Also:
        `Locator.getPublicId()`, `setPublicId(java.lang.String)`

    - #### getSystemId

          public String getSystemId()

      Return the saved system identifier.
      Specified by:
        `getSystemId` in interface `Locator`
      Returns:
        The system identifier as a string, or null if none is available.
      See Also:
        `Locator.getSystemId()`, `setSystemId(java.lang.String)`

    - #### getLineNumber

          public int getLineNumber()

      Return the saved line number (1-based).
      Specified by:
        `getLineNumber` in interface `Locator`
      Returns:
        The line number as an integer, or -1 if none is available.
      See Also:
        `Locator.getLineNumber()`, `setLineNumber(int)`

    - #### getColumnNumber

          public int getColumnNumber()

      Return the saved column number (1-based).
      Specified by:
        `getColumnNumber` in interface `Locator`
      Returns:
        The column number as an integer, or -1 if none is available.
      See Also:
        `Locator.getColumnNumber()`, `setColumnNumber(int)`

    - #### setPublicId

          public void setPublicId(String publicId)

      Set the public identifier for this locator.
      Parameters:
        `publicId` - The new public identifier, or null if none is available.
      See Also:
        `getPublicId()`

    - #### setSystemId

          public void setSystemId(String systemId)

      Set the system identifier for this locator.
      Parameters:
        `systemId` - The new system identifier, or null if none is available.
      See Also:
        `getSystemId()`

    - #### setLineNumber

          public void setLineNumber(int lineNumber)

      Set the line number for this locator (1-based).
      Parameters:
        `lineNumber` - The line number, or -1 if none is available.
      See Also:
        `getLineNumber()`

    - #### setColumnNumber

          public void setColumnNumber(int columnNumber)

      Set the column number for this locator (1-based).
      Parameters:
        `columnNumber` - The column number, or -1 if none is available.
      See Also:
        `getColumnNumber()`

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.