001
002package gudusoft.gsqlparser.pp.stmtformatter.builder.comm;
003
004import gudusoft.gsqlparser.pp.processor.ProcessorFactory;
005import gudusoft.gsqlparser.pp.stmtformatter.builder.AbstractStmtFormatterBuilder;
006import gudusoft.gsqlparser.pp.stmtformatter.type.comm.MergeStmtFormatter;
007
008public class MergeStmtFormatterBuilder extends
009                AbstractStmtFormatterBuilder<MergeStmtFormatter>
010{
011
012        @Override
013        protected void initSpecialProcessorForFormatter(
014                        MergeStmtFormatter formatter )
015        {
016                // build the special processor
017                formatter.addSpecialProcessor( ProcessorFactory.createCapitalisationProcessor( getOption( ) ) );
018                formatter.addSpecialProcessor( ProcessorFactory.createCombineWhitespaceAndClearReturnProcessor( getOption( ) ) );
019                formatter.addSpecialProcessor( ProcessorFactory.createStatementIndentLevelProcessor( getOption( ) ) );
020                formatter.addSpecialProcessor( ProcessorFactory.createCTEProcessor( getOption( ),
021                                getOption( ).cteNewlineBeforeAs ) );
022                formatter.addSpecialProcessor( ProcessorFactory.createMergeKeyWordAlignProcessor( getOption( ) ) );
023                formatter.addSpecialProcessor( ProcessorFactory.createAppendLineAfterMergeTableNameProcessor( getOption( ) ) );
024
025                formatter.addOnExpProcessors( ProcessorFactory.createExpressionProcessor( getOption( ),
026                                false ) );
027                formatter.addSpecialProcessor( ProcessorFactory.createMergeWhenClauseProcessor( getOption( ) ) );
028        }
029
030        @Override
031        protected MergeStmtFormatter newInstanceFormatter( )
032        {
033                return new MergeStmtFormatter( );
034        }
035
036}