Class AbstractMDXDataFactory

  • All Implemented Interfaces:
    Serializable, Cloneable, org.pentaho.reporting.engine.classic.core.DataFactory, org.pentaho.reporting.engine.classic.core.DataFactoryDesignTimeSupport, org.pentaho.reporting.engine.classic.core.DataFactoryMetaProvider
    Direct Known Subclasses:
    AbstractNamedMDXDataFactory, SimpleBandedMDXDataFactory, SimpleDenormalizedMDXDataFactory, SimpleLegacyBandedMDXDataFactory

    public abstract class AbstractMDXDataFactory
    extends org.pentaho.reporting.engine.classic.core.AbstractDataFactory
    This data-factory operates in Legacy-Mode providing a preprocessed view on the mondrian result. It behaves exactly as known from the Pentaho-Platform and the Hitachi Vantara-Report-Designer. This mode of operation breaks the structure of the resulting table as soon as new rows are returned by the server.
    Author:
    Thomas Morgner
    See Also:
    Serialized Form
    • Constructor Detail

      • AbstractMDXDataFactory

        public AbstractMDXDataFactory()
    • Method Detail

      • setMondrianConnectionProvider

        public void setMondrianConnectionProvider​(MondrianConnectionProvider mondrianConnectionProvider)
      • getDynamicSchemaProcessor

        public String getDynamicSchemaProcessor()
      • setDynamicSchemaProcessor

        public void setDynamicSchemaProcessor​(String dynamicSchemaProcessor)
      • isMembersOnAxisSorted

        public boolean isMembersOnAxisSorted()
      • setMembersOnAxisSorted

        public void setMembersOnAxisSorted​(boolean membersOnAxisSorted)
      • isUseSchemaPool

        public Boolean isUseSchemaPool()
      • setUseSchemaPool

        public void setUseSchemaPool​(Boolean useSchemaPool)
      • isUseContentChecksum

        public Boolean isUseContentChecksum()
      • setUseContentChecksum

        public void setUseContentChecksum​(Boolean useContentChecksum)
      • getRole

        public String getRole()
      • setRole

        public void setRole​(String role)
      • getRoleField

        public String getRoleField()
      • setRoleField

        public void setRoleField​(String roleField)
      • setCubeFileProvider

        public void setCubeFileProvider​(CubeFileProvider cubeFileProvider)
      • setDataSourceProvider

        public void setDataSourceProvider​(DataSourceProvider dataSourceProvider)
      • getJdbcUser

        public String getJdbcUser()
      • setJdbcUser

        public void setJdbcUser​(String jdbcUser)
      • getJdbcPassword

        public String getJdbcPassword()
      • setJdbcPassword

        public void setJdbcPassword​(String jdbcPassword)
      • getJdbcUserField

        public String getJdbcUserField()
      • setJdbcUserField

        public void setJdbcUserField​(String jdbcUserField)
      • getJdbcPasswordField

        public String getJdbcPasswordField()
      • setJdbcPasswordField

        public void setJdbcPasswordField​(String jdbcPasswordField)
      • getBaseConnectionProperties

        public Properties getBaseConnectionProperties()
      • setBaseConnectionProperties

        public void setBaseConnectionProperties​(Properties connectionProperties)
        Sets base connection properties. These will be overriden by any programatically set properties.
        Parameters:
        connectionProperties -
      • isQueryExecutable

        public boolean isQueryExecutable​(String query,
                                         org.pentaho.reporting.engine.classic.core.DataRow parameters)
        Checks whether the query would be executable by this datafactory. This performs a rough check, not a full query.
        Parameters:
        query -
        parameters -
        Returns:
      • close

        public void close()
        Closes the data factory and frees all resources held by this instance.
      • clearCache

        public void clearCache​(org.pentaho.reporting.engine.classic.core.DataRow parameters,
                               boolean onlyCurrentSchema)
                        throws org.pentaho.reporting.engine.classic.core.ReportDataFactoryException
        Access the cache control on a per-datasource level. Setting "onlyCurrentSchema" to true will selectively purge the mondrian cache for the specifc schema only.
        Parameters:
        parameters -
        onlyCurrentSchema -
        Throws:
        org.pentaho.reporting.engine.classic.core.ReportDataFactoryException
      • performQuery

        public mondrian.olap.Result performQuery​(String rawMdxQuery,
                                                 org.pentaho.reporting.engine.classic.core.DataRow parameters)
                                          throws org.pentaho.reporting.engine.classic.core.ReportDataFactoryException
        Queries a datasource. The string 'query' defines the name of the query. The Parameterset given here may contain more data than actually needed for the query.

        The parameter-dataset may change between two calls, do not assume anything, and do not hold references to the parameter-dataset or the position of the columns in the dataset.

        Parameters:
        rawMdxQuery - the mdx Query string.
        parameters - the parameters for the query
        Returns:
        the result of the query as table model.
        Throws:
        org.pentaho.reporting.engine.classic.core.ReportDataFactoryException - if an error occured while performing the query.
      • yuckyInternalMondrianLookup

        protected mondrian.olap.Member yuckyInternalMondrianLookup​(mondrian.olap.Query query,
                                                                   mondrian.olap.Hierarchy hierarchy,
                                                                   String parameter)
      • extractQueryLimit

        protected int extractQueryLimit​(org.pentaho.reporting.engine.classic.core.DataRow parameters)
      • clone

        public AbstractMDXDataFactory clone()
        Specified by:
        clone in interface org.pentaho.reporting.engine.classic.core.DataFactory
        Overrides:
        clone in class org.pentaho.reporting.engine.classic.core.AbstractDataFactory
      • getDesignTimeName

        public String getDesignTimeName()
      • setDesignTimeName

        public void setDesignTimeName​(String designTimeName)
      • getQueryNames

        public String[] getQueryNames()
        Returns all known query-names. A data-factory may accept more than the query-names returned here.
        Returns:
        the known query names.
      • cancelRunningQuery

        public void cancelRunningQuery()
        Attempts to cancel the query process that is generating the data for this data factory. If it is not possible to cancel the query, this call should be ignored.
        Specified by:
        cancelRunningQuery in interface org.pentaho.reporting.engine.classic.core.DataFactory
        Overrides:
        cancelRunningQuery in class org.pentaho.reporting.engine.classic.core.AbstractDataFactory
      • quote

        protected static String quote​(String original)
      • translateQuery

        protected String translateQuery​(String query)
      • computedQuery

        protected String computedQuery​(String queryName,
                                       org.pentaho.reporting.engine.classic.core.DataRow parameters)
                                throws org.pentaho.reporting.engine.classic.core.ReportDataFactoryException
        Throws:
        org.pentaho.reporting.engine.classic.core.ReportDataFactoryException
      • getQueryHash

        public ArrayList<Object> getQueryHash​(String queryRaw,
                                              org.pentaho.reporting.engine.classic.core.DataRow parameter)
                                       throws org.pentaho.reporting.engine.classic.core.ReportDataFactoryException
        Specified by:
        getQueryHash in interface org.pentaho.reporting.engine.classic.core.DataFactoryMetaProvider
        Overrides:
        getQueryHash in class org.pentaho.reporting.engine.classic.core.AbstractDataFactory
        Throws:
        org.pentaho.reporting.engine.classic.core.ReportDataFactoryException
      • getReferencedFields

        public String[] getReferencedFields​(String queryName,
                                            org.pentaho.reporting.engine.classic.core.DataRow parameters)
                                     throws org.pentaho.reporting.engine.classic.core.ReportDataFactoryException
        Specified by:
        getReferencedFields in interface org.pentaho.reporting.engine.classic.core.DataFactoryMetaProvider
        Overrides:
        getReferencedFields in class org.pentaho.reporting.engine.classic.core.AbstractDataFactory
        Throws:
        org.pentaho.reporting.engine.classic.core.ReportDataFactoryException
      • initialize

        public void initialize​(org.pentaho.reporting.engine.classic.core.DataFactoryContext dataFactoryContext)
                        throws org.pentaho.reporting.engine.classic.core.ReportDataFactoryException
        Specified by:
        initialize in interface org.pentaho.reporting.engine.classic.core.DataFactory
        Overrides:
        initialize in class org.pentaho.reporting.engine.classic.core.AbstractDataFactory
        Throws:
        org.pentaho.reporting.engine.classic.core.ReportDataFactoryException