All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.fcrepo.client.batch.BatchModifyValidatorErrorHandler Maven / Gradle / Ivy

There is a newer version: 3.8.1
Show newest version
/* The contents of this file are subject to the license and copyright terms
 * detailed in the license directory at the root of the source tree (also 
 * available online at http://fedora-commons.org/license/).
 */
package org.fcrepo.client.batch;

import java.io.PrintStream;

import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;

/**
 * @author Ross Wayland
 */
public class BatchModifyValidatorErrorHandler
        implements ErrorHandler {

    protected static int errorCount = 0;

    private static PrintStream out;

    public BatchModifyValidatorErrorHandler(PrintStream out) {
        BatchModifyValidatorErrorHandler.out = out;
        BatchModifyValidatorErrorHandler.errorCount = 0;
    }

    public void warning(SAXParseException e) throws SAXException {
        System.err
                .println("BatchModifyValidatorErrorHandler detected SAX WARNING: ");
        logError(e);
    }

    public void error(SAXParseException e) throws SAXException {
        System.err
                .println("BatchModifyValidatorErrorHandler detected SAX ERROR: ");
        logError(e);
    }

    public void fatalError(SAXParseException e) throws SAXException {
        System.err
                .print("BatchModifyValidatorErrorHandler detected SAX FATAL ERROR:");
        logError(e);
    }

    private static void printPubID(SAXParseException e) {
        if (e.getPublicId() != null) {
            System.err.print(e.getPublicId() + " ");
            out.println("    " + e.getPublicId() + " ");
        }
        if (e.getLineNumber() != -1) {
            System.err
                    .println("[modify-directives-file] Parsing error at line: "
                            + e.getLineNumber() + " column: "
                            + e.getColumnNumber() + " ");
            out.println("    [modify-directives-file] Parsing error at line: "
                    + e.getLineNumber() + " column: " + e.getColumnNumber()
                    + " ");
        }
    }

    private static void printMsg(SAXParseException e) {
        System.err.println(e.getClass().getName()
                + " - "
                + (e.getMessage() == null ? "(no detail provided)" : e
                        .getMessage()));
        out.println("    "
                + e.getClass().getName()
                + " - "
                + (e.getMessage() == null ? "(no detail provided)" : e
                        .getMessage()));
    }

    private static void logError(SAXParseException e) {
        out.println("  ");
        printPubID(e);
        printMsg(e);
        out.println("  ");
        errorCount++;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy