001    /*
002     * Licensed to the Apache Software Foundation (ASF) under one
003     * or more contributor license agreements. See the NOTICE file
004     * distributed with this work for additional information
005     * regarding copyright ownership. The ASF licenses this file
006     * to you under the Apache License, Version 2.0 (the  "License");
007     * you may not use this file except in compliance with the License.
008     * You may obtain a copy of the License at
009     *
010     *     http://www.apache.org/licenses/LICENSE-2.0
011     *
012     * Unless required by applicable law or agreed to in writing, software
013     * distributed under the License is distributed on an "AS IS" BASIS,
014     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015     * See the License for the specific language governing permissions and
016     * limitations under the License.
017     */
018    /*
019     * $Id: DOMErrorImpl.java 1225426 2011-12-29 04:13:08Z mrglavas $
020     */
021    
022    package org.apache.xml.serializer.dom3;
023    
024    import org.w3c.dom.DOMError;
025    import org.w3c.dom.DOMLocator;
026    
027    /**
028     * Implementation of the DOM Level 3 DOMError interface.
029     *
030     * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#ERROR-Interfaces-DOMError'>DOMError Interface definition from Document Object Model (DOM) Level 3 Core Specification</a>.
031     * 
032     * @xsl.usage internal 
033     */
034    
035    final class DOMErrorImpl implements DOMError {
036        
037        /** private data members */
038        
039        // The DOMError Severity
040        private short fSeverity = DOMError.SEVERITY_WARNING;
041        
042        // The Error message
043        private String fMessage = null;
044        
045        //  A String indicating which related data is expected in relatedData. 
046        private String fType;
047        
048        // The platform related exception
049        private Exception fException = null;
050        
051        //  
052        private Object fRelatedData;
053        
054        // The location of the exception
055        private DOMLocatorImpl fLocation = new DOMLocatorImpl();
056        
057        
058        //
059        // Constructors
060        //
061        
062        /** 
063         * Default constructor. 
064         */    
065        DOMErrorImpl () {
066        }
067        
068        /**
069         * @param severity
070         * @param message
071         * @param type
072         */
073        DOMErrorImpl(short severity, String message, String type) {
074            fSeverity = severity;
075            fMessage = message;
076            fType = type;
077        }
078        
079        /**
080         * @param severity
081         * @param message
082         * @param type
083         * @param exception
084         */
085        DOMErrorImpl(short severity, String message, String type,
086                Exception exception) {
087            fSeverity = severity;
088            fMessage = message;
089            fType = type;
090            fException = exception;
091        }
092        
093        /**
094         * @param severity
095         * @param message
096         * @param type
097         * @param exception
098         * @param relatedData
099         * @param location
100         */
101        DOMErrorImpl(short severity, String message, String type,
102                Exception exception, Object relatedData, DOMLocatorImpl location) {
103            fSeverity = severity;
104            fMessage = message;
105            fType = type;
106            fException = exception;
107            fRelatedData = relatedData;
108            fLocation = location;
109        }
110        
111        
112        /**
113         * The severity of the error, either <code>SEVERITY_WARNING</code>, 
114         * <code>SEVERITY_ERROR</code>, or <code>SEVERITY_FATAL_ERROR</code>.
115         * 
116         * @return A short containing the DOMError severity
117         */
118        public short getSeverity() {
119            return fSeverity;
120        }
121        
122        /**
123         * The DOMError message string.
124         * 
125         * @return String
126         */
127        public String getMessage() {
128            return fMessage;
129        }
130        
131        /**
132         * The location of the DOMError.
133         * 
134         * @return A DOMLocator object containing the DOMError location.
135         */
136        public DOMLocator getLocation() {
137            return fLocation;
138        }
139        
140        /**
141         * The related platform dependent exception if any.
142         * 
143         * @return A java.lang.Exception 
144         */
145        public Object getRelatedException(){
146            return fException;
147        }
148        
149        /**
150         * Returns a String indicating which related data is expected in relatedData.
151         * 
152         * @return A String
153         */
154        public String getType(){
155            return fType;
156        }
157        
158        /**
159         * The related DOMError.type dependent data if any.
160         * 
161         * @return java.lang.Object 
162         */
163        public Object getRelatedData(){
164            return fRelatedData;
165        }
166        
167        public void reset(){
168            fSeverity = DOMError.SEVERITY_WARNING; 
169            fException = null;
170            fMessage = null;
171            fType = null;
172            fRelatedData = null;
173            fLocation = null;        
174        }
175        
176    }// class DOMErrorImpl