/*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.runtime.core.api.transformer;
import org.mule.runtime.api.exception.MuleException;
import org.mule.runtime.api.i18n.I18nMessage;
import org.mule.runtime.core.transformer.TransformerUtils;
import java.util.List;
/**
* <code>TransformerException</code> is a simple exception that is thrown by transformers.
*/
public class TransformerException extends MuleException {
private static final String TRANSFORMER = "Transformer";
/**
* Serial version
*/
private static final long serialVersionUID = 2943589828020763649L;
private transient Transformer transformer;
/**
* @param message the exception message
*/
public TransformerException(I18nMessage message, Transformer transformer) {
super(message);
this.transformer = transformer;
addInfo(TRANSFORMER, transformer.toString());
}
public TransformerException(I18nMessage message, List<Transformer> transformers) {
super(message);
this.transformer = TransformerUtils.firstOrNull(transformers);
addInfo(TRANSFORMER, TransformerUtils.toString(transformers));
}
/**
* @param message the exception message
* @param cause the exception that cause this exception to be thrown
*/
public TransformerException(I18nMessage message, Transformer transformer, Throwable cause) {
super(message, cause);
this.transformer = transformer;
addInfo(TRANSFORMER, transformer.toString());
}
public TransformerException(I18nMessage message, List<Transformer> transformers, Throwable cause) {
super(message, cause);
this.transformer = TransformerUtils.firstOrNull(transformers);
addInfo(TRANSFORMER, TransformerUtils.toString(transformers));
}
public TransformerException(Transformer transformer, Throwable cause) {
super(cause);
this.transformer = transformer;
addInfo(TRANSFORMER, (transformer == null ? "null" : transformer.toString()));
}
public TransformerException(List<Transformer> transformers, Throwable cause) {
super(cause);
this.transformer = TransformerUtils.firstOrNull(transformers);
addInfo(TRANSFORMER, TransformerUtils.toString(transformers));
}
/**
* @param message the exception message
* @param cause the exception that cause this exception to be thrown
*/
public TransformerException(I18nMessage message, Throwable cause) {
super(message, cause);
}
/**
* @param message the exception message
*/
public TransformerException(I18nMessage message) {
super(message);
}
public Transformer getTransformer() {
return transformer;
}
}