19f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/*
29f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Licensed to the Apache Software Foundation (ASF) under one
39f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * or more contributor license agreements. See the NOTICE file
49f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * distributed with this work for additional information
59f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * regarding copyright ownership. The ASF licenses this file
69f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * to you under the Apache License, Version 2.0 (the  "License");
79f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * you may not use this file except in compliance with the License.
89f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * You may obtain a copy of the License at
99f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson *
109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson *     http://www.apache.org/licenses/LICENSE-2.0
119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson *
129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Unless required by applicable law or agreed to in writing, software
139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * distributed under the License is distributed on an "AS IS" BASIS,
149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * See the License for the specific language governing permissions and
169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * limitations under the License.
179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */
189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/*
199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * $Id:  $
209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */
219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonpackage org.apache.xml.serializer.dom3;
239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.DOMError;
259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.DOMErrorHandler;
269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/**
289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * This is the default implementation of the ErrorHandler interface and is
299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * used if one is not provided.  The default implementation simply reports
309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOMErrors to System.err.
319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson *
329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @xsl.usage internal
339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */
349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonfinal class DOMErrorHandlerImpl implements DOMErrorHandler {
359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    /**
379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson     * Default Constructor
389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson     */
399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    DOMErrorHandlerImpl() {
409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    }
419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    /**
439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson     * Implementation of DOMErrorHandler.handleError that
449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson     * adds copy of error to list for later retrieval.
459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson     *
469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson     */
479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    public boolean handleError(DOMError error) {
489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson        boolean fail = true;
499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson        String severity = null;
509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson        if (error.getSeverity() == DOMError.SEVERITY_WARNING) {
519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson            fail = false;
529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson            severity = "[Warning]";
539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson        } else if (error.getSeverity() == DOMError.SEVERITY_ERROR) {
549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson            severity = "[Error]";
559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson        } else if (error.getSeverity() == DOMError.SEVERITY_FATAL_ERROR) {
569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson            severity = "[Fatal Error]";
579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson        }
589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson        System.err.println(severity + ": " + error.getMessage() + "\t");
609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson        System.err.println("Type : " + error.getType() + "\t" + "Related Data: "
619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson                + error.getRelatedData() + "\t" + "Related Exception: "
629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson                + error.getRelatedException() );
639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson        return fail;
659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson    }
669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson}
679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson
68