14c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson/*
24c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson * Licensed to the Apache Software Foundation (ASF) under one
34c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson * or more contributor license agreements. See the NOTICE file
44c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson * distributed with this work for additional information
54c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson * regarding copyright ownership. The ASF licenses this file
64c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson * to you under the Apache License, Version 2.0 (the  "License");
74c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson * you may not use this file except in compliance with the License.
84c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson * You may obtain a copy of the License at
94c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson *
104c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson *     http://www.apache.org/licenses/LICENSE-2.0
114c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson *
124c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson * Unless required by applicable law or agreed to in writing, software
134c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson * distributed under the License is distributed on an "AS IS" BASIS,
144c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
154c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson * See the License for the specific language governing permissions and
164c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson * limitations under the License.
174c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson */
184c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson/*
194c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson * $Id:  $
204c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson */
214c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
224c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilsonpackage org.apache.xml.serializer.dom3;
234c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
244c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilsonimport org.w3c.dom.DOMError;
254c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilsonimport org.w3c.dom.DOMLocator;
264c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
274c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson/**
284c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson * Implementation of the DOM Level 3 DOMError interface.
294c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson *
304c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson * <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>.
314c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson *
324c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson * @xsl.usage internal
334c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson */
344c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
35e5aa5453769a682192ead8b1203e4096879ecacdJesse Wilsonpublic final class DOMErrorImpl implements DOMError {
364c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
374c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    /** private data members */
384c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
394c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    // The DOMError Severity
404c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    private short fSeverity = DOMError.SEVERITY_WARNING;
414c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
424c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    // The Error message
434c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    private String fMessage = null;
444c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
454c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    //  A String indicating which related data is expected in relatedData.
464c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    private String fType;
474c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
484c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    // The platform related exception
494c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    private Exception fException = null;
504c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
514c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    //
524c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    private Object fRelatedData;
534c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
544c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    // The location of the exception
554c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    private DOMLocatorImpl fLocation = new DOMLocatorImpl();
564c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
574c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
584c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    //
594c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    // Constructors
604c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    //
614c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
624c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    /**
634c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * Default constructor.
644c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     */
654c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    DOMErrorImpl () {
664c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    }
674c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
684c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    /**
694c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @param severity
704c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @param message
714c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @param type
724c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     */
73e5aa5453769a682192ead8b1203e4096879ecacdJesse Wilson    public DOMErrorImpl(short severity, String message, String type) {
744c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fSeverity = severity;
754c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fMessage = message;
764c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fType = type;
774c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    }
784c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
794c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    /**
804c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @param severity
814c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @param message
824c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @param type
834c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @param exception
844c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     */
85e5aa5453769a682192ead8b1203e4096879ecacdJesse Wilson    public DOMErrorImpl(short severity, String message, String type,
864c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson            Exception exception) {
874c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fSeverity = severity;
884c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fMessage = message;
894c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fType = type;
904c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fException = exception;
914c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    }
924c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
934c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    /**
944c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @param severity
954c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @param message
964c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @param type
974c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @param exception
984c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @param relatedData
994c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @param location
1004c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     */
101e5aa5453769a682192ead8b1203e4096879ecacdJesse Wilson    public DOMErrorImpl(short severity, String message, String type,
1024c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson            Exception exception, Object relatedData, DOMLocatorImpl location) {
1034c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fSeverity = severity;
1044c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fMessage = message;
1054c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fType = type;
1064c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fException = exception;
1074c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fRelatedData = relatedData;
1084c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fLocation = location;
1094c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    }
1104c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
1114c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
1124c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    /**
1134c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * The severity of the error, either <code>SEVERITY_WARNING</code>,
1144c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * <code>SEVERITY_ERROR</code>, or <code>SEVERITY_FATAL_ERROR</code>.
1154c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     *
1164c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @return A short containing the DOMError severity
1174c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     */
1184c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    public short getSeverity() {
1194c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        return fSeverity;
1204c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    }
1214c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
1224c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    /**
1234c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * The DOMError message string.
1244c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     *
1254c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @return String
1264c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     */
1274c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    public String getMessage() {
1284c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        return fMessage;
1294c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    }
1304c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
1314c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    /**
1324c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * The location of the DOMError.
1334c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     *
1344c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @return A DOMLocator object containing the DOMError location.
1354c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     */
1364c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    public DOMLocator getLocation() {
1374c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        return fLocation;
1384c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    }
1394c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
1404c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    /**
1414c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * The related platform dependent exception if any.
1424c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     *
1434c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @return A java.lang.Exception
1444c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     */
1454c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    public Object getRelatedException(){
1464c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        return fException;
1474c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    }
1484c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
1494c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    /**
1504c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * Returns a String indicating which related data is expected in relatedData.
1514c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     *
1524c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @return A String
1534c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     */
1544c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    public String getType(){
1554c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        return fType;
1564c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    }
1574c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
1584c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    /**
1594c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * The related DOMError.type dependent data if any.
1604c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     *
1614c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     * @return java.lang.Object
1624c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson     */
1634c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    public Object getRelatedData(){
1644c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        return fRelatedData;
1654c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    }
1664c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
1674c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    public void reset(){
1684c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fSeverity = DOMError.SEVERITY_WARNING;
1694c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fException = null;
1704c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fMessage = null;
1714c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fType = null;
1724c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fRelatedData = null;
1734c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson        fLocation = null;
1744c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson    }
1754c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson
1764c7a0d97cf2b27790e6236965a1d798d710d7ec7Jesse Wilson}// class DOMErrorImpl
177