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