org.qi4j.index.sql.support.skeletons
Class AbstractSQLIndexing

java.lang.Object
  extended by org.qi4j.index.sql.support.skeletons.AbstractSQLIndexing
All Implemented Interfaces:
SQLIndexing
Direct Known Subclasses:
PostgreSQLIndexing

public abstract class AbstractSQLIndexing
extends java.lang.Object
implements SQLIndexing

TODO SQL-Generator now has support for auto-generated columns. Use it in indexing ( should make some things quite faster and simpler ).


Field Summary
static java.lang.Integer AMOUNT_OF_COLUMNS_IN_ALL_QNAMES_TABLE
           
static java.lang.Integer AMOUNT_OF_COLUMNS_IN_ASSO_TABLE
           
static java.lang.Integer AMOUNT_OF_COLUMNS_IN_ENTITY_TABLE
           
static java.lang.Integer AMOUNT_OF_COLUMNS_IN_MANY_ASSO_TABLE
           
 
Constructor Summary
AbstractSQLIndexing()
           
 
Method Summary
protected  void addEntityInfoToInsertToEntityTablePS(EntityState state, java.sql.PreparedStatement ps, int startingIndex)
           
protected  org.sql.generation.api.grammar.modification.InsertStatement createAssoInsert(QNameInfo qNameInfo, org.sql.generation.api.vendor.SQLVendor vendor, java.lang.Integer amountOfParams)
           
protected  org.sql.generation.api.grammar.modification.DeleteStatement createClearEntityDataStatement(java.lang.String schemaName, org.sql.generation.api.vendor.SQLVendor vendor)
           
protected  org.sql.generation.api.grammar.modification.DeleteStatement createDeleteFromEntityTableStatement(java.lang.String schemaName, org.sql.generation.api.vendor.SQLVendor vendor)
           
protected  org.sql.generation.api.grammar.modification.DeleteStatement createDeleteFromTableStatement(java.lang.String schemaName, java.lang.String tableName, java.lang.String columnName, org.sql.generation.api.vendor.SQLVendor vendor)
           
protected  org.sql.generation.api.grammar.modification.InsertStatement createInsertEntityTypeStatement(java.lang.String schemaName, org.sql.generation.api.vendor.SQLVendor vendor)
           
protected  org.sql.generation.api.grammar.modification.InsertStatement createInsertStatement(java.lang.String schemaName, java.lang.String tableName, java.lang.Integer amountOfColumns, org.sql.generation.api.vendor.SQLVendor vendor)
           
protected abstract  org.sql.generation.api.grammar.modification.InsertStatement createInsertStatementWithAutoGeneratedIDForEntitiesTable(java.lang.String schemaName, java.lang.String tableName, org.sql.generation.api.vendor.SQLVendor vendor)
           
protected  org.sql.generation.api.grammar.modification.InsertStatement createPropertyInsert(QNameInfo qNameInfo, org.sql.generation.api.vendor.SQLVendor vendor)
           
protected  org.sql.generation.api.grammar.query.QueryExpression createQueryEntityPkByIdentityStatement(java.lang.String schemaName, org.sql.generation.api.vendor.SQLVendor vendor)
           
protected  org.sql.generation.api.grammar.modification.UpdateStatement createUpdateEntityTableStatement(java.lang.String schemaName, org.sql.generation.api.vendor.SQLVendor vendor)
           
protected  java.lang.Long findEntityPK(EntityState state, org.qi4j.index.sql.support.skeletons.SQLSkeletonUtil.Lazy<java.sql.PreparedStatement,java.sql.SQLException> queryPKPS)
           
protected abstract  long getPKFromAutoGeneratedIDInsert(EntityState state, java.sql.PreparedStatement autoGeneratedIDStatement, org.sql.generation.api.vendor.SQLVendor vendor, java.sql.Connection connection)
           
 void indexEntities(java.lang.Iterable<EntityState> changedStates)
          This method is called when states need to be indexed.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

AMOUNT_OF_COLUMNS_IN_ENTITY_TABLE

public static final java.lang.Integer AMOUNT_OF_COLUMNS_IN_ENTITY_TABLE

AMOUNT_OF_COLUMNS_IN_ALL_QNAMES_TABLE

public static final java.lang.Integer AMOUNT_OF_COLUMNS_IN_ALL_QNAMES_TABLE

AMOUNT_OF_COLUMNS_IN_ASSO_TABLE

public static final java.lang.Integer AMOUNT_OF_COLUMNS_IN_ASSO_TABLE

