org.apache.xml.utils

Class SerializableLocatorImpl

public class SerializableLocatorImpl extends Object implements Locator, Serializable

The standard SAX implementation of LocatorImpl is not serializable, limiting its utility as "a persistent snapshot of a locator". This is a quick hack to make it so. Note that it makes more sense in many cases to set up fields to hold this data rather than pointing at another object... but that decision should be made on architectural grounds rather than serializability.

It isn't clear whether subclassing LocatorImpl and adding serialization methods makes more sense than copying it and just adding Serializable to its interface. Since it's so simple, I've taken the latter approach for now.

Since: XalanJ2

Version: 1.0

Author: Joe Kesselman

See Also: org.xml.sax.helpers.LocatorImpl org.xml.sax.Locator Locator

Constructor Summary
SerializableLocatorImpl()
Zero-argument constructor.
SerializableLocatorImpl(Locator locator)
Copy constructor.
Method Summary
intgetColumnNumber()
Return the saved column number (1-based).
intgetLineNumber()
Return the saved line number (1-based).
StringgetPublicId()
Return the saved public identifier.
StringgetSystemId()
Return the saved system identifier.
voidsetColumnNumber(int columnNumber)
Set the column number for this locator (1-based).
voidsetLineNumber(int lineNumber)
Set the line number for this locator (1-based).
voidsetPublicId(String publicId)
Set the public identifier for this locator.
voidsetSystemId(String systemId)
Set the system identifier for this locator.

Constructor Detail

SerializableLocatorImpl

public SerializableLocatorImpl()
Zero-argument constructor.

SAX says "This will not normally be useful, since the main purpose of this class is to make a snapshot of an existing Locator." In fact, it _is_ sometimes useful when you want to construct a new Locator pointing to a specific location... which, after all, is why the setter methods are provided.

SerializableLocatorImpl

public SerializableLocatorImpl(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

getColumnNumber

public int getColumnNumber()
Return the saved column number (1-based).

Returns: The column number as an integer, or -1 if none is available.

See Also: org.xml.sax.Locator#getColumnNumber SerializableLocatorImpl

getLineNumber

public int getLineNumber()
Return the saved line number (1-based).

Returns: The line number as an integer, or -1 if none is available.

See Also: org.xml.sax.Locator#getLineNumber SerializableLocatorImpl

getPublicId

public String getPublicId()
Return the saved public identifier.

Returns: The public identifier as a string, or null if none is available.

See Also: org.xml.sax.Locator#getPublicId SerializableLocatorImpl

getSystemId

public String getSystemId()
Return the saved system identifier.

Returns: The system identifier as a string, or null if none is available.

See Also: org.xml.sax.Locator#getSystemId SerializableLocatorImpl

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: SerializableLocatorImpl

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: SerializableLocatorImpl

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: SerializableLocatorImpl

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: SerializableLocatorImpl

Copyright © 2005 Apache XML Project. All Rights Reserved.