Package org.apache.xml.utils
Class SerializableLocatorImpl
- java.lang.Object
-
- org.apache.xml.utils.SerializableLocatorImpl
-
- All Implemented Interfaces:
java.io.Serializable
,org.xml.sax.Locator
public class SerializableLocatorImpl extends java.lang.Object implements org.xml.sax.Locator, java.io.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:
LocatorImpl
,Locator
, Serialized Form
-
-
Constructor Summary
Constructors Constructor Description SerializableLocatorImpl()
Zero-argument constructor.SerializableLocatorImpl(org.xml.sax.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).java.lang.String
getPublicId()
Return the saved public identifier.java.lang.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(java.lang.String publicId)
Set the public identifier for this locator.void
setSystemId(java.lang.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(org.xml.sax.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 java.lang.String getPublicId()
Return the saved public identifier.- Specified by:
getPublicId
in interfaceorg.xml.sax.Locator
- Returns:
- The public identifier as a string, or null if none is available.
- See Also:
Locator.getPublicId()
,setPublicId(java.lang.String)
-
getSystemId
public java.lang.String getSystemId()
Return the saved system identifier.- Specified by:
getSystemId
in interfaceorg.xml.sax.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 interfaceorg.xml.sax.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 interfaceorg.xml.sax.Locator
- Returns:
- The column number as an integer, or -1 if none is available.
- See Also:
Locator.getColumnNumber()
,setColumnNumber(int)
-
setPublicId
public void setPublicId(java.lang.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(java.lang.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()
-
-