Class MondrianOlap4jConnection
- java.lang.Object
-
- mondrian.olap4j.MondrianOlap4jConnection
-
- All Implemented Interfaces:
AutoCloseable
,Connection
,Wrapper
,OlapConnection
,OlapWrapper
- Direct Known Subclasses:
FactoryJdbc4Plus.AbstractConnection
public abstract class MondrianOlap4jConnection extends Object implements OlapConnection
Implementation ofOlapConnection
for the Mondrian OLAP engine.This class has sub-classes which implement JDBC 3.0 and JDBC 4.0 APIs; it is instantiated using
Factory.newConnection(MondrianOlap4jDriver, String, java.util.Properties)
.This class is public, to allow access to the
setRoleNames(java.util.List)
method before it is added to olap4j version 2.0. This may change without notice. Code should not rely on this class being public.- Since:
- May 23, 2007
- Author:
- jhyde
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
MondrianOlap4jConnection.Helper
Package-private helper class which encapsulates policies which are common throughout the driver.
-
Field Summary
Fields Modifier and Type Field Description (package private) MondrianOlap4jDriver
driver
(package private) Factory
factory
(package private) MondrianOlap4jConnection.Helper
helper
Handler for errors.(package private) MondrianServer
mondrianServer
(package private) boolean
preferList
(package private) Map<Schema,MondrianOlap4jSchema>
schemaMap
Map from mondrian schema objects to olap4j schemas.-
Fields inherited from interface java.sql.Connection
TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE
-
-
Constructor Summary
Constructors Constructor Description MondrianOlap4jConnection(Factory factory, MondrianOlap4jDriver driver, String url, Properties info)
Creates an Olap4j connection to Mondrian.
-
Method Summary
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.sql.Connection
abort, beginRequest, createArrayOf, createBlob, createClob, createNClob, createSQLXML, createStruct, endRequest, getClientInfo, getClientInfo, getNetworkTimeout, isValid, setClientInfo, setClientInfo, setNetworkTimeout, setShardingKey, setShardingKey, setShardingKeyIfValid, setShardingKeyIfValid
-
-
-
-
Field Detail
-
helper
final MondrianOlap4jConnection.Helper helper
Handler for errors.
-
schemaMap
final Map<Schema,MondrianOlap4jSchema> schemaMap
Map from mondrian schema objects to olap4j schemas.REVIEW: This assumes that a RolapSchema occurs at most once in a catalog. It is possible for a schema to be mapped more than once, with different names; the same RolapSchema object will be used.
-
factory
final Factory factory
-
driver
final MondrianOlap4jDriver driver
-
preferList
boolean preferList
-
mondrianServer
final MondrianServer mondrianServer
-
-
Constructor Detail
-
MondrianOlap4jConnection
MondrianOlap4jConnection(Factory factory, MondrianOlap4jDriver driver, String url, Properties info) throws SQLException
Creates an Olap4j connection to Mondrian.This method is intentionally package-protected. The public API uses the traditional JDBC
DriverManager
. SeeMondrianOlap4jDriver
for more details.- Parameters:
factory
- Factorydriver
- Driverurl
- Connect-string URLinfo
- Additional properties- Throws:
SQLException
- if there is an error
-
-
Method Detail
-
acceptsURL
static boolean acceptsURL(String url)
-
createStatement
public OlapStatement createStatement()
- Specified by:
createStatement
in interfaceConnection
- Specified by:
createStatement
in interfaceOlapConnection
-
createScenario
public ScenarioImpl createScenario() throws OlapException
- Specified by:
createScenario
in interfaceOlapConnection
- Throws:
OlapException
-
setScenario
public void setScenario(Scenario scenario) throws OlapException
- Specified by:
setScenario
in interfaceOlapConnection
- Throws:
OlapException
-
getScenario
public Scenario getScenario() throws OlapException
- Specified by:
getScenario
in interfaceOlapConnection
- Throws:
OlapException
-
prepareStatement
public PreparedStatement prepareStatement(String sql) throws SQLException
- Specified by:
prepareStatement
in interfaceConnection
- Throws:
SQLException
-
prepareCall
public CallableStatement prepareCall(String sql) throws SQLException
- Specified by:
prepareCall
in interfaceConnection
- Throws:
SQLException
-
nativeSQL
public String nativeSQL(String sql) throws SQLException
- Specified by:
nativeSQL
in interfaceConnection
- Throws:
SQLException
-
setAutoCommit
public void setAutoCommit(boolean autoCommit) throws SQLException
- Specified by:
setAutoCommit
in interfaceConnection
- Throws:
SQLException
-
getAutoCommit
public boolean getAutoCommit() throws SQLException
- Specified by:
getAutoCommit
in interfaceConnection
- Throws:
SQLException
-
commit
public void commit() throws SQLException
- Specified by:
commit
in interfaceConnection
- Throws:
SQLException
-
rollback
public void rollback() throws SQLException
- Specified by:
rollback
in interfaceConnection
- Throws:
SQLException
-
close
public void close() throws SQLException
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceConnection
- Throws:
SQLException
-
isClosed
public boolean isClosed() throws SQLException
- Specified by:
isClosed
in interfaceConnection
- Throws:
SQLException
-
getMetaData
public OlapDatabaseMetaData getMetaData()
- Specified by:
getMetaData
in interfaceConnection
- Specified by:
getMetaData
in interfaceOlapConnection
-
setReadOnly
public void setReadOnly(boolean readOnly) throws SQLException
- Specified by:
setReadOnly
in interfaceConnection
- Throws:
SQLException
-
isReadOnly
public boolean isReadOnly() throws SQLException
- Specified by:
isReadOnly
in interfaceConnection
- Throws:
SQLException
-
setSchema
public void setSchema(String schemaName) throws OlapException
- Specified by:
setSchema
in interfaceConnection
- Specified by:
setSchema
in interfaceOlapConnection
- Throws:
OlapException
-
getSchema
public String getSchema() throws OlapException
- Specified by:
getSchema
in interfaceConnection
- Specified by:
getSchema
in interfaceOlapConnection
- Throws:
OlapException
-
getOlapSchema
public Schema getOlapSchema() throws OlapException
- Specified by:
getOlapSchema
in interfaceOlapConnection
- Throws:
OlapException
-
getOlapSchemas
public NamedList<Schema> getOlapSchemas() throws OlapException
- Specified by:
getOlapSchemas
in interfaceOlapConnection
- Throws:
OlapException
-
setCatalog
public void setCatalog(String catalogName) throws OlapException
- Specified by:
setCatalog
in interfaceConnection
- Specified by:
setCatalog
in interfaceOlapConnection
- Throws:
OlapException
-
getCatalog
public String getCatalog() throws OlapException
- Specified by:
getCatalog
in interfaceConnection
- Specified by:
getCatalog
in interfaceOlapConnection
- Throws:
OlapException
-
getOlapCatalog
public Catalog getOlapCatalog() throws OlapException
- Specified by:
getOlapCatalog
in interfaceOlapConnection
- Throws:
OlapException
-
getOlapCatalogs
public NamedList<Catalog> getOlapCatalogs() throws OlapException
- Specified by:
getOlapCatalogs
in interfaceOlapConnection
- Throws:
OlapException
-
setDatabase
public void setDatabase(String databaseName) throws OlapException
- Specified by:
setDatabase
in interfaceOlapConnection
- Throws:
OlapException
-
getDatabase
public String getDatabase() throws OlapException
- Specified by:
getDatabase
in interfaceOlapConnection
- Throws:
OlapException
-
getOlapDatabase
public Database getOlapDatabase() throws OlapException
- Specified by:
getOlapDatabase
in interfaceOlapConnection
- Throws:
OlapException
-
getOlapDatabases
public NamedList<Database> getOlapDatabases() throws OlapException
- Specified by:
getOlapDatabases
in interfaceOlapConnection
- Throws:
OlapException
-
setTransactionIsolation
public void setTransactionIsolation(int level) throws SQLException
- Specified by:
setTransactionIsolation
in interfaceConnection
- Throws:
SQLException
-
getTransactionIsolation
public int getTransactionIsolation() throws SQLException
- Specified by:
getTransactionIsolation
in interfaceConnection
- Throws:
SQLException
-
getWarnings
public SQLWarning getWarnings() throws SQLException
- Specified by:
getWarnings
in interfaceConnection
- Throws:
SQLException
-
clearWarnings
public void clearWarnings() throws SQLException
- Specified by:
clearWarnings
in interfaceConnection
- Throws:
SQLException
-
createStatement
public Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException
- Specified by:
createStatement
in interfaceConnection
- Throws:
SQLException
-
prepareStatement
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
- Specified by:
prepareStatement
in interfaceConnection
- Throws:
SQLException
-
prepareCall
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
- Specified by:
prepareCall
in interfaceConnection
- Throws:
SQLException
-
getTypeMap
public Map<String,Class<?>> getTypeMap() throws SQLException
- Specified by:
getTypeMap
in interfaceConnection
- Throws:
SQLException
-
setTypeMap
public void setTypeMap(Map<String,Class<?>> map) throws SQLException
- Specified by:
setTypeMap
in interfaceConnection
- Throws:
SQLException
-
setHoldability
public void setHoldability(int holdability) throws SQLException
- Specified by:
setHoldability
in interfaceConnection
- Throws:
SQLException
-
getHoldability
public int getHoldability() throws SQLException
- Specified by:
getHoldability
in interfaceConnection
- Throws:
SQLException
-
setSavepoint
public Savepoint setSavepoint() throws SQLException
- Specified by:
setSavepoint
in interfaceConnection
- Throws:
SQLException
-
setSavepoint
public Savepoint setSavepoint(String name) throws SQLException
- Specified by:
setSavepoint
in interfaceConnection
- Throws:
SQLException
-
rollback
public void rollback(Savepoint savepoint) throws SQLException
- Specified by:
rollback
in interfaceConnection
- Throws:
SQLException
-
releaseSavepoint
public void releaseSavepoint(Savepoint savepoint) throws SQLException
- Specified by:
releaseSavepoint
in interfaceConnection
- Throws:
SQLException
-
createStatement
public Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
- Specified by:
createStatement
in interfaceConnection
- Throws:
SQLException
-
prepareStatement
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
- Specified by:
prepareStatement
in interfaceConnection
- Throws:
SQLException
-
prepareCall
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
- Specified by:
prepareCall
in interfaceConnection
- Throws:
SQLException
-
prepareStatement
public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException
- Specified by:
prepareStatement
in interfaceConnection
- Throws:
SQLException
-
prepareStatement
public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException
- Specified by:
prepareStatement
in interfaceConnection
- Throws:
SQLException
-
prepareStatement
public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException
- Specified by:
prepareStatement
in interfaceConnection
- Throws:
SQLException
-
unwrap
public <T> T unwrap(Class<T> iface) throws SQLException
- Specified by:
unwrap
in interfaceOlapWrapper
- Specified by:
unwrap
in interfaceWrapper
- Throws:
SQLException
-
isWrapperFor
public boolean isWrapperFor(Class<?> iface) throws SQLException
- Specified by:
isWrapperFor
in interfaceOlapWrapper
- Specified by:
isWrapperFor
in interfaceWrapper
- Throws:
SQLException
-
prepareOlapStatement
public PreparedOlapStatement prepareOlapStatement(String mdx) throws OlapException
- Specified by:
prepareOlapStatement
in interfaceOlapConnection
- Throws:
OlapException
-
getParserFactory
public MdxParserFactory getParserFactory()
- Specified by:
getParserFactory
in interfaceOlapConnection
-
toOlap4j
MondrianOlap4jCube toOlap4j(Cube cube)
-
toOlap4j
MondrianOlap4jDimension toOlap4j(Dimension dimension)
-
toOlap4j
MondrianOlap4jSchema toOlap4j(Schema schema)
-
toOlap4j
MondrianOlap4jMember toOlap4j(Member member)
-
toOlap4j
MondrianOlap4jLevel toOlap4j(Level level)
-
toOlap4j
MondrianOlap4jHierarchy toOlap4j(Hierarchy hierarchy)
-
toOlap4j
NamedList<MondrianOlap4jMember> toOlap4j(List<Member> memberList)
-
toOlap4j
MondrianOlap4jNamedSet toOlap4j(Cube cube, NamedSet namedSet)
-
toOlap4j
ParseTreeNode toOlap4j(Exp exp)
-
toOlap4j
SelectNode toOlap4j(Query query)
-
setLocale
public void setLocale(Locale locale)
- Specified by:
setLocale
in interfaceOlapConnection
-
getLocale
public Locale getLocale()
- Specified by:
getLocale
in interfaceOlapConnection
-
setRoleName
public void setRoleName(String roleName) throws OlapException
- Specified by:
setRoleName
in interfaceOlapConnection
- Throws:
OlapException
-
setRoleNames
public void setRoleNames(List<String> roleNames) throws OlapException
Set the active role(s) in this connection based on a list of role names.
The list may be not be empty. Each role name must be not-null and the name of a valid role for the current user.
This method is not part of the olap4j-1.x API. It may be included in olap4j-2.0. If you want to call this method on a
OlapConnection
, useunwrap(java.lang.Class<T>)
to get the underlying Mondrian connection.- Parameters:
roleNames
- List of role names- Throws:
OlapException
- See Also:
getRoleNames()
-
getRoleName
public String getRoleName()
- Specified by:
getRoleName
in interfaceOlapConnection
-
getRoleNames
public List<String> getRoleNames()
Returns a list of the current role names.This method is not part of the olap4j-1.x API. It may be included in olap4j-2.0. If you want to call this method on a
OlapConnection
, useunwrap(java.lang.Class<T>)
to get the underlying Mondrian connection.- Returns:
- List of the current role names
-
getAvailableRoleNames
public List<String> getAvailableRoleNames() throws OlapException
- Specified by:
getAvailableRoleNames
in interfaceOlapConnection
- Throws:
OlapException
-
setPreferList
public void setPreferList(boolean preferList)
-
getMondrianConnection2
RolapConnection getMondrianConnection2() throws RuntimeException
Cop-out version ofgetMondrianConnection()
that doesn't throw a checked exception. For those situations where the olap4j API doesn't declare 'throws OlapException', but we need an open connection anyway. UsegetMondrianConnection()
where possible.- Returns:
- Mondrian connection
- Throws:
RuntimeException
- if connection is closed
-
getMondrianConnection
RolapConnection getMondrianConnection() throws OlapException
- Throws:
OlapException
-
-