/*
* Carrot2 project.
*
* Copyright (C) 2002-2016, Dawid Weiss, Stanisław Osiński.
* All rights reserved.
*
* Refer to the full license file "carrot2.LICENSE"
* in the root folder of the repository checkout or at:
* http://www.carrot2.org/carrot2.LICENSE
*/
package org.carrot2.util.xslt;
import javax.xml.transform.ErrorListener;
import javax.xml.transform.TransformerException;
import org.slf4j.Logger;
/**
* An {@link ErrorListener} that reacts to errors when transforming (applying) a
* stylesheet.
*/
public final class TransformerErrorListener implements ErrorListener
{
private final static Logger logger = org.slf4j.LoggerFactory.getLogger(TransformerErrorListener.class);
/**
* We store the exception internally as a workaround to xalan, which reports
* {@link TransformerException} as {@link RuntimeException} (wrapped).
*/
public TransformerException exception;
/*
*
*/
public void warning(TransformerException e) throws TransformerException
{
logger.warn("Warning (recoverable): " + e.getMessage());
}
/*
*
*/
public void error(TransformerException e) throws TransformerException
{
logger.warn("Error (recoverable): " + e.getMessage());
}
/**
* Unrecoverable errors cause an exception to be rethrown.
*/
public void fatalError(TransformerException e) throws TransformerException
{
logger.error("Fatal error: " + e.getMessage());
this.exception = e;
throw e;
}
}