1 /*
2  * reserved comment block
3  * DO NOT REMOVE OR ALTER!
4  */
5 /*
6  * Licensed to the Apache Software Foundation (ASF) under one
7  * or more contributor license agreements. See the NOTICE file
8  * distributed with this work for additional information
9  * regarding copyright ownership. The ASF licenses this file
10  * to you under the Apache License, Version 2.0 (the  "License");
11  * you may not use this file except in compliance with the License.
12  * You may obtain a copy of the License at
13  *
14  *     http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing, software
17  * distributed under the License is distributed on an "AS IS" BASIS,
18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  * See the License for the specific language governing permissions and
20  * limitations under the License.
21  */
22 
23 package com.sun.org.apache.xml.internal.serializer.dom3;
24 
25 import org.w3c.dom.DOMLocator;
26 import org.w3c.dom.Node;
27 
28 
29 /**
30  * <code>DOMLocatorImpl</code> is an implementaion that describes a location (e.g.
31  * where an error occured).
32  * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
33  * This class is a copy of the Xerces-2J class org.apache.xerces.dom.DOMLocatorImpl.java v 1.10
34  *
35  * @author Gopal Sharma, SUN Microsystems Inc.
36  * @version $Id:
37  *
38  * @xsl.usage internal
39  */
40 final class DOMLocatorImpl implements DOMLocator {
41 
42     //
43     // Data
44     //
45 
46     /**
47      * The column number where the error occured,
48      * or -1 if there is no column number available.
49      */
50     private final int fColumnNumber;
51 
52     /**
53      * The line number where the error occured,
54      * or -1 if there is no line number available.
55      */
56     private final int fLineNumber;
57 
58     /** related data node*/
59     private final Node fRelatedNode;
60 
61     /**
62      * The URI where the error occured,
63      * or null if there is no URI available.
64      */
65     private final String fUri;
66 
67     /**
68      * The byte offset into the input source this locator is pointing to or -1
69      * if there is no byte offset available
70      */
71     private final int fByteOffset;
72 
73     /**
74      * The UTF-16, as defined in [Unicode] and Amendment 1 of [ISO/IEC 10646],
75      * offset into the input source this locator is pointing to or -1 if there
76      * is no UTF-16 offset available.
77      */
78     private final int fUtf16Offset;
79 
80     //
81     // Constructors
82     //
83 
DOMLocatorImpl()84     DOMLocatorImpl(){
85         fColumnNumber = -1;
86         fLineNumber = -1;
87         fRelatedNode = null;
88         fUri = null;
89         fByteOffset = -1;
90         fUtf16Offset = -1;
91     }
92 
DOMLocatorImpl(int lineNumber, int columnNumber, String uri )93     DOMLocatorImpl (int lineNumber, int columnNumber, String uri ){
94         fLineNumber = lineNumber ;
95         fColumnNumber = columnNumber ;
96         fUri = uri;
97 
98         fRelatedNode = null;
99         fByteOffset = -1;
100         fUtf16Offset = -1;
101     } // DOMLocatorImpl (int lineNumber, int columnNumber, String uri )
102 
DOMLocatorImpl(int lineNumber, int columnNumber, int utf16Offset, String uri )103     DOMLocatorImpl (int lineNumber, int columnNumber, int utf16Offset, String uri ){
104         fLineNumber = lineNumber ;
105         fColumnNumber = columnNumber ;
106         fUri = uri;
107         fUtf16Offset = utf16Offset;
108 
109 
110         fRelatedNode = null;
111         fByteOffset = -1;
112     } // DOMLocatorImpl (int lineNumber, int columnNumber, int utf16Offset, String uri )
113 
DOMLocatorImpl(int lineNumber, int columnNumber, int byteoffset, Node relatedData, String uri )114     DOMLocatorImpl (int lineNumber, int columnNumber, int byteoffset, Node relatedData, String uri ){
115         fLineNumber = lineNumber ;
116         fColumnNumber = columnNumber ;
117         fByteOffset = byteoffset ;
118         fRelatedNode = relatedData ;
119         fUri = uri;
120 
121         fUtf16Offset = -1;
122     } // DOMLocatorImpl (int lineNumber, int columnNumber, int offset, Node errorNode, String uri )
123 
DOMLocatorImpl(int lineNumber, int columnNumber, int byteoffset, Node relatedData, String uri, int utf16Offset )124     DOMLocatorImpl (int lineNumber, int columnNumber, int byteoffset, Node relatedData, String uri, int utf16Offset ){
125         fLineNumber = lineNumber ;
126         fColumnNumber = columnNumber ;
127         fByteOffset = byteoffset ;
128         fRelatedNode = relatedData ;
129         fUri = uri;
130         fUtf16Offset = utf16Offset;
131     } // DOMLocatorImpl (int lineNumber, int columnNumber, int offset, Node errorNode, String uri )
132 
133 
134     /**
135      * The line number where the error occured, or -1 if there is no line
136      * number available.
137      */
getLineNumber()138     public int getLineNumber(){
139         return fLineNumber;
140     }
141 
142     /**
143      * The column number where the error occured, or -1 if there is no column
144      * number available.
145      */
getColumnNumber()146     public int getColumnNumber(){
147         return fColumnNumber;
148     }
149 
150 
151     /**
152      * The URI where the error occured, or null if there is no URI available.
153      */
getUri()154     public String getUri(){
155         return fUri;
156     }
157 
158 
getRelatedNode()159     public Node getRelatedNode(){
160         return fRelatedNode;
161     }
162 
163 
164     /**
165      * The byte offset into the input source this locator is pointing to or -1
166      * if there is no byte offset available
167      */
getByteOffset()168     public int getByteOffset(){
169         return fByteOffset;
170     }
171 
172     /**
173      * The UTF-16, as defined in [Unicode] and Amendment 1 of [ISO/IEC 10646],
174      * offset into the input source this locator is pointing to or -1 if there
175      * is no UTF-16 offset available.
176      */
getUtf16Offset()177     public int getUtf16Offset(){
178         return fUtf16Offset;
179     }
180 
181 }// class DOMLocatorImpl
182