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