Class | Line # | Actions | ||||
---|---|---|---|---|---|---|
LocatorImpl | 52 | 12 | 10 | 22 |
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,v 1.6 2002/01/30 20:52:27 dbrownell Exp $ | |
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 | 0 | 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 | 0 | public LocatorImpl (Locator locator) |
78 | { | |
79 | 0 | setPublicId(locator.getPublicId()); |
80 | 0 | setSystemId(locator.getSystemId()); |
81 | 0 | setLineNumber(locator.getLineNumber()); |
82 | 0 | 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 | 0 | @Override |
101 | public String getPublicId () | |
102 | { | |
103 | 0 | return publicId; |
104 | } | |
105 | ||
106 | ||
107 | /** | |
108 | * Return the saved system identifier. | |
109 | * | |
110 | * @return The system identifier as a string, or null if none | |
111 | * is available. | |
112 | * @see org.xml.sax.Locator#getSystemId | |
113 | * @see #setSystemId | |
114 | */ | |
115 | 0 | @Override |
116 | public String getSystemId () | |
117 | { | |
118 | 0 | return systemId; |
119 | } | |
120 | ||
121 | ||
122 | /** | |
123 | * Return the saved line number (1-based). | |
124 | * | |
125 | * @return The line number as an integer, or -1 if none is available. | |
126 | * @see org.xml.sax.Locator#getLineNumber | |
127 | * @see #setLineNumber | |
128 | */ | |
129 | 0 | @Override |
130 | public int getLineNumber () | |
131 | { | |
132 | 0 | return lineNumber; |
133 | } | |
134 | ||
135 | ||
136 | /** | |
137 | * Return the saved column number (1-based). | |
138 | * | |
139 | * @return The column number as an integer, or -1 if none is available. | |
140 | * @see org.xml.sax.Locator#getColumnNumber | |
141 | * @see #setColumnNumber | |
142 | */ | |
143 | 0 | @Override |
144 | public int getColumnNumber () | |
145 | { | |
146 | 0 | return columnNumber; |
147 | } | |
148 | ||
149 | ||
150 | ||
151 | //////////////////////////////////////////////////////////////////// | |
152 | // Setters for the properties (not in org.xml.sax.Locator) | |
153 | //////////////////////////////////////////////////////////////////// | |
154 | ||
155 | ||
156 | /** | |
157 | * Set the public identifier for this locator. | |
158 | * | |
159 | * @param publicId The new public identifier, or null | |
160 | * if none is available. | |
161 | * @see #getPublicId | |
162 | */ | |
163 | 0 | public void setPublicId (String publicId) |
164 | { | |
165 | 0 | this.publicId = publicId; |
166 | } | |
167 | ||
168 | ||
169 | /** | |
170 | * Set the system identifier for this locator. | |
171 | * | |
172 | * @param systemId The new system identifier, or null | |
173 | * if none is available. | |
174 | * @see #getSystemId | |
175 | */ | |
176 | 0 | public void setSystemId (String systemId) |
177 | { | |
178 | 0 | this.systemId = systemId; |
179 | } | |
180 | ||
181 | ||
182 | /** | |
183 | * Set the line number for this locator (1-based). | |
184 | * | |
185 | * @param lineNumber The line number, or -1 if none is available. | |
186 | * @see #getLineNumber | |
187 | */ | |
188 | 0 | public void setLineNumber (int lineNumber) |
189 | { | |
190 | 0 | this.lineNumber = lineNumber; |
191 | } | |
192 | ||
193 | ||
194 | /** | |
195 | * Set the column number for this locator (1-based). | |
196 | * | |
197 | * @param columnNumber The column number, or -1 if none is available. | |
198 | * @see #getColumnNumber | |
199 | */ | |
200 | 0 | public void setColumnNumber (int columnNumber) |
201 | { | |
202 | 0 | this.columnNumber = columnNumber; |
203 | } | |
204 | ||
205 | ||
206 | ||
207 | //////////////////////////////////////////////////////////////////// | |
208 | // Internal state. | |
209 | //////////////////////////////////////////////////////////////////// | |
210 | ||
211 | private String publicId; | |
212 | private String systemId; | |
213 | private int lineNumber; | |
214 | private int columnNumber; | |
215 | ||
216 | } | |
217 | ||
218 | // end of LocatorImpl.java |