@Override
public void execute() throws IOException {
String ifValue = parameterResolver.resolveTemplateParameter(ifElem.getTest(), ContextInfo.EMPTY);
if (!Boolean.valueOf(ifValue)) {
return;
}
for (Object operation : ifElem.getExecOnceOrExecEachSegmentOrExecEachSequence()) {
if (operation instanceof ExecOnceType) {
new ConversionExecutorOnce(contextProvider, executeStrategyFactory, (ExecOnceType) operation).execute();
} else if (operation instanceof ExecEachSegmentSequenceType) {
new ConversionExecutorSegment(contextProvider, executeStrategyFactory,
(ExecEachSegmentSequenceType) operation).execute();
} else if (operation instanceof ExecEachSequenceSegmentType) {
new ConversionExecutorSequence(contextProvider, executeStrategyFactory,
(ExecEachSequenceSegmentType) operation).execute();
} else if (operation instanceof PipeType) {
new ConversionExecutorPipe(contextProvider, executeStrategyFactory, (PipeType) operation).execute();
} else if (operation instanceof DynamicParameterConcatType) {
new ConversionExecutorDynamicParameter(contextProvider, executeStrategyFactory,
(DynamicParameterConcatType) operation).execute();
} else if (operation instanceof ForType) {
new ConversionExecutorFor(contextProvider, executeStrategyFactory, (ForType) operation).execute();
} else if (operation instanceof IfType) {
new ConversionExecutorIf(contextProvider, executeStrategyFactory, (IfType) operation).execute();
} else {
throw new ConversionException(String.format("Unknown Conversion Operation type: %s", operation.toString()));
}
}
}