mondrian.olap4j
Class MondrianOlap4jConnection

java.lang.Object
  extended by mondrian.olap4j.MondrianOlap4jConnection
All Implemented Interfaces:
Connection, Wrapper, OlapConnection, OlapWrapper
Direct Known Subclasses:
FactoryJdbc4Plus.AbstractConnection

abstract class MondrianOlap4jConnection
extends Object
implements OlapConnection

Implementation of OlapConnection 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).

Since:
May 23, 2007
Author:
jhyde

Nested Class Summary
(package private) static class MondrianOlap4jConnection.Helper
          Package-private helper class which encapsulates policies which are common throughout the driver.
 
Field Summary
(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
MondrianOlap4jConnection(Factory factory, MondrianOlap4jDriver driver, String url, Properties info)
          Creates an Olap4j connection to Mondrian.
 
Method Summary
(package private) static boolean acceptsURL(String url)
           
 void clearWarnings()
           
 void close()
           
 void commit()
           
 ScenarioImpl createScenario()
           
 OlapStatement createStatement()
           
 Statement createStatement(int resultSetType, int resultSetConcurrency)
           
 Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)
           
 boolean getAutoCommit()
           
 List<String> getAvailableRoleNames()
           
 String getCatalog()
           
 String getDatabase()
           
 int getHoldability()
           
 Locale getLocale()
           
 OlapDatabaseMetaData getMetaData()
           
(package private)  RolapConnection getMondrianConnection()
           
(package private)  RolapConnection getMondrianConnection2()
          Cop-out version of getMondrianConnection() that doesn't throw a checked exception.
 Catalog getOlapCatalog()
           
 NamedList<Catalog> getOlapCatalogs()
           
 Database getOlapDatabase()
           
 NamedList<Database> getOlapDatabases()
           
 Schema getOlapSchema()
           
 NamedList<Schema> getOlapSchemas()
           
 MdxParserFactory getParserFactory()
           
 String getRoleName()
           
 Scenario getScenario()
           
 String getSchema()
           
 int getTransactionIsolation()
           
 Map<String,Class<?>> getTypeMap()
           
 SQLWarning getWarnings()
           
 boolean isClosed()
           
 boolean isReadOnly()
           
 boolean isWrapperFor(Class<?> iface)
           
 String nativeSQL(String sql)
           
 CallableStatement prepareCall(String sql)
           
 CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency)
           
 CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
           
 PreparedOlapStatement prepareOlapStatement(String mdx)
           
 PreparedStatement prepareStatement(String sql)
           
 PreparedStatement prepareStatement(String sql, int autoGeneratedKeys)
           
 PreparedStatement prepareStatement(String sql, int[] columnIndexes)
           
 PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency)
           
 PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
           
 PreparedStatement prepareStatement(String sql, String[] columnNames)
           
 void releaseSavepoint(Savepoint savepoint)
           
 void rollback()
           
 void rollback(Savepoint savepoint)
           
 void setAutoCommit(boolean autoCommit)
           
 void setCatalog(String catalogName)
           
 void setDatabase(String databaseName)
           
 void setHoldability(int holdability)
           
 void setLocale(Locale locale)
           
 void setPreferList(boolean preferList)
           
 void setReadOnly(boolean readOnly)
           
 void setRoleName(String roleName)
           
 Savepoint setSavepoint()
           
 Savepoint setSavepoint(String name)
           
 void setScenario(Scenario scenario)
           
 void setSchema(String schemaName)
           
 void setTransactionIsolation(int level)
           
 void setTypeMap(Map<String,Class<?>> map)
           
(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)  NamedList<MondrianOlap4jMember> toOlap4j(List<Member> memberList)
           
