public void convert(FormatConfigurationType formatConfigurationType, TemplateParameterContextProvider contextProvider) throws IOException { for (Object operation : formatConfigurationType.getExecOnceOrExecEachSegmentOrExecEachSequence()) { if (operation instanceof ExecOnceType) { new ConversionExecutorOnce(contextProvider, getExecuteStrategyFactory(), (ExecOnceType) operation).execute(); } else if (operation instanceof ExecEachSegmentSequenceType) { new ConversionExecutorSegment(contextProvider, getExecuteStrategyFactory(), (ExecEachSegmentSequenceType) operation).execute(); } else if (operation instanceof ExecEachSequenceSegmentType) { new ConversionExecutorSequence(contextProvider, getExecuteStrategyFactory(), (ExecEachSequenceSegmentType) operation).execute(); } else if (operation instanceof PipeType) { new ConversionExecutorPipe(contextProvider, getExecuteStrategyFactory(), (PipeType) operation).execute(); } else if (operation instanceof DynamicParameterConcatType) { new ConversionExecutorDynamicParameter(contextProvider, getExecuteStrategyFactory(), (DynamicParameterConcatType) operation).execute(); } else if (operation instanceof ForType) { new ConversionExecutorFor(contextProvider, getExecuteStrategyFactory(), (ForType) operation).execute(); } else if (operation instanceof IfType) { new ConversionExecutorIf(contextProvider, getExecuteStrategyFactory(), (IfType) operation).execute(); } else { throw new ConversionException(String.format("Unknown Conversion Operation type: %s", operation.toString())); } } }