public class DataSourceGroupingImpl extends DataSourceImpl
DataSourceImpl.Parameter, DataSourceImpl.SortField, DataSourceImpl.TableAndRole
DataSource.RecordHandler
Modifier and Type | Field and Description |
---|---|
protected java.util.List<com.archibus.datasource.VirtualFieldDef> |
calculatedGroupingFieldDefs
List of calculated grouping field definitions.
|
static java.lang.String |
FORMULA_AVG |
static java.lang.String |
FORMULA_COUNT |
static java.lang.String |
FORMULA_COUNT_PERCENT |
static java.lang.String |
FORMULA_DAY |
static java.lang.String |
FORMULA_MAX |
static java.lang.String |
FORMULA_MIN |
static java.lang.String |
FORMULA_MONTH |
static java.lang.String |
FORMULA_QUARTER |
static java.lang.String |
FORMULA_SUM
Supported aggregate field formulas.
|
static java.lang.String |
FORMULA_SUM_PERCENT
Additional aggregate formulas not supported by SQL-99.
|
static java.lang.String |
FORMULA_WEEK |
static java.lang.String |
FORMULA_YEAR
Supported aggregate field formulas for temporal groupings.
|
protected java.util.List<java.lang.String> |
groupingFieldNames
List of fully qualified names of simple (non-calculated) grouping fields.
|
applyVpaRestrictions, basicRulesLog, calculatedFieldDefs, CASCADE_HANDLER, cascadeHandler, customSqlQueries, database, databaseRole, dataSourceDef, doNotWrapCustomSql, eventHandlerContext, expressionContext, fieldNames, fieldNamesForNewRecord, hasMoreRecords, isAutoCommit, isDistinct, keyFieldsByFullName, locale, log, mainTableDef, mainTableName, maxRecords, parameters, parametersChanged, parentContext, persistentRestrictions, primaryKeyFields, project, query, restrictions, restrictionValues, SCRIPT_INJECTION_HANDLER, scriptInjectionHandler, sortFields, SQL_INJECTION_HANDLER, sqlInjectionHandler, standardQueries, tablesAndRoles, useHierarchicalSecurityRestriction, virtualFieldDefs, virtualFields, visibleFields, visibleFieldsByName
DATA_TYPE_BOOLEAN, DATA_TYPE_CURRENCY, DATA_TYPE_DATE, DATA_TYPE_DOUBLE, DATA_TYPE_INTEGER, DATA_TYPE_MEMO, DATA_TYPE_NUMBER, DATA_TYPE_TEXT, DATA_TYPE_TIME, DATA_TYPE_VERBATIM, DB_ROLE_DATA, DB_ROLE_SCHEMA, DB_ROLE_SECURITY, ROLE_MAIN, ROLE_STANDARD, SORT_ASC, SORT_DESC
Constructor and Description |
---|
DataSourceGroupingImpl() |
Modifier and Type | Method and Description |
---|---|
DataSource |
addCalculatedField(java.lang.String table,
java.lang.String name,
java.lang.String dataType,
int size,
int decimals,
java.lang.String formula,
java.lang.String baseField)
Adds a calculated numeric field.
|
DataSource |
addCalculatedField(java.lang.String table,
java.lang.String name,
java.lang.String dataType,
java.lang.String formula,
java.lang.String baseField)
Adds a calculated field.
|
DataSource |
addCalculatedGroupByField(com.archibus.datasource.VirtualFieldDef groupingField)
Adds a calculated grouping field.
|
DataSource |
addGroupByField(java.lang.String table,
java.lang.String name,
java.lang.String dataType)
Adds a simple grouping field.
|
DataSource |
createCopy()
Creates and returns a copy of this data source.
|
com.archibus.datasource.data.DataRecord |
createRecord()
Creates new DataRecord with default values for all fields defined in the data source.
|
void |
deleteRecord(com.archibus.datasource.data.DataRecord record)
Override for DataSourceImpl.deleteRecord().
|
void |
deleteRecord(java.util.Map fieldValues)
Override for DataSourceImpl.deleteRecord().
|
protected void |
evaluateSqlExpressions()
Evaluates expressions in custom SQL queries.
|
java.lang.String |
formatSqlQueryForSubtotals(java.util.List<com.archibus.db.RestrictionSqlBase.Immutable> clientRestrictions,
java.lang.String groupingFieldName)
Formats SQL query for totals.
|
java.lang.String |
formatSqlQueryForSubtotals(java.lang.String restrictionString,
java.lang.String groupingFieldName)
Formats SQL query for totals.
|
java.lang.String |
formatSqlQueryForTotals(java.lang.String restrictionString)
Formats SQL query for totals.
|
java.util.List<java.lang.String> |
getAllGroupingFieldNames()
Returns the list of full names for calculated and non-calculated grouping fields.
|
java.util.List |
getDbFieldsForSubtotals(java.lang.String groupingFieldName)
Returns the list of fields for the sub-totals query.
|
java.util.List |
getDbFieldsForTotals()
Returns the list of fields for the totals query.
|
java.util.List<java.lang.String> |
getGroupingFieldNames()
Returns the list of full names for non-calculated grouping fields.
|
java.util.Set<com.archibus.schema.LookupFieldMapping> |
getLookupFieldDefs()
Returns all lookup field definitions for this data source.
|
protected com.archibus.datasource.DataSourceQueryImpl |
getQueryInstance(com.archibus.config.Database.Immutable database)
Returns new query instance.
|
java.util.List<com.archibus.datasource.data.DataRecord> |
getSubtotals(java.util.List<com.archibus.db.RestrictionSqlBase.Immutable> clientRestrictions,
java.lang.String groupingFieldName)
Retrieve records that contains subtotals for all calculated fields and specified grouping
field.
|
java.util.List<com.archibus.datasource.data.DataRecord> |
getSubtotals(java.lang.String restriction,
java.lang.String groupingFieldName)
Retrieve records that contains subtotals for all calculated fields and specified grouping
field.
|
com.archibus.datasource.data.DataRecord |
getTotals(java.lang.String restriction)
Retrieve records that contains totals for all calculated fields.
|
com.archibus.datasource.data.DataRecord |
saveRecord(com.archibus.datasource.data.DataRecord record)
Override for DataSourceImpl.saveRecord().
|
boolean |
useVirtualFields()
Returns true if virtual fields must be used instead of visible fields to handle JDBC
resultset (always for grouping DataSource).
|
addCalculatedField, addField, addField, addField, addField, addParameter, addParameter, addParameter, addParameter, addPersistentRestrictions, addQuery, addQuery, addRestriction, addRestriction, addRestrictionsToQuery, addSort, addSort, addSort, addTable, addTable, addVirtualField, addVirtualField, addVirtualField, checkAutoCommit, checkSetContext, clearRestrictions, commit, copyProperties, createNewRecord, createPrimaryKeyIds, createRecordFromContext, createSqlForLastAddedPK, createVirtualField, createVirtualViewField, enableIdLookup, evaluateExpressions, executeUpdate, executeUpdateRequired, findField, findKeyField, findTable, findVirtualField, formatJoin, formatSqlForPersistentRestrictions, formatSqlForPersistentRestrictionsForTable, formatSqlForPersistentRestrictionsForTableAndRole, formatSqlForRestriction, formatSqlQuery, formatSqlQuery, formatSqlQuery, formatSqlQuery, formatSqlQueryForField, getAllFields, getAllRecords, getCalculatedFieldDef, getContext, getDatabaseRole, getDataSourceDef, getDbFieldsForNewRecord, getDbFieldsForPrimaryKeys, getDbFieldsForPrimaryKeysAsMap, getDbFieldsForVisibleFields, getDefaultRecord, getFieldNames, getId, getMainTableDef, getMainTableName, getParameters, getPKeyFieldNamesForTable, getPrimaryKeyFieldNamesForTable, getPrimaryKeyFields, getQueries, getRecord, getRecord, getRecords, getRecords, getRecords, getRecords, getRecords, getRecords, getRestrictionRelativeOperation, getRestrictions, getRestrictionValues, getSortFields, getTablesAndRoles, getTitle, getViewName, getVirtualFieldDef, getVirtualFields, getVisibleFields, getVisibleFieldsByName, hasCustomQuery, hasMoreRecords, hasVirtualFields, isDistinct, isIdLookupEnabled, isOracle, isSqlServer, isSybase, parseClientRestrictions, queryRecords, queryRecords, rollback, setApplyVpaRestrictions, setAutoCommit, setContext, setContext, setContext, setDatabaseRole, setDataSourceDef, setDistinct, setDoNotWrapCustomSql, setId, setMaxRecords, setParameter, setRestrictionRelativeOperation, setTitle, setUseHierarchicalSecurityRestriction, setViewName, updateRecord, useCascadeHandler
public static final java.lang.String FORMULA_SUM
public static final java.lang.String FORMULA_COUNT
public static final java.lang.String FORMULA_AVG
public static final java.lang.String FORMULA_MIN
public static final java.lang.String FORMULA_MAX
public static final java.lang.String FORMULA_SUM_PERCENT
public static final java.lang.String FORMULA_COUNT_PERCENT
public static final java.lang.String FORMULA_YEAR
public static final java.lang.String FORMULA_QUARTER
public static final java.lang.String FORMULA_MONTH
public static final java.lang.String FORMULA_WEEK
public static final java.lang.String FORMULA_DAY
protected java.util.List<java.lang.String> groupingFieldNames
protected final java.util.List<com.archibus.datasource.VirtualFieldDef> calculatedGroupingFieldDefs
public java.util.List<java.lang.String> getGroupingFieldNames()
public java.util.List<java.lang.String> getAllGroupingFieldNames()
public DataSource addGroupByField(java.lang.String table, java.lang.String name, java.lang.String dataType)
table
- The table name.name
- The field name.dataType
- The data type.public DataSource addCalculatedGroupByField(com.archibus.datasource.VirtualFieldDef groupingField)
groupingField
- The field definition.public DataSource addCalculatedField(java.lang.String table, java.lang.String name, java.lang.String dataType, java.lang.String formula, java.lang.String baseField)
table
- The table name.name
- The field name.dataType
- The data type.formula
- The formula.baseField
- The base field name.public DataSource addCalculatedField(java.lang.String table, java.lang.String name, java.lang.String dataType, int size, int decimals, java.lang.String formula, java.lang.String baseField)
table
- The table name.name
- The field name.dataType
- The data type.size
- The numeric field size.decimals
- The number of numeric field decimals.formula
- The formula.baseField
- The base field name.public DataSource createCopy()
createCopy
in class DataSourceImpl
public com.archibus.datasource.data.DataRecord getTotals(java.lang.String restriction)
restriction
- Client-supplied restriction string, or null.public java.util.List<com.archibus.datasource.data.DataRecord> getSubtotals(java.lang.String restriction, java.lang.String groupingFieldName)
restriction
- Client-supplied restriction string, or null.groupingFieldName
- The grouping field name.public java.util.List<com.archibus.datasource.data.DataRecord> getSubtotals(java.util.List<com.archibus.db.RestrictionSqlBase.Immutable> clientRestrictions, java.lang.String groupingFieldName)
clientRestrictions
- The list of restrictions.groupingFieldName
- The grouping field name.public java.lang.String formatSqlQueryForTotals(java.lang.String restrictionString)
restrictionString
- Client-supplied restriction string, or null.public java.lang.String formatSqlQueryForSubtotals(java.lang.String restrictionString, java.lang.String groupingFieldName)
restrictionString
- Client-supplied restriction string, or null.groupingFieldName
- The grouping field name.public java.lang.String formatSqlQueryForSubtotals(java.util.List<com.archibus.db.RestrictionSqlBase.Immutable> clientRestrictions, java.lang.String groupingFieldName)
clientRestrictions
- The list of restrictions.groupingFieldName
- The grouping field name.protected com.archibus.datasource.DataSourceQueryImpl getQueryInstance(com.archibus.config.Database.Immutable database)
getQueryInstance
in class DataSourceImpl
database
- The database.public java.util.Set<com.archibus.schema.LookupFieldMapping> getLookupFieldDefs()
public boolean useVirtualFields()
useVirtualFields
in class DataSourceImpl
protected void evaluateSqlExpressions()
evaluateSqlExpressions
in class DataSourceImpl
public java.util.List getDbFieldsForTotals()
public java.util.List getDbFieldsForSubtotals(java.lang.String groupingFieldName)
groupingFieldName
- The grouping field name.public com.archibus.datasource.data.DataRecord saveRecord(com.archibus.datasource.data.DataRecord record)
saveRecord
in interface DataSource
saveRecord
in class DataSourceImpl
record
- DataRecord containing record values to be saved and old values.public void deleteRecord(com.archibus.datasource.data.DataRecord record)
deleteRecord
in interface DataSource
deleteRecord
in class DataSourceImpl
record
- DataRecord containing record to be deleted.public void deleteRecord(java.util.Map fieldValues) throws com.archibus.utility.ExceptionBase
deleteRecord
in interface DataSource
deleteRecord
in class DataSourceImpl
fieldValues
- map containing record values.com.archibus.utility.ExceptionBase
public com.archibus.datasource.data.DataRecord createRecord()
DataSource
createRecord
in interface DataSource
createRecord
in class DataSourceImpl