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.createCTEProcessor( getOption( ),
020                                getOption( ).cteNewlineBeforeAs ) );
021                formatter.addSpecialProcessor( ProcessorFactory.createMergeKeyWordAlignProcessor( getOption( ) ) );
022                formatter.addSpecialProcessor( ProcessorFactory.createAppendLineAfterMergeTableNameProcessor( getOption( ) ) );
023
024                formatter.addOnExpProcessors( ProcessorFactory.createExpressionProcessor( getOption( ),
025                                false ) );
026                formatter.addSpecialProcessor( ProcessorFactory.createMergeWhenClauseProcessor( getOption( ) ) );
027        }
028
029        @Override
030        protected MergeStmtFormatter newInstanceFormatter( )
031        {
032                return new MergeStmtFormatter( );
033        }
034
035}