{
if (!transformers.isEmpty())
{
for (int index = 0; index < transformers.size(); index++)
{
Transformer transformer = transformers.get(index);
Class<?> srcCls = getPayload().getClass();
DataType<?> originalSourceType = DataTypeFactory.create(srcCls);
if (transformer.isSourceDataTypeSupported(originalSourceType))
{
transformMessage(event, transformer);
}
else
{
if (logger.isDebugEnabled())
{
logger.debug("Transformer " + transformer + " doesn't support the source payload: " + srcCls);
}
if (useExtendedTransformations())
{
if (canSkipTransformer(transformers, index))
{
continue;
}
// Resolves implicit conversion if possible
Transformer implicitTransformer = muleContext.getDataTypeConverterResolver().resolve(originalSourceType, transformer.getSourceDataTypes());
if (implicitTransformer != null)
{
transformMessage(event, implicitTransformer);
transformMessage(event, transformer);