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.PlsqlBlockStmtFormatter;
007import gudusoft.gsqlparser.pp.utils.SourceTokenNameConstant;
008
009public class PlsqlBlockStmtFormatterBuilder extends
010                AbstractStmtFormatterBuilder<PlsqlBlockStmtFormatter>
011{
012
013        @Override
014        protected void initSpecialProcessorForFormatter(
015                        PlsqlBlockStmtFormatter formatter )
016        {
017                // build the special processor
018                formatter.addSpecialProcessor( ProcessorFactory.createCapitalisationProcessor( getOption( ) ) );
019                formatter.addSpecialProcessor( ProcessorFactory.createCombineWhitespaceAndClearReturnProcessor( getOption( ) ) );
020
021                // build all the item list processors
022                formatter.addDeclareProcessor( ProcessorFactory.createStmtListProcessor( getOption( ),
023                                SourceTokenNameConstant.DECLARE ) );
024                formatter.addBodyProcessor( ProcessorFactory.createStmtListProcessor( getOption( ),
025                                SourceTokenNameConstant.BEGIN ) );
026
027                formatter.addSpecialProcessor( ProcessorFactory.createBeginAndEndProcessor( getOption( ) ) );
028
029        }
030
031        @Override
032        protected PlsqlBlockStmtFormatter newInstanceFormatter( )
033        {
034                return new PlsqlBlockStmtFormatter( );
035        }
036
037}