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.InsertStmtFormatter;
007import gudusoft.gsqlparser.pp.utils.SourceTokenNameConstant;
008
009public class InsertStmtFormatterBuilder extends
010                AbstractStmtFormatterBuilder<InsertStmtFormatter>
011{
012
013        @Override
014        protected void initSpecialProcessorForFormatter(
015                        InsertStmtFormatter formatter )
016        {
017                // build the special processor
018                formatter.addSpecialProcessor( ProcessorFactory.createCapitalisationProcessor( getOption( ) ) );
019                formatter.addSpecialProcessor( ProcessorFactory.createCombineWhitespaceAndClearReturnProcessor( getOption( ) ) );
020                formatter.addSpecialProcessor( ProcessorFactory.createStatementIndentLevelProcessor( getOption( ) ) );
021                formatter.addSpecialProcessor( ProcessorFactory.createCTEProcessor( getOption( ),
022                                getOption( ).cteNewlineBeforeAs ) );
023                formatter.addSpecialProcessor( ProcessorFactory.createInsertKeyWordAlignProcessor( getOption( ) ) );
024                formatter.addSpecialProcessor( ProcessorFactory.createAppendLineAfterInsertTableNameProcessor( getOption( ) ) );
025                formatter.addSpecialProcessor( ProcessorFactory.createInsertValuesParenthsesAdjustProcessor( getOption( ) ) );
026                formatter.addSpecialProcessor( ProcessorFactory.createInsertOutputClauseProcessor( getOption( ) ) );
027
028                // build all the item list processors
029                formatter.addItemListProcessor( ProcessorFactory.createColumnlistCommaProcessor( getOption( ),
030                                getOption( ).defaultCommaOption,
031                                getOption( ).insertColumnlistStyle ) );
032
033                // build all the value list processors
034                formatter.addValueListProcessor( ProcessorFactory.createAppendNewLineBeforeReverseKeyWordProcessor( getOption( ),
035                                true,
036                                SourceTokenNameConstant.VALUES ) );
037                formatter.addValueListProcessor( ProcessorFactory.createColumnlistCommaProcessor( getOption( ),
038                                getOption( ).defaultCommaOption,
039                                getOption( ).insertValuelistStyle ) );
040        }
041
042        @Override
043        protected InsertStmtFormatter newInstanceFormatter( )
044        {
045                return new InsertStmtFormatter( );
046        }
047
048}