Nuxeo Enterprise Platform 5.4

org.nuxeo.ecm.core.storage.sql.jdbc
Class SQLInfo

java.lang.Object
  extended by org.nuxeo.ecm.core.storage.sql.jdbc.SQLInfo

public class SQLInfo
extends java.lang.Object

This singleton generates and holds the actual SQL DDL and DML statements for the operations needed by the Mapper, given a Model.

It is specific to one SQL dialect.

Author:
Florent Guillaume

Nested Class Summary
static class SQLInfo.ColumnMapMaker
          Builds the map from a result set given a list of columns and column keys.
static interface SQLInfo.MapMaker
          Knows how to build a result map for a row given a ResultSet.
static class SQLInfo.SQLInfoSelect
           
 
Field Summary
 Database database
           
 Dialect dialect
           
 
Constructor Summary
SQLInfo(RepositoryImpl repository, Model model, Dialect dialect)
          Generates and holds the needed SQL statements given a Model and a Dialect.
 
Method Summary
 void executeSQLStatements(java.lang.String category, JDBCConnection jdbc)
          Executes the SQL statements for the given category.
 java.util.List<Column> getClusterInvalidationsColumns()
           
 java.util.List<Column> getCopyHierColumns(boolean explicitName, boolean createVersion)
           
 java.lang.String getCopyHierSql(boolean explicitName, boolean createVersion)
           
 Column getCopyHierWhereColumn()
           
 Column getCopyIdColumn(java.lang.String tableName)
           
 java.lang.String getCopySql(java.lang.String tableName)
           
 Database getDatabase()
           
 java.lang.String getDeleteSql(java.lang.String tableName)
          Returns the SQL DELETE to delete a row.
 java.util.List<Column> getInsertColumns(java.lang.String tableName)
          Returns the list of columns to use for an statement getInsertSql(java.lang.String).
 java.util.List<Column> getInsertRootIdColumns()
           
 java.lang.String getInsertRootIdSql()
           
 java.lang.String getInsertSql(java.lang.String tableName)
          Returns the SQL INSERT to add a row.
 java.lang.String getSelectByChildNameSql(java.lang.Boolean complexProp)
           
 java.util.List<Column> getSelectByChildNameWhatColumns(java.lang.Boolean complexProp)
           
 java.util.List<Column> getSelectByChildNameWhereColumns(java.lang.Boolean complexProp)
           
 java.lang.String getSelectChildrenIdsAndTypesSql(boolean onlyComplex)
           
 java.util.List<Column> getSelectChildrenIdsAndTypesWhatColumns()
           
 SQLInfo.SQLInfoSelect getSelectFragmentsByIds(java.lang.String tableName, int nids)
          Select by ids for all values of several fragments.
 SQLInfo.SQLInfoSelect getSelectFragmentsByIds(java.lang.String tableName, int nids, java.lang.String[] orderBys, java.util.Set<java.lang.String> skipColumns)
          Select by ids for all values of several fragments (maybe ordered along columns -- for collection fragments retrieval).
 java.lang.String getSelectRootIdSql()
           
 Column getSelectRootIdWhatColumn()
           
 SQLInfo.SQLInfoSelect getUpdateById(java.lang.String tableName, java.util.Collection<java.lang.String> keys)
           
 Update getUpdateByIdForKeys(java.lang.String tableName, java.util.List<java.lang.String> keys)
           
 java.lang.String getVersionIdByLabelSql()
           
 Column getVersionIdByLabelWhatColumn()
           
 java.util.List<Column> getVersionIdByLabelWhereColumns()
           
 void initSQLStatements(java.util.Map<java.lang.String,java.io.Serializable> testProps)
           
 SQLInfo.SQLInfoSelect makeJoinSelect(Table table, java.lang.String[] freeColumns, Table joinTable, java.lang.String[] joinCriteria)
          Joining SELECT T.x, T.y, T.z FROM T, U WHERE T.id = U.id AND T.a = ?
 SQLInfo.SQLInfoSelect makeJoinSelect(Table table, java.lang.String[] freeColumns, Table joinTable, java.lang.String[] joinCriteria, java.lang.String[] orderBys)
          Joining SELECT T.x, T.y, T.z FROM T, U WHERE T.id = U.id AND T.a = ?
 SQLInfo.SQLInfoSelect makeSelect(Table table, java.lang.String... freeColumns)
          Basic SELECT x, y, z FROM table WHERE a = ?
 SQLInfo.SQLInfoSelect makeSelect(Table table, java.lang.String[] orderBys, java.lang.String... freeColumns)
          Basic SELECT with optional ORDER BY x, y DESC
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

database

public final Database database

dialect

public final Dialect dialect
Constructor Detail

SQLInfo

public SQLInfo(RepositoryImpl repository,
               Model model,
               Dialect dialect)
        throws StorageException
Generates and holds the needed SQL statements given a Model and a Dialect.

Parameters:
model - the model
dialect - the SQL dialect
Throws:
StorageException
Method Detail

getDatabase

public Database getDatabase()

getSelectRootIdSql

public java.lang.String getSelectRootIdSql()

