Class 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

    • Field Detail

      • log

        protected org.slf4j.Logger log
      • staticDataSetProvider

        protected org.dashbuilder.dataprovider.StaticDataSetProvider staticDataSetProvider
      • intervalBuilderLocator

        protected org.dashbuilder.dataset.engine.group.IntervalBuilderLocator intervalBuilderLocator
      • intervalBuilderDynamicDate

        protected org.dashbuilder.dataset.IntervalBuilderDynamicDate intervalBuilderDynamicDate
      • opEngine

        protected org.dashbuilder.dataset.DataSetOpEngine opEngine
    • 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

      • getStaticDataSetProvider

        public org.dashbuilder.dataprovider.StaticDataSetProvider getStaticDataSetProvider()
      • setStaticDataSetProvider

        public void setStaticDataSetProvider​(org.dashbuilder.dataprovider.StaticDataSetProvider staticDataSetProvider)
      • 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:
        getType in interface org.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:
        lookupDataSet in interface org.dashbuilder.dataprovider.DataSetProvider
        Throws:
        Exception
      • isDataSetOutdated

        public boolean isDataSetOutdated​(org.dashbuilder.dataset.def.DataSetDef def)
        Specified by:
        isDataSetOutdated in interface org.dashbuilder.dataprovider.DataSetProvider
      • getDataSetMetadata

        public org.dashbuilder.dataset.DataSetMetadata getDataSetMetadata​(org.dashbuilder.dataset.def.DataSetDef def)
                                                                   throws Exception
        Specified by:
        getDataSetMetadata in interface org.dashbuilder.dataprovider.DataSetProvider
        Throws:
        Exception
      • onDataSetDefStale

        public void onDataSetDefStale​(org.dashbuilder.dataset.def.DataSetDef def)
        Specified by:
        onDataSetDefStale in interface org.dashbuilder.dataset.def.DataSetDefRegistryListener
      • onDataSetDefModified

        public void onDataSetDefModified​(org.dashbuilder.dataset.def.DataSetDef olDef,
                                         org.dashbuilder.dataset.def.DataSetDef newDef)
        Specified by:
        onDataSetDefModified in interface org.dashbuilder.dataset.def.DataSetDefRegistryListener
      • onDataSetDefRemoved

        public void onDataSetDefRemoved​(org.dashbuilder.dataset.def.DataSetDef oldDef)
        Specified by:
        onDataSetDefRemoved in interface org.dashbuilder.dataset.def.DataSetDefRegistryListener
      • onDataSetDefRegistered

        public void onDataSetDefRegistered​(org.dashbuilder.dataset.def.DataSetDef newDef)
        Specified by:
        onDataSetDefRegistered in interface org.dashbuilder.dataset.def.DataSetDefRegistryListener
      • _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)