mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-27 03:49:03 +08:00
213 lines
5.4 KiB
Java
213 lines
5.4 KiB
Java
|
// SAX default implementation for Locator.
|
|||
|
// No warranty; no copyright -- use this as you will.
|
|||
|
// $Id: LocatorImpl.java,v 1.1 2000/10/02 02:43:20 sboag Exp $
|
|||
|
|
|||
|
package org.xml.sax.helpers;
|
|||
|
|
|||
|
import org.xml.sax.Locator;
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Provide an optional convenience implementation of Locator.
|
|||
|
*
|
|||
|
* <blockquote>
|
|||
|
* <em>This module, both source code and documentation, is in the
|
|||
|
* Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
|
|||
|
* </blockquote>
|
|||
|
*
|
|||
|
* <p>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:</p>
|
|||
|
*
|
|||
|
* <pre>
|
|||
|
* 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);
|
|||
|
* }
|
|||
|
*</pre>
|
|||
|
*
|
|||
|
* <p>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.</p>
|
|||
|
*
|
|||
|
* @since SAX 1.0
|
|||
|
* @author David Megginson,
|
|||
|
* <a href="mailto:sax@megginson.com">sax@megginson.com</a>
|
|||
|
* @version 2.0
|
|||
|
* @see org.xml.sax.Locator Locator
|
|||
|
*/
|
|||
|
public class LocatorImpl implements Locator
|
|||
|
{
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Zero-argument constructor.
|
|||
|
*
|
|||
|
* <p>This will not normally be useful, since the main purpose
|
|||
|
* of this class is to make a snapshot of an existing Locator.</p>
|
|||
|
*/
|
|||
|
public LocatorImpl ()
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Copy constructor.
|
|||
|
*
|
|||
|
* <p>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).</p>
|
|||
|
*
|
|||
|
* @param locator The locator to copy.
|
|||
|
*/
|
|||
|
public LocatorImpl (Locator locator)
|
|||
|
{
|
|||
|
setPublicId(locator.getPublicId());
|
|||
|
setSystemId(locator.getSystemId());
|
|||
|
setLineNumber(locator.getLineNumber());
|
|||
|
setColumnNumber(locator.getColumnNumber());
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
////////////////////////////////////////////////////////////////////
|
|||
|
// Implementation of org.xml.sax.Locator
|
|||
|
////////////////////////////////////////////////////////////////////
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Return the saved public identifier.
|
|||
|
*
|
|||
|
* @return The public identifier as a string, or null if none
|
|||
|
* is available.
|
|||
|
* @see org.xml.sax.Locator#getPublicId
|
|||
|
* @see #setPublicId
|
|||
|
*/
|
|||
|
public String getPublicId ()
|
|||
|
{
|
|||
|
return publicId;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Return the saved system identifier.
|
|||
|
*
|
|||
|
* @return The system identifier as a string, or null if none
|
|||
|
* is available.
|
|||
|
* @see org.xml.sax.Locator#getSystemId
|
|||
|
* @see #setSystemId
|
|||
|
*/
|
|||
|
public String getSystemId ()
|
|||
|
{
|
|||
|
return systemId;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Return the saved line number (1-based).
|
|||
|
*
|
|||
|
* @return The line number as an integer, or -1 if none is available.
|
|||
|
* @see org.xml.sax.Locator#getLineNumber
|
|||
|
* @see #setLineNumber
|
|||
|
*/
|
|||
|
public int getLineNumber ()
|
|||
|
{
|
|||
|
return lineNumber;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Return the saved column number (1-based).
|
|||
|
*
|
|||
|
* @return The column number as an integer, or -1 if none is available.
|
|||
|
* @see org.xml.sax.Locator#getColumnNumber
|
|||
|
* @see #setColumnNumber
|
|||
|
*/
|
|||
|
public int getColumnNumber ()
|
|||
|
{
|
|||
|
return columnNumber;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
////////////////////////////////////////////////////////////////////
|
|||
|
// Setters for the properties (not in org.xml.sax.Locator)
|
|||
|
////////////////////////////////////////////////////////////////////
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Set the public identifier for this locator.
|
|||
|
*
|
|||
|
* @param publicId The new public identifier, or null
|
|||
|
* if none is available.
|
|||
|
* @see #getPublicId
|
|||
|
*/
|
|||
|
public void setPublicId (String publicId)
|
|||
|
{
|
|||
|
this.publicId = publicId;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Set the system identifier for this locator.
|
|||
|
*
|
|||
|
* @param systemId The new system identifier, or null
|
|||
|
* if none is available.
|
|||
|
* @see #getSystemId
|
|||
|
*/
|
|||
|
public void setSystemId (String systemId)
|
|||
|
{
|
|||
|
this.systemId = systemId;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Set the line number for this locator (1-based).
|
|||
|
*
|
|||
|
* @param lineNumber The line number, or -1 if none is available.
|
|||
|
* @see #getLineNumber
|
|||
|
*/
|
|||
|
public void setLineNumber (int lineNumber)
|
|||
|
{
|
|||
|
this.lineNumber = lineNumber;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Set the column number for this locator (1-based).
|
|||
|
*
|
|||
|
* @param columnNumber The column number, or -1 if none is available.
|
|||
|
* @see #getColumnNumber
|
|||
|
*/
|
|||
|
public void setColumnNumber (int columnNumber)
|
|||
|
{
|
|||
|
this.columnNumber = columnNumber;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
////////////////////////////////////////////////////////////////////
|
|||
|
// Internal state.
|
|||
|
////////////////////////////////////////////////////////////////////
|
|||
|
|
|||
|
private String publicId;
|
|||
|
private String systemId;
|
|||
|
private int lineNumber;
|
|||
|
private int columnNumber;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
// end of LocatorImpl.java
|