Home » xml-commons-external-1.4.01-src » org.xml » sax » helpers » [javadoc | source]

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

Home » xml-commons-external-1.4.01-src » org.xml » sax » helpers » [javadoc | source]