Class AbstractMDXDataFactory
- java.lang.Object
-
- org.pentaho.reporting.engine.classic.core.AbstractDataFactory
-
- org.pentaho.reporting.engine.classic.extensions.datasources.mondrian.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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
AbstractMDXDataFactory.MDXCompiler
The message compiler maps all named references into numeric references.
-
Constructor Summary
Constructors Constructor Description AbstractMDXDataFactory()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cancelRunningQuery()
Attempts to cancel the query process that is generating the data for this data factory.void
clearCache(org.pentaho.reporting.engine.classic.core.DataRow parameters, boolean onlyCurrentSchema)
Access the cache control on a per-datasource level.AbstractMDXDataFactory
clone()
void
close()
Closes the data factory and frees all resources held by this instance.protected String
computedQuery(String queryName, org.pentaho.reporting.engine.classic.core.DataRow parameters)
protected int
extractQueryLimit(org.pentaho.reporting.engine.classic.core.DataRow parameters)
Properties
getBaseConnectionProperties()
CubeFileProvider
getCubeFileProvider()
DataSourceProvider
getDataSourceProvider()
String
getDesignTimeName()
String
getDynamicSchemaProcessor()
String
getJdbcPassword()
String
getJdbcPasswordField()
String
getJdbcUser()
String
getJdbcUserField()
MondrianConnectionProvider
getMondrianConnectionProvider()
ArrayList<Object>
getQueryHash(String queryRaw, org.pentaho.reporting.engine.classic.core.DataRow parameter)
String[]
getQueryNames()
Returns all known query-names.String[]
getReferencedFields(String queryName, org.pentaho.reporting.engine.classic.core.DataRow parameters)
String
getRole()
String
getRoleField()
void
initialize(org.pentaho.reporting.engine.classic.core.DataFactoryContext dataFactoryContext)
boolean
isMembersOnAxisSorted()
boolean
isQueryExecutable(String query, org.pentaho.reporting.engine.classic.core.DataRow parameters)
Checks whether the query would be executable by this datafactory.Boolean
isUseContentChecksum()
Boolean
isUseSchemaPool()
mondrian.olap.Result
performQuery(String rawMdxQuery, org.pentaho.reporting.engine.classic.core.DataRow parameters)
Queries a datasource.protected static String
quote(String original)
void
setBaseConnectionProperties(Properties connectionProperties)
Sets base connection properties.void
setCubeFileProvider(CubeFileProvider cubeFileProvider)
void
setDataSourceProvider(DataSourceProvider dataSourceProvider)
void
setDesignTimeName(String designTimeName)
void
setDynamicSchemaProcessor(String dynamicSchemaProcessor)
void
setJdbcPassword(String jdbcPassword)
void
setJdbcPasswordField(String jdbcPasswordField)
void
setJdbcUser(String jdbcUser)
void
setJdbcUserField(String jdbcUserField)
void
setMembersOnAxisSorted(boolean membersOnAxisSorted)
void
setMondrianConnectionProvider(MondrianConnectionProvider mondrianConnectionProvider)
void
setRole(String role)
void
setRoleField(String roleField)
void
setUseContentChecksum(Boolean useContentChecksum)
void
setUseSchemaPool(Boolean useSchemaPool)
protected String
translateQuery(String query)
protected mondrian.olap.Member
yuckyInternalMondrianLookup(mondrian.olap.Query query, mondrian.olap.Hierarchy hierarchy, String parameter)
-
Methods inherited from class org.pentaho.reporting.engine.classic.core.AbstractDataFactory
calculateQueryLimit, calculateQueryTimeOut, derive, getConfiguration, getContextKey, getDataFactoryContext, getDisplayConnectionName, getLocale, getMetaData, getResourceBundleFactory, getResourceManager, queryDesignTimeStructure
-
-
-
-
Method Detail
-
getMondrianConnectionProvider
public MondrianConnectionProvider getMondrianConnectionProvider()
-
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)
-
getCubeFileProvider
public CubeFileProvider getCubeFileProvider()
-
setCubeFileProvider
public void setCubeFileProvider(CubeFileProvider cubeFileProvider)
-
getDataSourceProvider
public DataSourceProvider getDataSourceProvider()
-
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 interfaceorg.pentaho.reporting.engine.classic.core.DataFactory
- Overrides:
clone
in classorg.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 interfaceorg.pentaho.reporting.engine.classic.core.DataFactory
- Overrides:
cancelRunningQuery
in classorg.pentaho.reporting.engine.classic.core.AbstractDataFactory
-
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 interfaceorg.pentaho.reporting.engine.classic.core.DataFactoryMetaProvider
- Overrides:
getQueryHash
in classorg.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 interfaceorg.pentaho.reporting.engine.classic.core.DataFactoryMetaProvider
- Overrides:
getReferencedFields
in classorg.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 interfaceorg.pentaho.reporting.engine.classic.core.DataFactory
- Overrides:
initialize
in classorg.pentaho.reporting.engine.classic.core.AbstractDataFactory
- Throws:
org.pentaho.reporting.engine.classic.core.ReportDataFactoryException
-
-