AMOUNT_OF_COLUMNS_IN_MANY_ASSO_TABLE

public static final java.lang.Integer AMOUNT_OF_COLUMNS_IN_MANY_ASSO_TABLE
Constructor Detail

AbstractSQLIndexing

public AbstractSQLIndexing()
Method Detail

indexEntities

public void indexEntities(java.lang.Iterable<EntityState> changedStates)
                   throws java.sql.SQLException
Description copied from interface: SQLIndexing
This method is called when states need to be indexed.

Specified by:
indexEntities in interface SQLIndexing
Parameters:
changedStates - The states which changed.
Throws:
java.sql.SQLException - If SQL.

createInsertStatement

protected org.sql.generation.api.grammar.modification.InsertStatement createInsertStatement(java.lang.String schemaName,
                                                                                            java.lang.String tableName,
                                                                                            java.lang.Integer amountOfColumns,
                                                                                            org.sql.generation.api.vendor.SQLVendor vendor)

createInsertStatementWithAutoGeneratedIDForEntitiesTable

protected abstract org.sql.generation.api.grammar.modification.InsertStatement createInsertStatementWithAutoGeneratedIDForEntitiesTable(java.lang.String schemaName,
                                                                                                                                        java.lang.String tableName,
                                                                                                                                        org.sql.generation.api.vendor.SQLVendor vendor)

addEntityInfoToInsertToEntityTablePS

protected void addEntityInfoToInsertToEntityTablePS(EntityState state,
                                                    java.sql.PreparedStatement ps,
                                                    int startingIndex)
                                             throws java.sql.SQLException
Throws:
java.sql.SQLException

findEntityPK

protected java.lang.Long findEntityPK(EntityState state,
                                      org.qi4j.index.sql.support.skeletons.SQLSkeletonUtil.Lazy<java.sql.PreparedStatement,java.sql.SQLException> queryPKPS)
                               throws java.sql.SQLException
Throws:
java.sql.SQLException

getPKFromAutoGeneratedIDInsert

protected abstract long getPKFromAutoGeneratedIDInsert(EntityState state,
                                                       java.sql.PreparedStatement autoGeneratedIDStatement,
                                                       org.sql.generation.api.vendor.SQLVendor vendor,
                                                       java.sql.Connection connection)
                                                throws java.sql.SQLException
Throws:
java.sql.SQLException

createUpdateEntityTableStatement

protected org.sql.generation.api.grammar.modification.UpdateStatement createUpdateEntityTableStatement(java.lang.String schemaName,
                                                                                                       org.sql.generation.api.vendor.SQLVendor vendor)

createQueryEntityPkByIdentityStatement

protected org.sql.generation.api.grammar.query.QueryExpression createQueryEntityPkByIdentityStatement(java.lang.String schemaName,
                                                                                                      org.sql.generation.api.vendor.SQLVendor vendor)

createDeleteFromEntityTableStatement

protected org.sql.generation.api.grammar.modification.DeleteStatement createDeleteFromEntityTableStatement(java.lang.String schemaName,
                                                                                                           org.sql.generation.api.vendor.SQLVendor vendor)

createClearEntityDataStatement

protected org.sql.generation.api.grammar.modification.DeleteStatement createClearEntityDataStatement(java.lang.String schemaName,
                                                                                                     org.sql.generation.api.vendor.SQLVendor vendor)

createDeleteFromTableStatement

protected org.sql.generation.api.grammar.modification.DeleteStatement createDeleteFromTableStatement(java.lang.String schemaName,
                                                                                                     java.lang.String tableName,
                                                                                                     java.lang.String columnName,
                                                                                                     org.sql.generation.api.vendor.SQLVendor vendor)

createPropertyInsert

protected org.sql.generation.api.grammar.modification.InsertStatement createPropertyInsert(QNameInfo qNameInfo,
                                                                                           org.sql.generation.api.vendor.SQLVendor vendor)

createAssoInsert

protected org.sql.generation.api.grammar.modification.InsertStatement createAssoInsert(QNameInfo qNameInfo,
                                                                                       org.sql.generation.api.vendor.SQLVendor vendor,
                                                                                       java.lang.Integer amountOfParams)

createInsertEntityTypeStatement

protected org.sql.generation.api.grammar.modification.InsertStatement createInsertEntityTypeStatement(java.lang.String schemaName,
                                                                                                      org.sql.generation.api.vendor.SQLVendor vendor)