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:
018: package org.apache.xerces.dom;
019:
020: import org.w3c.dom.DOMError;
021: import org.w3c.dom.DOMLocator;
022: import org.apache.xerces.xni.parser.XMLParseException;
023:
024: /**
025: * <code>DOMErrorImpl</code> is an implementation that describes an error.
026: * <strong>Note:</strong> The error object that describes the error
027: * might be reused by Xerces implementation, across multiple calls to the
028: * handleEvent method on DOMErrorHandler interface.
029: *
030: *
031: * <p>See also the <a href='http://www.w3.org/TR/2001/WD-DOM-Level-3-Core-20010913'>Document Object Model (DOM) Level 3 Core Specification</a>.
032: *
033: * @xerces.internal
034: *
035: * @author Gopal Sharma, SUN Microsystems Inc.
036: * @author Elena Litani, IBM
037: *
038: * @version $Id: DOMErrorImpl.java 447266 2006-09-18 05:57:49Z mrglavas $
039: */
040:
041: // REVISIT: the implementation of ErrorReporter.
042: // we probably should not pass XMLParseException
043: //
044: public class DOMErrorImpl implements DOMError {
045:
046: //
047: // Data
048: //
049:
050: public short fSeverity = DOMError.SEVERITY_WARNING;
051: public String fMessage = null;
052: public DOMLocatorImpl fLocator = new DOMLocatorImpl();
053: public Exception fException = null;
054: public String fType;
055: public Object fRelatedData;
056:
057: //
058: // Constructors
059: //
060:
061: /** Default constructor. */
062: public DOMErrorImpl() {
063: }
064:
065: /** Exctracts information from XMLParserException) */
066: public DOMErrorImpl(short severity, XMLParseException exception) {
067: fSeverity = severity;
068: fException = exception;
069: fLocator = createDOMLocator(exception);
070: }
071:
072: /**
073: * The severity of the error, either <code>SEVERITY_WARNING</code>,
074: * <code>SEVERITY_ERROR</code>, or <code>SEVERITY_FATAL_ERROR</code>.
075: */
076:
077: public short getSeverity() {
078: return fSeverity;
079: }
080:
081: /**
082: * An implementation specific string describing the error that occured.
083: */
084:
085: public String getMessage() {
086: return fMessage;
087: }
088:
089: /**
090: * The location of the error.
091: */
092:
093: public DOMLocator getLocation() {
094: return fLocator;
095: }
096:
097: // method to get the DOMLocator Object
098: private DOMLocatorImpl createDOMLocator(XMLParseException exception) {
099: // assuming DOMLocator wants the *expanded*, not the literal, URI of the doc... - neilg
100: return new DOMLocatorImpl(exception.getLineNumber(), exception
101: .getColumnNumber(), exception.getCharacterOffset(),
102: exception.getExpandedSystemId());
103: } // createDOMLocator()
104:
105: /**
106: * The related platform dependent exception if any.exception is a reserved
107: * word, we need to rename it.Change to "relatedException". (F2F 26 Sep
108: * 2001)
109: */
110: public Object getRelatedException() {
111: return fException;
112: }
113:
114: public void reset() {
115: fSeverity = DOMError.SEVERITY_WARNING;
116: fException = null;
117: }
118:
119: public String getType() {
120: return fType;
121: }
122:
123: public Object getRelatedData() {
124: return fRelatedData;
125: }
126:
127: }// class DOMErrorImpl
|