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