createTransformationContext(sourceDataType, targetDataType, size, i, transformer, metadata);
if (transformer instanceof PullTransformer) {
result = ((PullTransformer)transformer).transform(result, context);
} else if (transformer instanceof PushTransformer) {
DataPipe dataPipe = (i < size - 1) ? (DataPipe)path.get(++i) : null;
Object sink = dataPipe != null ? dataPipe.getSink() : target;
((PushTransformer)transformer).transform(result, sink, context);
result = (dataPipe != null) ? dataPipe.getResult() : null;
}
}
}