1 // Locator2Impl.java - extended LocatorImpl
2 // http://www.saxproject.org
3 // Public Domain: no warranty.
4 // $Id: Locator2Impl.java,v 1.3 2004/04/26 17:34:35 dmegginson Exp $
5 
6 package org.xml.sax.ext;
7 
8 import org.xml.sax.Locator;
9 import org.xml.sax.helpers.LocatorImpl;
10 
11 
12 /**
13  * SAX2 extension helper for holding additional Entity information,
14  * implementing the {@link Locator2} interface.
15  *
16  * <blockquote>
17  * <em>This module, both source code and documentation, is in the
18  * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
19  * </blockquote>
20  *
21  * <p> This is not part of core-only SAX2 distributions.</p>
22  *
23  * @since SAX 2.0.2
24  * @author David Brownell
25  * @version TBS
26  */
27 public class Locator2Impl extends LocatorImpl implements Locator2
28 {
29     private String    encoding;
30     private String    version;
31 
32 
33     /**
34      * Construct a new, empty Locator2Impl object.
35      * This will not normally be useful, since the main purpose
36      * of this class is to make a snapshot of an existing Locator.
37      */
Locator2Impl()38     public Locator2Impl () { }
39 
40     /**
41      * Copy an existing Locator or Locator2 object.
42      * If the object implements Locator2, values of the
43      * <em>encoding</em> and <em>version</em>strings are copied,
44      * otherwise they set to <em>null</em>.
45      *
46      * @param locator The existing Locator object.
47      */
Locator2Impl(Locator locator)48     public Locator2Impl (Locator locator)
49     {
50     super (locator);
51     if (locator instanceof Locator2) {
52         Locator2    l2 = (Locator2) locator;
53 
54         version = l2.getXMLVersion ();
55         encoding = l2.getEncoding ();
56     }
57     }
58 
59     ////////////////////////////////////////////////////////////////////
60     // Locator2 method implementations
61     ////////////////////////////////////////////////////////////////////
62 
63     /**
64      * Returns the current value of the version property.
65      *
66      * @return the current value of the version property.
67      *
68      * @see #setXMLVersion
69      */
getXMLVersion()70     public String getXMLVersion ()
71     { return version; }
72 
73     /**
74      * Returns the current value of the encoding property.
75      *
76      * @return the current value of the encoding property.
77      *
78      * @see #setEncoding
79      */
getEncoding()80     public String getEncoding ()
81     { return encoding; }
82 
83 
84     ////////////////////////////////////////////////////////////////////
85     // Setters
86     ////////////////////////////////////////////////////////////////////
87 
88     /**
89      * Assigns the current value of the version property.
90      *
91      * @param version the new "version" value
92      * @see #getXMLVersion
93      */
setXMLVersion(String version)94     public void setXMLVersion (String version)
95     { this.version = version; }
96 
97     /**
98      * Assigns the current value of the encoding property.
99      *
100      * @param encoding the new "encoding" value
101      * @see #getEncoding
102      */
setEncoding(String encoding)103     public void setEncoding (String encoding)
104     { this.encoding = encoding; }
105 }
106