(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(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
createArrayOf, createBlob, createClob, createNClob, createSQLXML, createStruct, getClientInfo, getClientInfo, isValid, setClientInfo, setClientInfo
 

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. See MondrianOlap4jDriver for more details.

Parameters:
factory - Factory
driver - Driver
url - Connect-string URL
info - 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 interface Connection
Specified by:
createStatement in interface OlapConnection

createScenario

public ScenarioImpl createScenario()
                            throws OlapException
Specified by:
createScenario in interface OlapConnection
Throws:
OlapException

setScenario

public void setScenario(Scenario scenario)
                 throws OlapException
Specified by:
setScenario in interface OlapConnection
Throws:
OlapException

getScenario

public Scenario getScenario()
                     throws OlapException
Specified by:
getScenario in interface OlapConnection
Throws:
OlapException

prepareStatement

public PreparedStatement prepareStatement(String sql)
                                   throws SQLException
Specified by:
prepareStatement in interface Connection
Throws:
SQLException

prepareCall

public CallableStatement prepareCall(String sql)
                              throws SQLException
Specified by:
prepareCall in interface Connection
Throws:
SQLException

nativeSQL

public String nativeSQL(String sql)
                 throws SQLException
Specified by:
nativeSQL in interface Connection
Throws:
SQLException

setAutoCommit

public void setAutoCommit(boolean autoCommit)
                   throws SQLException
Specified by:
setAutoCommit in interface Connection
Throws:
SQLException

getAutoCommit

public boolean getAutoCommit()
                      throws SQLException
Specified by:
getAutoCommit in interface Connection
Throws:
SQLException

commit

public void commit()
            throws SQLException
Specified by:
commit in interface Connection
Throws:
SQLException

rollback

public void rollback()
              throws SQLException
Specified by:
rollback in interface Connection
Throws:
SQLException

close

public void close()
           throws SQLException
Specified by:
close in interface Connection
Throws:
SQLException

isClosed

public boolean isClosed()
                 throws SQLException
Specified by:
isClosed in interface Connection
Throws:
SQLException

getMetaData

public OlapDatabaseMetaData getMetaData()
Specified by:
getMetaData in interface Connection
Specified by:
getMetaData in interface OlapConnection

setReadOnly

public void setReadOnly(boolean readOnly)
                 throws SQLException
Specified by:
setReadOnly in interface Connection
Throws:
SQLException

isReadOnly

public boolean isReadOnly()
                   throws SQLException
Specified by:
isReadOnly in interface Connection
Throws:
SQLException

setSchema

public void setSchema(String schemaName)
               throws OlapException
Specified by:
setSchema in interface OlapConnection
Throws:
OlapException

getSchema

public String getSchema()
                 throws OlapException
Specified by:
getSchema in interface OlapConnection
Throws:
OlapException

getOlapSchema

public Schema getOlapSchema()
                     throws OlapException
Specified by:
getOlapSchema in interface OlapConnection
Throws:
OlapException

getOlapSchemas

public NamedList<Schema> getOlapSchemas()
                                 throws OlapException
Specified by:
getOlapSchemas in interface OlapConnection
Throws:
OlapException

setCatalog

public void setCatalog(String catalogName)
                throws OlapException
Specified by:
setCatalog in interface Connection
Specified by:
setCatalog in interface OlapConnection
Throws:
OlapException

getCatalog

public String getCatalog()
                  throws OlapException
Specified by:
getCatalog in interface Connection
Specified by:
getCatalog in interface OlapConnection
Throws:
OlapException

getOlapCatalog

public Catalog getOlapCatalog()
                       throws OlapException
Specified by:
getOlapCatalog in interface OlapConnection
Throws:
OlapException

getOlapCatalogs

public NamedList<Catalog> getOlapCatalogs()
                                   throws OlapException
Specified by:
getOlapCatalogs in interface OlapConnection
Throws:
OlapException

setDatabase

public void setDatabase(String databaseName)
                 throws OlapException
Specified by:
setDatabase in interface OlapConnection
Throws:
OlapException

getDatabase

public String getDatabase()
                   throws OlapException
Specified by:
getDatabase in interface OlapConnection
Throws:
OlapException

getOlapDatabase

public Database getOlapDatabase()
                         throws OlapException
Specified by:
getOlapDatabase in interface OlapConnection
Throws:
OlapException

getOlapDatabases

public NamedList<Database> getOlapDatabases()
                                     throws OlapException
Specified by:
getOlapDatabases in interface OlapConnection
Throws:
OlapException

setTransactionIsolation

public void setTransactionIsolation(int level)
                             throws SQLException
Specified by:
setTransactionIsolation in interface Connection
Throws:
SQLException

getTransactionIsolation

public int getTransactionIsolation()
                            throws SQLException
Specified by:
getTransactionIsolation in interface Connection
Throws:
SQLException

getWarnings

public SQLWarning getWarnings()
                       throws SQLException
Specified by:
getWarnings in interface Connection
Throws:
SQLException

clearWarnings

public void clearWarnings()
                   throws SQLException
Specified by:
clearWarnings in interface Connection
Throws:
SQLException

createStatement

public Statement createStatement(int resultSetType,
                                 int resultSetConcurrency)
                          throws SQLException
Specified by:
createStatement in interface Connection
Throws:
SQLException

prepareStatement

public PreparedStatement prepareStatement(String sql,
                                          int resultSetType,
                                          int resultSetConcurrency)
                                   throws SQLException
Specified by:
prepareStatement in interface Connection
Throws:
SQLException

prepareCall

public CallableStatement prepareCall(String sql,
                                     int resultSetType,
                                     int resultSetConcurrency)
                              throws SQLException
Specified by:
prepareCall in interface Connection
Throws:
SQLException

getTypeMap

public Map<String,Class<?>> getTypeMap()
                                throws SQLException
Specified by:
getTypeMap in interface Connection
Throws:
SQLException

setTypeMap

public void setTypeMap(Map<String,Class<?>> map)
                throws SQLException
Specified by:
setTypeMap in interface Connection
Throws:
SQLException

setHoldability

public void setHoldability(int holdability)
                    throws SQLException
Specified by:
setHoldability in interface Connection
Throws:
SQLException

getHoldability

public int getHoldability()
                   throws SQLException
Specified by:
getHoldability in interface Connection
Throws:
SQLException

setSavepoint

public Savepoint setSavepoint()
                       throws SQLException
Specified by:
setSavepoint in interface Connection
Throws:
SQLException

setSavepoint

public Savepoint setSavepoint(String name)
                       throws SQLException
Specified by:
setSavepoint in interface Connection
Throws:
SQLException

rollback

public void rollback(Savepoint savepoint)
              throws SQLException
Specified by:
rollback in interface Connection
Throws:
SQLException

releaseSavepoint

public void releaseSavepoint(Savepoint savepoint)
                      throws SQLException
Specified by:
releaseSavepoint in interface Connection
Throws:
SQLException

createStatement

public Statement createStatement(int resultSetType,
                                 int resultSetConcurrency,
                                 int resultSetHoldability)
                          throws SQLException
Specified by:
createStatement in interface Connection
Throws:
SQLException

prepareStatement

public PreparedStatement prepareStatement(String sql,
                                          int resultSetType,
                                          int resultSetConcurrency,
                                          int resultSetHoldability)
                                   throws SQLException
Specified by:
prepareStatement in interface Connection
Throws:
SQLException

prepareCall

public CallableStatement prepareCall(String sql,
                                     int resultSetType,
                                     int resultSetConcurrency,
                                     int resultSetHoldability)
                              throws SQLException
Specified by:
prepareCall in interface Connection
Throws:
SQLException

prepareStatement

public PreparedStatement prepareStatement(String sql,
                                          int autoGeneratedKeys)
                                   throws SQLException
Specified by:
prepareStatement in interface Connection
Throws:
SQLException

prepareStatement

public PreparedStatement prepareStatement(String sql,
                                          int[] columnIndexes)
                                   throws SQLException
Specified by:
prepareStatement in interface Connection
Throws:
SQLException

prepareStatement

public PreparedStatement prepareStatement(String sql,
                                          String[] columnNames)
                                   throws SQLException
Specified by:
prepareStatement in interface Connection
Throws:
SQLException

unwrap

public <T> T unwrap(Class<T> iface)
         throws SQLException
Specified by:
unwrap in interface Wrapper
Specified by:
unwrap in interface OlapWrapper
Throws:
SQLException

isWrapperFor

public boolean isWrapperFor(Class<?> iface)
                     throws SQLException
Specified by:
isWrapperFor in interface Wrapper
Specified by:
isWrapperFor in interface OlapWrapper
Throws:
SQLException

prepareOlapStatement

public PreparedOlapStatement prepareOlapStatement(String mdx)
                                           throws OlapException
Specified by:
prepareOlapStatement in interface OlapConnection
Throws:
OlapException

getParserFactory

public MdxParserFactory getParserFactory()
Specified by:
getParserFactory in interface OlapConnection

toOlap4j

MondrianOlap4jCube toOlap4j(Cube cube)

toOlap4j

MondrianOlap4jDimension toOlap4j(Dimension dimension)

toOlap4j

MondrianOlap4jSchema toOlap4j(Schema schema)

toOlap4j

Type toOlap4j(Type type)

toOlap4j

MondrianOlap4jMember toOlap4j(Member member)

toOlap4j

MondrianOlap4jLevel toOlap4j(Level level)

toOlap4j

MondrianOlap4jHierarchy toOlap4j(Hierarchy hierarchy)

toOlap4j

Type[] toOlap4j(Type[] mondrianTypes)

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 interface OlapConnection

getLocale

public Locale getLocale()
Specified by:
getLocale in interface OlapConnection

setRoleName

public void setRoleName(String roleName)
                 throws OlapException
Specified by:
setRoleName in interface OlapConnection
Throws:
OlapException

getRoleName

public String getRoleName()
Specified by:
getRoleName in interface OlapConnection

getAvailableRoleNames

public List<String> getAvailableRoleNames()
                                   throws OlapException
Specified by:
getAvailableRoleNames in interface OlapConnection
Throws:
OlapException

setPreferList

public void setPreferList(boolean preferList)

getMondrianConnection2

RolapConnection getMondrianConnection2()
                                 throws RuntimeException
Cop-out version of getMondrianConnection() 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. Use getMondrianConnection() where possible.

Returns:
Mondrian connection
Throws:
RuntimeException - if connection is closed

getMondrianConnection

RolapConnection getMondrianConnection()
                                throws OlapException
Throws:
OlapException

Get Mondrian at SourceForge.net. Fast, secure and free Open Source software downloads