1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// SAX default implementation for Locator. 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// http://www.saxproject.org 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// No warranty; no copyright -- use this as you will. 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// $Id: LocatorImpl.java,v 1.6 2002/01/30 20:52:27 dbrownell Exp $ 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage org.xml.sax.helpers; 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.Locator; 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Provide an optional convenience implementation of Locator. 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <blockquote> 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <em>This module, both source code and documentation, is in the 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * for further information. 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * </blockquote> 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>This class is available mainly for application writers, who 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * can use it to make a persistent snapshot of a locator at any 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * point during a document parse:</p> 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <pre> 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Locator locator; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Locator startloc; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * public void setLocator (Locator locator) 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * { 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * // note the locator 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this.locator = locator; 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * } 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * public void startDocument () 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * { 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * // save the location of the start of the document 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * // for future use. 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Locator startloc = new LocatorImpl(locator); 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * } 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *</pre> 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>Normally, parser writers will not use this class, since it 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * is more efficient to provide location information only when 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * requested, rather than constantly updating a Locator object.</p> 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @since SAX 1.0 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author David Megginson 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @version 2.0.1 (sax2r2) 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.Locator Locator 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class LocatorImpl implements Locator 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project{ 54f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 55f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Zero-argument constructor. 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>This will not normally be useful, since the main purpose 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * of this class is to make a snapshot of an existing Locator.</p> 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public LocatorImpl () 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project { 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 65f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 66f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Copy constructor. 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>Create a persistent copy of the current state of a locator. 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * When the original locator changes, this copy will still keep 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the original values (and it can be used outside the scope of 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * DocumentHandler methods).</p> 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param locator The locator to copy. 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public LocatorImpl (Locator locator) 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project { 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project setPublicId(locator.getPublicId()); 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project setSystemId(locator.getSystemId()); 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project setLineNumber(locator.getLineNumber()); 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project setColumnNumber(locator.getColumnNumber()); 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 84f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 85f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //////////////////////////////////////////////////////////////////// 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Implementation of org.xml.sax.Locator 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //////////////////////////////////////////////////////////////////// 90f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 91f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Return the saved public identifier. 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return The public identifier as a string, or null if none 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * is available. 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.Locator#getPublicId 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #setPublicId 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public String getPublicId () 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project { 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return publicId; 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 104f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 105f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Return the saved system identifier. 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return The system identifier as a string, or null if none 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * is available. 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.Locator#getSystemId 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #setSystemId 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public String getSystemId () 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project { 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return systemId; 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 118f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 119f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Return the saved line number (1-based). 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return The line number as an integer, or -1 if none is available. 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.Locator#getLineNumber 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #setLineNumber 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int getLineNumber () 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project { 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return lineNumber; 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 131f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 132f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Return the saved column number (1-based). 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return The column number as an integer, or -1 if none is available. 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.Locator#getColumnNumber 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #setColumnNumber 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int getColumnNumber () 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project { 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return columnNumber; 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 144f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 145f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //////////////////////////////////////////////////////////////////// 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Setters for the properties (not in org.xml.sax.Locator) 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //////////////////////////////////////////////////////////////////// 150f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 151f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Set the public identifier for this locator. 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 155f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @param publicId The new public identifier, or null 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if none is available. 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #getPublicId 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void setPublicId (String publicId) 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project { 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project this.publicId = publicId; 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 163f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 164f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Set the system identifier for this locator. 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 168f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @param systemId The new system identifier, or null 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if none is available. 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #getSystemId 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void setSystemId (String systemId) 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project { 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project this.systemId = systemId; 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 176f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 177f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Set the line number for this locator (1-based). 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param lineNumber The line number, or -1 if none is available. 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #getLineNumber 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void setLineNumber (int lineNumber) 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project { 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project this.lineNumber = lineNumber; 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 188f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 189f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Set the column number for this locator (1-based). 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param columnNumber The column number, or -1 if none is available. 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #getColumnNumber 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void setColumnNumber (int columnNumber) 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project { 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project this.columnNumber = columnNumber; 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 200f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 201f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //////////////////////////////////////////////////////////////////// 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Internal state. 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //////////////////////////////////////////////////////////////////// 206f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private String publicId; 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private String systemId; 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private int lineNumber; 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private int columnNumber; 211f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// end of LocatorImpl.java 215