Class MondrianOlap4jConnection
- java.lang.Object
-
- mondrian.olap4j.MondrianOlap4jConnection
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,java.sql.Connection
,java.sql.Wrapper
,OlapConnection
,OlapWrapper
- Direct Known Subclasses:
FactoryJdbc4Plus.AbstractConnection
public abstract class MondrianOlap4jConnection extends java.lang.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) java.util.Map<Schema,MondrianOlap4jSchema>
schemaMap
Map from mondrian schema objects to olap4j schemas.
-
Constructor Summary
Constructors Constructor Description MondrianOlap4jConnection(Factory factory, MondrianOlap4jDriver driver, java.lang.String url, java.util.Properties info)
Creates an Olap4j connection to Mondrian.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) static boolean
acceptsURL(java.lang.String url)
void
clearWarnings()
void
close()
void
commit()
ScenarioImpl
createScenario()
OlapStatement
createStatement()
java.sql.Statement
createStatement(int resultSetType, int resultSetConcurrency)
java.sql.Statement
createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)
boolean
getAutoCommit()
java.util.List<java.lang.String>
getAvailableRoleNames()
java.lang.String
getCatalog()
java.lang.String
getDatabase()
int
getHoldability()
java.util.Locale
getLocale()
OlapDatabaseMetaData
getMetaData()
(package private) RolapConnection
getMondrianConnection()
(package private) RolapConnection
getMondrianConnection2()
Cop-out version ofgetMondrianConnection()
that doesn't throw a checked exception.Catalog
getOlapCatalog()
NamedList<Catalog>
getOlapCatalogs()
Database
getOlapDatabase()
NamedList<Database>
getOlapDatabases()
Schema
getOlapSchema()
NamedList<Schema>
getOlapSchemas()
MdxParserFactory
getParserFactory()
java.lang.String
getRoleName()
java.util.List<java.lang.String>
getRoleNames()
Returns a list of the current role names.Scenario
getScenario()
java.lang.String
getSchema()
int
getTransactionIsolation()
java.util.Map<java.lang.String,java.lang.Class<?>>
getTypeMap()
java.sql.SQLWarning
getWarnings()
boolean
isClosed()
boolean
isReadOnly()
boolean
isWrapperFor(java.lang.Class<?> iface)
java.lang.String
nativeSQL(java.lang.String sql)
java.sql.CallableStatement
prepareCall(java.lang.String sql)
java.sql.CallableStatement
prepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency)
java.sql.CallableStatement
prepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
PreparedOlapStatement
prepareOlapStatement(java.lang.String mdx)
java.sql.PreparedStatement
prepareStatement(java.lang.String sql)
java.sql.PreparedStatement
prepareStatement(java.lang.String sql, int autoGeneratedKeys)
java.sql.PreparedStatement
prepareStatement(java.lang.String sql, int[] columnIndexes)
java.sql.PreparedStatement
prepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency)
java.sql.PreparedStatement
prepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
java.sql.PreparedStatement
prepareStatement(java.lang.String sql, java.lang.String[] columnNames)
void
releaseSavepoint(java.sql.Savepoint savepoint)
void
rollback()
void
rollback(java.sql.Savepoint savepoint)
void
setAutoCommit(boolean autoCommit)
void
setCatalog(java.lang.String catalogName)
void
setDatabase(java.lang.String databaseName)
void
setHoldability(int holdability)
void
setLocale(java.util.Locale locale)
void
setPreferList(boolean preferList)
void
setReadOnly(boolean readOnly)
void
setRoleName(java.lang.String roleName)
void
setRoleNames(java.util.List<java.lang.String> roleNames)
Set the active role(s) in this connection based on a list of role names.java.sql.Savepoint
setSavepoint()
java.sql.Savepoint
setSavepoint(java.lang.String name)
void
setScenario(Scenario scenario)
void
setSchema(java.lang.String schemaName)
void
setTransactionIsolation(int level)
void
setTypeMap(java.util.Map<java.lang.String,java.lang.Class<?>> map)
(package private) NamedList<MondrianOlap4jMember>
toOlap4j(java.util.List<Member> memberList)
(package private) MondrianOlap4jCube
toOlap4j(Cube cube)
(package private) MondrianOlap4jNamedSet
toOlap4j(Cube cube, NamedSet namedSet)
(package private) MondrianOlap4jDimension
toOlap4j(Dimension dimension)
(package private) ParseTreeNode
toOlap4j(Exp exp)
(package private) MondrianOlap4jHierarchy
toOlap4j(Hierarchy hierarchy)
(package private) MondrianOlap4jLevel
toOlap4j(Level level)
(package private) MondrianOlap4jMember
toOlap4j(Member member)
(package private) SelectNode
toOlap4j(Query query)
(package private) MondrianOlap4jSchema
toOlap4j(Schema schema)
(package private) Type
toOlap4j(Type type)
(package private) Type[]
toOlap4j(Type[] mondrianTypes)
<T> T
unwrap(java.lang.Class<T> iface)
-
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 java.util.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, java.lang.String url, java.util.Properties info) throws java.sql.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:
java.sql.SQLException
- if there is an error
-
-
Method Detail
-
acceptsURL
static boolean acceptsURL(java.lang.String url)
-
createStatement
public OlapStatement createStatement()
- Specified by:
createStatement
in interfacejava.sql.Connection
- 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 java.sql.PreparedStatement prepareStatement(java.lang.String sql) throws java.sql.SQLException
- Specified by:
prepareStatement
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
prepareCall
public java.sql.CallableStatement prepareCall(java.lang.String sql) throws java.sql.SQLException
- Specified by:
prepareCall
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
nativeSQL
public java.lang.String nativeSQL(java.lang.String sql) throws java.sql.SQLException
- Specified by:
nativeSQL
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
setAutoCommit
public void setAutoCommit(boolean autoCommit) throws java.sql.SQLException
- Specified by:
setAutoCommit
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
getAutoCommit
public boolean getAutoCommit() throws java.sql.SQLException
- Specified by:
getAutoCommit
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
commit
public void commit() throws java.sql.SQLException
- Specified by:
commit
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
rollback
public void rollback() throws java.sql.SQLException
- Specified by:
rollback
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
close
public void close() throws java.sql.SQLException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
isClosed
public boolean isClosed() throws java.sql.SQLException
- Specified by:
isClosed
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
getMetaData
public OlapDatabaseMetaData getMetaData()
- Specified by:
getMetaData
in interfacejava.sql.Connection
- Specified by:
getMetaData
in interfaceOlapConnection
-
setReadOnly
public void setReadOnly(boolean readOnly) throws java.sql.SQLException
- Specified by:
setReadOnly
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
isReadOnly
public boolean isReadOnly() throws java.sql.SQLException
- Specified by:
isReadOnly
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
setSchema
public void setSchema(java.lang.String schemaName) throws OlapException
- Specified by:
setSchema
in interfacejava.sql.Connection
- Specified by:
setSchema
in interfaceOlapConnection
- Throws:
OlapException
-
getSchema
public java.lang.String getSchema() throws OlapException
- Specified by:
getSchema
in interfacejava.sql.Connection
- 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(java.lang.String catalogName) throws OlapException
- Specified by:
setCatalog
in interfacejava.sql.Connection
- Specified by:
setCatalog
in interfaceOlapConnection
- Throws:
OlapException
-
getCatalog
public java.lang.String getCatalog() throws OlapException
- Specified by:
getCatalog
in interfacejava.sql.Connection
- 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(java.lang.String databaseName) throws OlapException
- Specified by:
setDatabase
in interfaceOlapConnection
- Throws:
OlapException
-
getDatabase
public java.lang.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 java.sql.SQLException
- Specified by:
setTransactionIsolation
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
getTransactionIsolation
public int getTransactionIsolation() throws java.sql.SQLException
- Specified by:
getTransactionIsolation
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
getWarnings
public java.sql.SQLWarning getWarnings() throws java.sql.SQLException
- Specified by:
getWarnings
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
clearWarnings
public void clearWarnings() throws java.sql.SQLException
- Specified by:
clearWarnings
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
createStatement
public java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency) throws java.sql.SQLException
- Specified by:
createStatement
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
prepareStatement
public java.sql.PreparedStatement prepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency) throws java.sql.SQLException
- Specified by:
prepareStatement
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
prepareCall
public java.sql.CallableStatement prepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency) throws java.sql.SQLException
- Specified by:
prepareCall
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
getTypeMap
public java.util.Map<java.lang.String,java.lang.Class<?>> getTypeMap() throws java.sql.SQLException
- Specified by:
getTypeMap
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
setTypeMap
public void setTypeMap(java.util.Map<java.lang.String,java.lang.Class<?>> map) throws java.sql.SQLException
- Specified by:
setTypeMap
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
setHoldability
public void setHoldability(int holdability) throws java.sql.SQLException
- Specified by:
setHoldability
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
getHoldability
public int getHoldability() throws java.sql.SQLException
- Specified by:
getHoldability
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
setSavepoint
public java.sql.Savepoint setSavepoint() throws java.sql.SQLException
- Specified by:
setSavepoint
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
setSavepoint
public java.sql.Savepoint setSavepoint(java.lang.String name) throws java.sql.SQLException
- Specified by:
setSavepoint
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
rollback
public void rollback(java.sql.Savepoint savepoint) throws java.sql.SQLException
- Specified by:
rollback
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
releaseSavepoint
public void releaseSavepoint(java.sql.Savepoint savepoint) throws java.sql.SQLException
- Specified by:
releaseSavepoint
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
createStatement
public java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws java.sql.SQLException
- Specified by:
createStatement
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
prepareStatement
public java.sql.PreparedStatement prepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws java.sql.SQLException
- Specified by:
prepareStatement
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
prepareCall
public java.sql.CallableStatement prepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws java.sql.SQLException
- Specified by:
prepareCall
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
prepareStatement
public java.sql.PreparedStatement prepareStatement(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException
- Specified by:
prepareStatement
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
prepareStatement
public java.sql.PreparedStatement prepareStatement(java.lang.String sql, int[] columnIndexes) throws java.sql.SQLException
- Specified by:
prepareStatement
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
prepareStatement
public java.sql.PreparedStatement prepareStatement(java.lang.String sql, java.lang.String[] columnNames) throws java.sql.SQLException
- Specified by:
prepareStatement
in interfacejava.sql.Connection
- Throws:
java.sql.SQLException
-
unwrap
public <T> T unwrap(java.lang.Class<T> iface) throws java.sql.SQLException
- Specified by:
unwrap
in interfaceOlapWrapper
- Specified by:
unwrap
in interfacejava.sql.Wrapper
- Throws:
java.sql.SQLException
-
isWrapperFor
public boolean isWrapperFor(java.lang.Class<?> iface) throws java.sql.SQLException
- Specified by:
isWrapperFor
in interfaceOlapWrapper
- Specified by:
isWrapperFor
in interfacejava.sql.Wrapper
- Throws:
java.sql.SQLException
-
prepareOlapStatement
public PreparedOlapStatement prepareOlapStatement(java.lang.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(java.util.List<Member> memberList)
-
toOlap4j
MondrianOlap4jNamedSet toOlap4j(Cube cube, NamedSet namedSet)
-
toOlap4j
ParseTreeNode toOlap4j(Exp exp)
-
toOlap4j
SelectNode toOlap4j(Query query)
-
setLocale
public void setLocale(java.util.Locale locale)
- Specified by:
setLocale
in interfaceOlapConnection
-
getLocale
public java.util.Locale getLocale()
- Specified by:
getLocale
in interfaceOlapConnection
-
setRoleName
public void setRoleName(java.lang.String roleName) throws OlapException
- Specified by:
setRoleName
in interfaceOlapConnection
- Throws:
OlapException
-
setRoleNames
public void setRoleNames(java.util.List<java.lang.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 java.lang.String getRoleName()
- Specified by:
getRoleName
in interfaceOlapConnection
-
getRoleNames
public java.util.List<java.lang.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 java.util.List<java.lang.String> getAvailableRoleNames() throws OlapException
- Specified by:
getAvailableRoleNames
in interfaceOlapConnection
- Throws:
OlapException
-
setPreferList
public void setPreferList(boolean preferList)
-
getMondrianConnection2
RolapConnection getMondrianConnection2() throws java.lang.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:
java.lang.RuntimeException
- if connection is closed
-
getMondrianConnection
RolapConnection getMondrianConnection() throws OlapException
- Throws:
OlapException
-
-