Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.skife.jdbi.v2;
  
  
 import java.util.List;
 
 abstract class BaseStatement
 {
     private final ConcreteStatementContext context;
     private final Foreman                  foreman;
 
     protected BaseStatement(final ConcreteStatementContext contextForeman foreman)
     {
         this. = context;
         this. = foreman.createChild();
         addCustomizer(new StatementCleaningCustomizer());
     }
 
     protected final Foreman getForeman() {
         return ;
     }
 
     protected final ConcreteStatementContext getConcreteContext()
     {
         return this.;
     }

    
Obtain the statement context associated with this statement
 
     public final StatementContext getContext()
     {
         return ;
     }
 
     protected void addCustomizers(final Collection<StatementCustomizercustomizers)
     {
         this..addAll(customizers);
     }
 
     protected void addCustomizer(final StatementCustomizer customizer)
     {
         this..add(customizer);
     }
 
     {
         return this.;
     }
 
     protected final void beforeExecution(final PreparedStatement stmt)
     {
         for (StatementCustomizer customizer : ) {
             try {
                 customizer.beforeExecution(stmt);
             }
             catch (SQLException e) {
                 throw new UnableToExecuteStatementException("Exception thrown in statement customization"e);
             }
         }
     }
 
     protected final void afterExecution(final PreparedStatement stmt)
     {
         for (StatementCustomizer customizer : ) {
             try {
                 customizer.afterExecution(stmt);
             }
             catch (SQLException e) {
                 throw new UnableToExecuteStatementException("Exception thrown in statement customization"e);
             }
         }
     }
 
     protected final void cleanup()
     {
         for (StatementCustomizer customizer : ) {
             try {
                 customizer.cleanup();
             }
             catch (SQLException e) {
                 throw new UnableToExecuteStatementException("Could not clean up"e);
             }
         }
     }
 
     protected void addCleanable(final Cleanable cleanable)
     {
         this..getCleanables().add(cleanable);
     }
 
    {
        @Override
        public final void cleanup(final StatementContext ctx)
            throws SQLException
        {
            final List<SQLExceptionexceptions = new ArrayList<SQLException>();
            try {
                Collections.reverse(.getCleanables());
                for (Cleanable cleanable : .getCleanables()) {
                    try {
                        cleanable.cleanup();
                    }
                    catch (SQLException sqlException) {
                        exceptions.add(sqlException);
                    }
                }
                .getCleanables().clear();
            }
            finally {
                if (exceptions.size() > 1) {
                    // Chain multiple SQLExceptions together to be one big exceptions.
                    // (Wonder if that actually works...)
                    for (int i = 0; i < (exceptions.size() - 1); i++) {
                        exceptions.get(i).setNextException(exceptions.get(i + 1));
                    }
                }
                if (exceptions.size() > 0) {
                    throw exceptions.get(0);
                }
            }
        }
    }
New to GrepCode? Check out our FAQ X