001 /**
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017 package javax.xml.bind.helpers;
018
019 import java.net.URL;
020 import java.net.MalformedURLException;
021
022 import javax.xml.bind.ValidationEventLocator;
023
024 import org.w3c.dom.Node;
025
026 import org.xml.sax.SAXParseException;
027 import org.xml.sax.Locator;
028
029 public class ValidationEventLocatorImpl implements ValidationEventLocator {
030
031 private URL url;
032 private int offset = -1;
033 private int lineNumber = -1;
034 private int columnNumber = -1;
035 private Object object;
036 private Node node;
037
038 public ValidationEventLocatorImpl() {
039 }
040
041 public ValidationEventLocatorImpl(Locator loc) {
042 if (loc == null) {
043 throw new IllegalArgumentException("loc must not be null");
044 }
045 url = toURL(loc.getSystemId());
046 columnNumber = loc.getColumnNumber();
047 lineNumber = loc.getLineNumber();
048 }
049
050 public ValidationEventLocatorImpl(SAXParseException e) {
051 if (e == null) {
052 throw new IllegalArgumentException("e must not be null");
053 }
054 url = toURL(e.getSystemId());
055 columnNumber = e.getColumnNumber();
056 lineNumber = e.getLineNumber();
057 }
058
059 public ValidationEventLocatorImpl(Node node) {
060 if (node == null) {
061 throw new IllegalArgumentException("node must not be null");
062 }
063 this.node = node;
064 }
065
066 public ValidationEventLocatorImpl(Object object) {
067 if (object == null) {
068 throw new IllegalArgumentException("object must not be null");
069 }
070 this.object = object;
071 }
072
073 private static URL toURL(String systemId) {
074 try {
075 return new URL(systemId);
076 }
077 catch (MalformedURLException e) {
078 return null;
079 }
080 }
081
082 public URL getURL() {
083 return url;
084 }
085
086 public void setURL(URL url) {
087 this.url = url;
088 }
089
090 public int getOffset() {
091 return offset;
092 }
093
094 public void setOffset(int offset) {
095 this.offset = offset;
096 }
097
098 public int getLineNumber() {
099 return lineNumber;
100 }
101
102 public void setLineNumber(int lineNumber) {
103 this.lineNumber = lineNumber;
104 }
105
106 public int getColumnNumber() {
107 return columnNumber;
108 }
109
110 public void setColumnNumber(int columnNumber) {
111 this.columnNumber = columnNumber;
112 }
113
114 public Object getObject() {
115 return object;
116 }
117
118 public void setObject(Object object) {
119 this.object = object;
120 }
121
122 public Node getNode() {
123 return node;
124 }
125
126 public void setNode(Node node) {
127 this.node = node;
128 }
129
130 public String toString() {
131 return "[node=" + getNode() + ", " +
132 "object=" + getObject() + ", " +
133 "url=" + getURL() + ", " +
134 "line=" + String.valueOf(getLineNumber()) + "," +
135 "col=" + String.valueOf(getColumnNumber()) + "," +
136 "offset=" + String.valueOf(getOffset()) + "]";
137 }
138
139 }