getSelectRootIdWhatColumn

public Column getSelectRootIdWhatColumn()

getInsertRootIdSql

public java.lang.String getInsertRootIdSql()

getInsertRootIdColumns

public java.util.List<Column> getInsertRootIdColumns()

getSelectByChildNameSql

public java.lang.String getSelectByChildNameSql(java.lang.Boolean complexProp)

getSelectByChildNameWhatColumns

public java.util.List<Column> getSelectByChildNameWhatColumns(java.lang.Boolean complexProp)

getSelectByChildNameWhereColumns

public java.util.List<Column> getSelectByChildNameWhereColumns(java.lang.Boolean complexProp)

getSelectChildrenIdsAndTypesSql

public java.lang.String getSelectChildrenIdsAndTypesSql(boolean onlyComplex)

getSelectChildrenIdsAndTypesWhatColumns

public java.util.List<Column> getSelectChildrenIdsAndTypesWhatColumns()

getClusterInvalidationsColumns

public java.util.List<Column> getClusterInvalidationsColumns()

getInsertSql

public java.lang.String getInsertSql(java.lang.String tableName)
Returns the SQL INSERT to add a row. The columns that represent sequences that are implicitly auto-incremented aren't included.

Parameters:
tableName - the table name
Returns:
the SQL INSERT statement

getInsertColumns

public java.util.List<Column> getInsertColumns(java.lang.String tableName)
Returns the list of columns to use for an statement getInsertSql(java.lang.String).

Parameters:
tableName - the table name
Returns:
the list of columns

getUpdateById

public SQLInfo.SQLInfoSelect getUpdateById(java.lang.String tableName,
                                           java.util.Collection<java.lang.String> keys)

getUpdateByIdForKeys

public Update getUpdateByIdForKeys(java.lang.String tableName,
                                   java.util.List<java.lang.String> keys)

getSelectFragmentsByIds

public SQLInfo.SQLInfoSelect getSelectFragmentsByIds(java.lang.String tableName,
                                                     int nids)
Select by ids for all values of several fragments.


getSelectFragmentsByIds

public SQLInfo.SQLInfoSelect getSelectFragmentsByIds(java.lang.String tableName,
                                                     int nids,
                                                     java.lang.String[] orderBys,
                                                     java.util.Set<java.lang.String> skipColumns)
Select by ids for all values of several fragments (maybe ordered along columns -- for collection fragments retrieval).


getDeleteSql

public java.lang.String getDeleteSql(java.lang.String tableName)
Returns the SQL DELETE to delete a row. The primary key columns are free parameters.

Parameters:
tableName - the table name
Returns:
the SQL INSERT statement

getCopyHierSql

public java.lang.String getCopyHierSql(boolean explicitName,
                                       boolean createVersion)

getCopyHierColumns

public java.util.List<Column> getCopyHierColumns(boolean explicitName,
                                                 boolean createVersion)

getCopyHierWhereColumn

public Column getCopyHierWhereColumn()

getCopySql

public java.lang.String getCopySql(java.lang.String tableName)

getCopyIdColumn

public Column getCopyIdColumn(java.lang.String tableName)

getVersionIdByLabelSql

public java.lang.String getVersionIdByLabelSql()

getVersionIdByLabelWhereColumns

public java.util.List<Column> getVersionIdByLabelWhereColumns()

getVersionIdByLabelWhatColumn

public Column getVersionIdByLabelWhatColumn()

makeSelect

public SQLInfo.SQLInfoSelect makeSelect(Table table,
                                        java.lang.String... freeColumns)
Basic SELECT x, y, z FROM table WHERE a = ? AND b = ?


makeSelect

public SQLInfo.SQLInfoSelect makeSelect(Table table,
                                        java.lang.String[] orderBys,
                                        java.lang.String... freeColumns)
Basic SELECT with optional ORDER BY x, y DESC


makeJoinSelect

public SQLInfo.SQLInfoSelect makeJoinSelect(Table table,
                                            java.lang.String[] freeColumns,
                                            Table joinTable,
                                            java.lang.String[] joinCriteria)
Joining SELECT T.x, T.y, T.z FROM T, U WHERE T.id = U.id AND T.a = ? and U.b = ?


makeJoinSelect

public SQLInfo.SQLInfoSelect makeJoinSelect(Table table,
                                            java.lang.String[] freeColumns,
                                            Table joinTable,
                                            java.lang.String[] joinCriteria,
                                            java.lang.String[] orderBys)
Joining SELECT T.x, T.y, T.z FROM T, U WHERE T.id = U.id AND T.a = ? and U.b = ? ORDER BY x, y DESC


initSQLStatements

public void initSQLStatements(java.util.Map<java.lang.String,java.io.Serializable> testProps)
                       throws java.io.IOException
Throws:
java.io.IOException

executeSQLStatements

public void executeSQLStatements(java.lang.String category,
                                 JDBCConnection jdbc)
                          throws java.sql.SQLException
Executes the SQL statements for the given category.

Throws:
java.sql.SQLException

Nuxeo Enterprise Platform 5.4

Copyright © 2010 Nuxeo SAS. All Rights Reserved.