FileDocCategorySizeDatePackage
DOMErrorHandlerWrapper.javaAPI DocApache Xerces 3.0.129157Fri Sep 14 20:33:54 BST 2007org.apache.xerces.util

DOMErrorHandlerWrapper

public class DOMErrorHandlerWrapper extends Object implements DOMErrorHandler, org.apache.xerces.xni.parser.XMLErrorHandler
This class handles DOM errors .
see
DOMErrorHandler
author
Gopal Sharma, SUN Microsystems Inc.
version
$Id: DOMErrorHandlerWrapper.java 447241 2006-09-18 05:12:57Z mrglavas $

Fields Summary
protected DOMErrorHandler
fDomErrorHandler
boolean
eStatus
protected PrintWriter
fOut
public Node
fCurrentNode
protected final XMLErrorCode
fErrorCode
Error code for comparisons.
protected final org.apache.xerces.dom.DOMErrorImpl
fDOMError
Constructors Summary
public DOMErrorHandlerWrapper()

    


    //
    // Constructors
    //

    // Default constructor /

      
        fOut = new PrintWriter(System.err);
    
public DOMErrorHandlerWrapper(DOMErrorHandler domErrorHandler)

        fDomErrorHandler = domErrorHandler;     
    
Methods Summary
public voiderror(java.lang.String domain, java.lang.String key, org.apache.xerces.xni.parser.XMLParseException exception)
Reports an error. Errors are non-fatal and usually signify that the document is invalid with respect to its grammar(s).

param
domain The domain of the error. The domain can be any string but is suggested to be a valid URI. The domain can be used to conveniently specify a web site location of the relevent specification or document pertaining to this error.
param
key The error key. This key can be any string and is implementation dependent.
param
exception Exception.
throws
XNIException Thrown to signal that the parser should stop parsing the document.

        fDOMError.fSeverity = DOMError.SEVERITY_ERROR;
        fDOMError.fException = exception;
        // REVISIT: May need to lookup from DOMErrorTypeMap in the future.
        fDOMError.fType = key;
        fDOMError.fRelatedData = fDOMError.fMessage = exception.getMessage();
        DOMLocatorImpl locator = fDOMError.fLocator;
        if (locator != null) {
            locator.fColumnNumber = exception.getColumnNumber();
            locator.fLineNumber = exception.getLineNumber();
            locator.fUtf16Offset = exception.getCharacterOffset();
            locator.fUri = exception.getExpandedSystemId();
            locator.fRelatedNode= fCurrentNode;
        }
        if (fDomErrorHandler != null) {
            fDomErrorHandler.handleError(fDOMError);
        }
    
public voidfatalError(java.lang.String domain, java.lang.String key, org.apache.xerces.xni.parser.XMLParseException exception)
Report a fatal error. Fatal errors usually occur when the document is not well-formed and signifies that the parser cannot continue normal operation.

Note: The error handler should always throw an XNIException from this method. This exception can either be the same exception that is passed as a parameter to the method or a new XNI exception object. If the registered error handler fails to throw an exception, the continuing operation of the parser is undetermined.

param
domain The domain of the fatal error. The domain can be any string but is suggested to be a valid URI. The domain can be used to conveniently specify a web site location of the relevent specification or document pertaining to this fatal error.
param
key The fatal error key. This key can be any string and is implementation dependent.
param
exception Exception.
throws
XNIException Thrown to signal that the parser should stop parsing the document.

        fDOMError.fSeverity = DOMError.SEVERITY_FATAL_ERROR;
        fDOMError.fException = exception;
        fErrorCode.setValues(domain, key);
        String domErrorType = DOMErrorTypeMap.getDOMErrorType(fErrorCode);
        fDOMError.fType = (domErrorType != null) ? domErrorType : key;
        fDOMError.fRelatedData = fDOMError.fMessage = exception.getMessage();
        DOMLocatorImpl locator = fDOMError.fLocator;
        if (locator != null) {
            locator.fColumnNumber = exception.getColumnNumber();
            locator.fLineNumber = exception.getLineNumber();
            locator.fUtf16Offset = exception.getCharacterOffset();
            locator.fUri = exception.getExpandedSystemId();
            locator.fRelatedNode = fCurrentNode;
        }
        if (fDomErrorHandler != null) {
            fDomErrorHandler.handleError(fDOMError);
        } 
    
public org.w3c.dom.DOMErrorHandlergetErrorHandler()

        return fDomErrorHandler;    
    
public booleanhandleError(org.w3c.dom.DOMError error)

        printError(error);
        return eStatus;
    
private voidprintError(org.w3c.dom.DOMError error)
Prints the error message.

        int severity = error.getSeverity();
        fOut.print("[");
        if ( severity == DOMError.SEVERITY_WARNING) {
            fOut.print("Warning");
        } else if ( severity == DOMError.SEVERITY_ERROR) {
            fOut.print("Error");
        } else {
            fOut.print("FatalError");
            eStatus = false ; //REVISIT: Abort processing if fatal error, do we need to??
        }
        fOut.print("] ");
        DOMLocator locator = error.getLocation();
        if (locator != null) {
            fOut.print(locator.getLineNumber());
            fOut.print(":");
            fOut.print(locator.getColumnNumber());
            fOut.print(":");
            fOut.print(locator.getByteOffset());
            fOut.print(",");            
            fOut.print(locator.getUtf16Offset());
            Node node = locator.getRelatedNode();
            if (node != null) {
                fOut.print("[");
                fOut.print(node.getNodeName());
                fOut.print("]");
            }
            String systemId = locator.getUri();
            if (systemId != null) {
                int index = systemId.lastIndexOf('/");
                if (index != -1)
                    systemId = systemId.substring(index + 1);
                fOut.print(": ");
                fOut.print(systemId);
            }

        }

        fOut.print(":");
        fOut.print(error.getMessage());
        fOut.println();
        fOut.flush();

    
public voidsetErrorHandler(org.w3c.dom.DOMErrorHandler errorHandler)
Sets the DOM error handler.

        fDomErrorHandler = errorHandler;
    
public voidwarning(java.lang.String domain, java.lang.String key, org.apache.xerces.xni.parser.XMLParseException exception)
Reports a warning. Warnings are non-fatal and can be safely ignored by most applications.

param
domain The domain of the warning. The domain can be any string but is suggested to be a valid URI. The domain can be used to conveniently specify a web site location of the relevent specification or document pertaining to this warning.
param
key The warning key. This key can be any string and is implementation dependent.
param
exception Exception.
throws
XNIException Thrown to signal that the parser should stop parsing the document.

        fDOMError.fSeverity = DOMError.SEVERITY_WARNING;
        fDOMError.fException = exception;
        // REVISIT: May need to lookup from DOMErrorTypeMap in the future.
        fDOMError.fType = key;         
        fDOMError.fRelatedData = fDOMError.fMessage = exception.getMessage();
        DOMLocatorImpl locator = fDOMError.fLocator;
        if (locator != null) {
            locator.fColumnNumber = exception.getColumnNumber();
            locator.fLineNumber = exception.getLineNumber();
            locator.fUtf16Offset = exception.getCharacterOffset();
            locator.fUri = exception.getExpandedSystemId();
            locator.fRelatedNode = fCurrentNode;
        }
        if (fDomErrorHandler != null) {
            fDomErrorHandler.handleError(fDOMError);
        }