Package org.dashbuilder.dataprovider.sql
Class SQLDataSetProvider
- java.lang.Object
-
- org.dashbuilder.dataprovider.sql.SQLDataSetProvider
-
- All Implemented Interfaces:
org.dashbuilder.dataprovider.DataSetProvider,org.dashbuilder.dataset.def.DataSetDefRegistryListener
public class SQLDataSetProvider extends Object implements org.dashbuilder.dataprovider.DataSetProvider, org.dashbuilder.dataset.def.DataSetDefRegistryListener
DataSetProvider implementation for JDBC-compliant data sources.The SQL provider resolves every data set lookup request by transforming such request into the proper SQL query. In some cases, an extra processing of the resulting data is required since some lookup requests do not map directly into the SQL world. In such cases, specially the grouping of date based data, the core data set operation engine is used.
Pending stuff: - Filter on foreign data sets - Group (fixed) by date of week
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classSQLDataSetProvider.MetadataHolder
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,SQLDataSetProvider.MetadataHolder>_metadataMapprotected SQLDataSourceLocatordataSourceLocatorprotected org.dashbuilder.dataset.IntervalBuilderDynamicDateintervalBuilderDynamicDateprotected org.dashbuilder.dataset.engine.group.IntervalBuilderLocatorintervalBuilderLocatorprotected org.slf4j.Loggerlogprotected org.dashbuilder.dataset.DataSetOpEngineopEngineprotected org.dashbuilder.dataprovider.StaticDataSetProviderstaticDataSetProvider
-
Constructor Summary
Constructors Constructor Description SQLDataSetProvider()SQLDataSetProvider(org.dashbuilder.dataprovider.StaticDataSetProvider staticDataSetProvider, org.dashbuilder.dataset.engine.group.IntervalBuilderLocator intervalBuilderLocator, org.dashbuilder.dataset.IntervalBuilderDynamicDate intervalBuilderDynamicDate, org.dashbuilder.dataset.DataSetOpEngine opEngine)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void_appendFilterBy(org.dashbuilder.dataset.DataSetMetadata metadata, org.dashbuilder.dataset.def.SQLDataSetDef def, org.dashbuilder.dataset.filter.ColumnFilter filter, Select _query)protected void_appendFilterBy(org.dashbuilder.dataset.DataSetMetadata metadata, org.dashbuilder.dataset.def.SQLDataSetDef def, org.dashbuilder.dataset.filter.DataSetFilter filterOp, Select _query)protected void_appendFrom(org.dashbuilder.dataset.def.SQLDataSetDef def, Select _query)protected int_assertColumnExists(org.dashbuilder.dataset.DataSetMetadata metadata, String columnId)protected String_columnFromMetadata(org.dashbuilder.dataset.DataSetMetadata metadata, String columnId)protected Condition_createCondition(org.dashbuilder.dataset.DataSetMetadata metadata, org.dashbuilder.dataset.def.SQLDataSetDef def, org.dashbuilder.dataset.filter.ColumnFilter filter)protected Table_createTable(org.dashbuilder.dataset.def.SQLDataSetDef def)protected List<Column>_getColumns(org.dashbuilder.dataset.def.SQLDataSetDef def, Connection conn)protected org.dashbuilder.dataset.DataSetMetadata_getDataSetMetadata(org.dashbuilder.dataset.def.SQLDataSetDef def, Connection conn, boolean skipCache)protected Column_getDbColumn(Collection<Column> dbColumns, String columnId)protected int_getRowCount(org.dashbuilder.dataset.DataSetMetadata metadata, org.dashbuilder.dataset.def.SQLDataSetDef def, Connection conn)protected org.dashbuilder.dataset.DataSet_lookupDataSet(org.dashbuilder.dataset.def.SQLDataSetDef def, org.dashbuilder.dataset.DataSetLookup lookup)static SQLDataSetProviderget()org.dashbuilder.dataset.DataSetMetadatagetDataSetMetadata(org.dashbuilder.dataset.def.DataSetDef def)SQLDataSourceLocatorgetDataSourceLocator()org.dashbuilder.dataset.IntervalBuilderDynamicDategetIntervalBuilderDynamicDate()org.dashbuilder.dataset.engine.group.IntervalBuilderLocatorgetIntervalBuilderLocator()org.dashbuilder.dataset.DataSetOpEnginegetOpEngine()org.dashbuilder.dataprovider.StaticDataSetProvidergetStaticDataSetProvider()org.dashbuilder.dataprovider.DataSetProviderTypegetType()booleanisDataSetOutdated(org.dashbuilder.dataset.def.DataSetDef def)SelectlogSQL(Select q)org.dashbuilder.dataset.DataSetlookupDataSet(org.dashbuilder.dataset.def.DataSetDef def, org.dashbuilder.dataset.DataSetLookup lookup)voidonDataSetDefModified(org.dashbuilder.dataset.def.DataSetDef olDef, org.dashbuilder.dataset.def.DataSetDef newDef)voidonDataSetDefRegistered(org.dashbuilder.dataset.def.DataSetDef newDef)voidonDataSetDefRemoved(org.dashbuilder.dataset.def.DataSetDef oldDef)voidonDataSetDefStale(org.dashbuilder.dataset.def.DataSetDef def)voidsetDataSourceLocator(SQLDataSourceLocator dataSourceLocator)voidsetIntervalBuilderDynamicDate(org.dashbuilder.dataset.IntervalBuilderDynamicDate intervalBuilderDynamicDate)voidsetIntervalBuilderLocator(org.dashbuilder.dataset.engine.group.IntervalBuilderLocator intervalBuilderLocator)voidsetOpEngine(org.dashbuilder.dataset.DataSetOpEngine opEngine)voidsetStaticDataSetProvider(org.dashbuilder.dataprovider.StaticDataSetProvider staticDataSetProvider)
-
-
-
Field Detail
-
log
protected org.slf4j.Logger log
-
staticDataSetProvider
protected org.dashbuilder.dataprovider.StaticDataSetProvider staticDataSetProvider
-
dataSourceLocator
protected SQLDataSourceLocator dataSourceLocator
-
intervalBuilderLocator
protected org.dashbuilder.dataset.engine.group.IntervalBuilderLocator intervalBuilderLocator
-
intervalBuilderDynamicDate
protected org.dashbuilder.dataset.IntervalBuilderDynamicDate intervalBuilderDynamicDate
-
opEngine
protected org.dashbuilder.dataset.DataSetOpEngine opEngine
-
_metadataMap
protected transient Map<String,SQLDataSetProvider.MetadataHolder> _metadataMap
-
-
Constructor Detail
-
SQLDataSetProvider
public SQLDataSetProvider()
-
SQLDataSetProvider
public SQLDataSetProvider(org.dashbuilder.dataprovider.StaticDataSetProvider staticDataSetProvider, org.dashbuilder.dataset.engine.group.IntervalBuilderLocator intervalBuilderLocator, org.dashbuilder.dataset.IntervalBuilderDynamicDate intervalBuilderDynamicDate, org.dashbuilder.dataset.DataSetOpEngine opEngine)
-
-
Method Detail
-
get
public static SQLDataSetProvider get()
-
getStaticDataSetProvider
public org.dashbuilder.dataprovider.StaticDataSetProvider getStaticDataSetProvider()
-
setStaticDataSetProvider
public void setStaticDataSetProvider(org.dashbuilder.dataprovider.StaticDataSetProvider staticDataSetProvider)
-
getDataSourceLocator
public SQLDataSourceLocator getDataSourceLocator()
-
setDataSourceLocator
public void setDataSourceLocator(SQLDataSourceLocator dataSourceLocator)
-
getIntervalBuilderLocator
public org.dashbuilder.dataset.engine.group.IntervalBuilderLocator getIntervalBuilderLocator()
-
setIntervalBuilderLocator
public void setIntervalBuilderLocator(org.dashbuilder.dataset.engine.group.IntervalBuilderLocator intervalBuilderLocator)
-
getIntervalBuilderDynamicDate
public org.dashbuilder.dataset.IntervalBuilderDynamicDate getIntervalBuilderDynamicDate()
-
setIntervalBuilderDynamicDate
public void setIntervalBuilderDynamicDate(org.dashbuilder.dataset.IntervalBuilderDynamicDate intervalBuilderDynamicDate)
-
getOpEngine
public org.dashbuilder.dataset.DataSetOpEngine getOpEngine()
-
setOpEngine
public void setOpEngine(org.dashbuilder.dataset.DataSetOpEngine opEngine)
-
getType
public org.dashbuilder.dataprovider.DataSetProviderType getType()
- Specified by:
getTypein interfaceorg.dashbuilder.dataprovider.DataSetProvider
-
lookupDataSet
public org.dashbuilder.dataset.DataSet lookupDataSet(org.dashbuilder.dataset.def.DataSetDef def, org.dashbuilder.dataset.DataSetLookup lookup) throws Exception- Specified by:
lookupDataSetin interfaceorg.dashbuilder.dataprovider.DataSetProvider- Throws:
Exception
-
isDataSetOutdated
public boolean isDataSetOutdated(org.dashbuilder.dataset.def.DataSetDef def)
- Specified by:
isDataSetOutdatedin interfaceorg.dashbuilder.dataprovider.DataSetProvider
-
getDataSetMetadata
public org.dashbuilder.dataset.DataSetMetadata getDataSetMetadata(org.dashbuilder.dataset.def.DataSetDef def) throws Exception- Specified by:
getDataSetMetadatain interfaceorg.dashbuilder.dataprovider.DataSetProvider- Throws:
Exception
-
onDataSetDefStale
public void onDataSetDefStale(org.dashbuilder.dataset.def.DataSetDef def)
- Specified by:
onDataSetDefStalein interfaceorg.dashbuilder.dataset.def.DataSetDefRegistryListener
-
onDataSetDefModified
public void onDataSetDefModified(org.dashbuilder.dataset.def.DataSetDef olDef, org.dashbuilder.dataset.def.DataSetDef newDef)- Specified by:
onDataSetDefModifiedin interfaceorg.dashbuilder.dataset.def.DataSetDefRegistryListener
-
onDataSetDefRemoved
public void onDataSetDefRemoved(org.dashbuilder.dataset.def.DataSetDef oldDef)
- Specified by:
onDataSetDefRemovedin interfaceorg.dashbuilder.dataset.def.DataSetDefRegistryListener
-
onDataSetDefRegistered
public void onDataSetDefRegistered(org.dashbuilder.dataset.def.DataSetDef newDef)
- Specified by:
onDataSetDefRegisteredin interfaceorg.dashbuilder.dataset.def.DataSetDefRegistryListener
-
_getDbColumn
protected Column _getDbColumn(Collection<Column> dbColumns, String columnId)
-
_getDataSetMetadata
protected org.dashbuilder.dataset.DataSetMetadata _getDataSetMetadata(org.dashbuilder.dataset.def.SQLDataSetDef def, Connection conn, boolean skipCache) throws Exception- Throws:
Exception
-
_getColumns
protected List<Column> _getColumns(org.dashbuilder.dataset.def.SQLDataSetDef def, Connection conn)
-
_getRowCount
protected int _getRowCount(org.dashbuilder.dataset.DataSetMetadata metadata, org.dashbuilder.dataset.def.SQLDataSetDef def, Connection conn) throws Exception- Throws:
Exception
-
_lookupDataSet
protected org.dashbuilder.dataset.DataSet _lookupDataSet(org.dashbuilder.dataset.def.SQLDataSetDef def, org.dashbuilder.dataset.DataSetLookup lookup) throws Exception- Throws:
Exception
-
_createTable
protected Table _createTable(org.dashbuilder.dataset.def.SQLDataSetDef def)
-
_appendFrom
protected void _appendFrom(org.dashbuilder.dataset.def.SQLDataSetDef def, Select _query)
-
_appendFilterBy
protected void _appendFilterBy(org.dashbuilder.dataset.DataSetMetadata metadata, org.dashbuilder.dataset.def.SQLDataSetDef def, org.dashbuilder.dataset.filter.DataSetFilter filterOp, Select _query)
-
_appendFilterBy
protected void _appendFilterBy(org.dashbuilder.dataset.DataSetMetadata metadata, org.dashbuilder.dataset.def.SQLDataSetDef def, org.dashbuilder.dataset.filter.ColumnFilter filter, Select _query)
-
_createCondition
protected Condition _createCondition(org.dashbuilder.dataset.DataSetMetadata metadata, org.dashbuilder.dataset.def.SQLDataSetDef def, org.dashbuilder.dataset.filter.ColumnFilter filter)
-
_columnFromMetadata
protected String _columnFromMetadata(org.dashbuilder.dataset.DataSetMetadata metadata, String columnId)
-
_assertColumnExists
protected int _assertColumnExists(org.dashbuilder.dataset.DataSetMetadata metadata, String columnId)
-
-