Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jaxp/src/org/xml/sax/helpers/LocatorImpl.java
48576 views
1
/*
2
* Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation. Oracle designates this
8
* particular file as subject to the "Classpath" exception as provided
9
* by Oracle in the LICENSE file that accompanied this code.
10
*
11
* This code is distributed in the hope that it will be useful, but WITHOUT
12
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14
* version 2 for more details (a copy is included in the LICENSE file that
15
* accompanied this code).
16
*
17
* You should have received a copy of the GNU General Public License version
18
* 2 along with this work; if not, write to the Free Software Foundation,
19
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20
*
21
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22
* or visit www.oracle.com if you need additional information or have any
23
* questions.
24
*/
25
26
// SAX default implementation for Locator.
27
// http://www.saxproject.org
28
// No warranty; no copyright -- use this as you will.
29
// $Id: LocatorImpl.java,v 1.2 2004/11/03 22:53:09 jsuttor Exp $
30
31
package org.xml.sax.helpers;
32
33
import org.xml.sax.Locator;
34
35
36
/**
37
* Provide an optional convenience implementation of Locator.
38
*
39
* <blockquote>
40
* <em>This module, both source code and documentation, is in the
41
* Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
42
* See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
43
* for further information.
44
* </blockquote>
45
*
46
* <p>This class is available mainly for application writers, who
47
* can use it to make a persistent snapshot of a locator at any
48
* point during a document parse:</p>
49
*
50
* <pre>
51
* Locator locator;
52
* Locator startloc;
53
*
54
* public void setLocator (Locator locator)
55
* {
56
* // note the locator
57
* this.locator = locator;
58
* }
59
*
60
* public void startDocument ()
61
* {
62
* // save the location of the start of the document
63
* // for future use.
64
* Locator startloc = new LocatorImpl(locator);
65
* }
66
*</pre>
67
*
68
* <p>Normally, parser writers will not use this class, since it
69
* is more efficient to provide location information only when
70
* requested, rather than constantly updating a Locator object.</p>
71
*
72
* @since SAX 1.0
73
* @author David Megginson
74
* @see org.xml.sax.Locator Locator
75
*/
76
public class LocatorImpl implements Locator
77
{
78
79
80
/**
81
* Zero-argument constructor.
82
*
83
* <p>This will not normally be useful, since the main purpose
84
* of this class is to make a snapshot of an existing Locator.</p>
85
*/
86
public LocatorImpl ()
87
{
88
}
89
90
91
/**
92
* Copy constructor.
93
*
94
* <p>Create a persistent copy of the current state of a locator.
95
* When the original locator changes, this copy will still keep
96
* the original values (and it can be used outside the scope of
97
* DocumentHandler methods).</p>
98
*
99
* @param locator The locator to copy.
100
*/
101
public LocatorImpl (Locator locator)
102
{
103
setPublicId(locator.getPublicId());
104
setSystemId(locator.getSystemId());
105
setLineNumber(locator.getLineNumber());
106
setColumnNumber(locator.getColumnNumber());
107
}
108
109
110
111
////////////////////////////////////////////////////////////////////
112
// Implementation of org.xml.sax.Locator
113
////////////////////////////////////////////////////////////////////
114
115
116
/**
117
* Return the saved public identifier.
118
*
119
* @return The public identifier as a string, or null if none
120
* is available.
121
* @see org.xml.sax.Locator#getPublicId
122
* @see #setPublicId
123
*/
124
public String getPublicId ()
125
{
126
return publicId;
127
}
128
129
130
/**
131
* Return the saved system identifier.
132
*
133
* @return The system identifier as a string, or null if none
134
* is available.
135
* @see org.xml.sax.Locator#getSystemId
136
* @see #setSystemId
137
*/
138
public String getSystemId ()
139
{
140
return systemId;
141
}
142
143
144
/**
145
* Return the saved line number (1-based).
146
*
147
* @return The line number as an integer, or -1 if none is available.
148
* @see org.xml.sax.Locator#getLineNumber
149
* @see #setLineNumber
150
*/
151
public int getLineNumber ()
152
{
153
return lineNumber;
154
}
155
156
157
/**
158
* Return the saved column number (1-based).
159
*
160
* @return The column number as an integer, or -1 if none is available.
161
* @see org.xml.sax.Locator#getColumnNumber
162
* @see #setColumnNumber
163
*/
164
public int getColumnNumber ()
165
{
166
return columnNumber;
167
}
168
169
170
171
////////////////////////////////////////////////////////////////////
172
// Setters for the properties (not in org.xml.sax.Locator)
173
////////////////////////////////////////////////////////////////////
174
175
176
/**
177
* Set the public identifier for this locator.
178
*
179
* @param publicId The new public identifier, or null
180
* if none is available.
181
* @see #getPublicId
182
*/
183
public void setPublicId (String publicId)
184
{
185
this.publicId = publicId;
186
}
187
188
189
/**
190
* Set the system identifier for this locator.
191
*
192
* @param systemId The new system identifier, or null
193
* if none is available.
194
* @see #getSystemId
195
*/
196
public void setSystemId (String systemId)
197
{
198
this.systemId = systemId;
199
}
200
201
202
/**
203
* Set the line number for this locator (1-based).
204
*
205
* @param lineNumber The line number, or -1 if none is available.
206
* @see #getLineNumber
207
*/
208
public void setLineNumber (int lineNumber)
209
{
210
this.lineNumber = lineNumber;
211
}
212
213
214
/**
215
* Set the column number for this locator (1-based).
216
*
217
* @param columnNumber The column number, or -1 if none is available.
218
* @see #getColumnNumber
219
*/
220
public void setColumnNumber (int columnNumber)
221
{
222
this.columnNumber = columnNumber;
223
}
224
225
226
227
////////////////////////////////////////////////////////////////////
228
// Internal state.
229
////////////////////////////////////////////////////////////////////
230
231
private String publicId;
232
private String systemId;
233
private int lineNumber;
234
private int columnNumber;
235
236
}
237
238
// end of LocatorImpl.java
239
240