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
6package org.xml.sax.ext;
7
8import org.xml.sax.Locator;
9import 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 */
27public 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     */
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     */
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     */
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     */
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     */
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     */
103    public void setEncoding (String encoding)
104    { this.encoding = encoding; }
105}
106