1   package net.sourceforge.backpedal.impl.core;
2   
3   import net.sourceforge.backpedal.api.core.BackpedalEngine;
4   import net.sourceforge.backpedal.api.core.BackpedalFactory;
5   import net.sourceforge.backpedal.api.core.BackpedalStatementEssentials;
6   import net.sourceforge.backpedal.api.core.BindVariableResolver;
7   import net.sourceforge.backpedal.api.core.ParsedStatement;
8   import net.sourceforge.backpedal.api.db.BindVariableSet;
9   import net.sourceforge.backpedal.api.db.MetadataManager;
10  import net.sourceforge.backpedal.api.db.TableMetadata;
11  
12  import java.sql.Connection;
13  import java.sql.SQLException;
14  import java.util.Collection;
15  
16  public class BackpedalEngineImpl implements BackpedalEngine {
17      private final BackpedalFactory backpedalFactory;
18      private final MetadataManager metadataManager;
19      private final BindVariableResolver bindVariableResolver;
20  
21      public BackpedalEngineImpl(final BackpedalFactory backpedalFactory,
22                                 final MetadataManager metadataManager,
23                                 final BindVariableResolver bindVariableResolver) {
24          this.backpedalFactory = backpedalFactory;
25          this.metadataManager = metadataManager;
26          this.bindVariableResolver = bindVariableResolver;
27      }
28  
29      public BackpedalStatementEssentials backpedalPreparedStatementInsert(final Connection connection, ParsedStatement parsedStatement, final BindVariableSet bindVariables) {
30          //final ParsedStatement backpedalSql = backpedalSqlGenerator.backpedalInsertStatement(parsedStatement);
31          return createStatementEssentials(parsedStatement, bindVariables, null, connection);
32      }
33  
34      public BackpedalStatementEssentials backpedalPreparedStatementUpdate(final Connection connection, ParsedStatement parsedStatement, final BindVariableSet bindVariables) throws SQLException {
35          //final ParsedStatement backpedalSql = backpedalSqlGenerator.backpedalUpdateStatement(parsedStatement);
36          final TableMetadata tableMetadata = metadataManager.lookupMetadata(connection, parsedStatement.getTableName());
37          return createStatementEssentials(parsedStatement, bindVariables, tableMetadata, connection);
38      }
39  
40      public BackpedalStatementEssentials backpedalPreparedStatementDelete(final Connection connection, ParsedStatement parsedStatement, final BindVariableSet bindVariables) throws SQLException {
41          final TableMetadata tableMetadata = metadataManager.lookupMetadata(connection, parsedStatement.getTableName());
42          //final ParsedStatement backpedalSql = backpedalSqlGenerator.backpedalDeleteStatement(parsedStatement,tableMetadata);
43          return createStatementEssentials(parsedStatement, bindVariables, tableMetadata, connection);
44      }
45  
46      private BackpedalStatementEssentials createStatementEssentials(ParsedStatement parsedStatement, final BindVariableSet bindVariables, final TableMetadata tableMetadata, final Connection connection) {
47          final Collection backpedalBindVariableSets = bindVariableResolver.getBindVariableSetsForMutatedRows(parsedStatement, bindVariables,tableMetadata,connection);
48          return backpedalFactory.createPreparedStatementEssentials(parsedStatement, backpedalBindVariableSets);
49      }
50  }
This page was automatically generated by Maven