gov.nih.nci.caarray.util
Class CaArrayHibernateHelperUnsupportedOperationImpl

java.lang.Object
  extended by gov.nih.nci.caarray.util.CaArrayHibernateHelperUnsupportedOperationImpl
All Implemented Interfaces:
CaArrayHibernateHelper

public class CaArrayHibernateHelperUnsupportedOperationImpl
extends java.lang.Object
implements CaArrayHibernateHelper

Throws UnsupportedOperationException for all CaArrayHibernateHelper functions. Inherit from this class if you need to implement CaArrayHibernateHelper in a limited context, such as a test, where not all functions are needed. Override only the functions needed and rely on an exception being thrown if any unimplemented function is called unexpectedly.

Author:
jscott

Constructor Summary
CaArrayHibernateHelperUnsupportedOperationImpl()
           
 
Method Summary
 org.hibernate.Transaction beginTransaction()
          Starts a transaction on the current Hibernate session.
 java.lang.String buildInClauses(java.util.List<? extends java.io.Serializable> items, java.lang.String columnName, java.util.Map<java.lang.String,java.util.List<? extends java.io.Serializable>> blocks)
          Break up a list of items into separate in clauses, to avoid limits imposed by databases or by Hibernate bug http://opensource.atlassian.com/projects/hibernate/browse/HHH-2166.
 void disableFilters()
          Disable security filters on the current session.
 java.lang.Object doUnfiltered(UnfilteredCallback uc)
          Do something in an unfiltered session.
 org.hibernate.cfg.Configuration getConfiguration()
          
 org.hibernate.Session getCurrentSession()
          Returns the current Hibernate session.
 java.sql.Connection getNewConnection()
          
 org.hibernate.SessionFactory getSessionFactory()
          
 void openAndBindSession()
          Open a hibernate session and bind it as the current session via org.hibernate.context.ManagedSessionContext#bind(org.hibernate.classic.Session).
 void rollbackTransaction(org.hibernate.Transaction tx)
          Checks if the transaction is active and then rolls it back.
 void setFiltersEnabled(boolean enable)
          Set whether security filters should be enabled for the next session returned from getCurrentSession().
 void setQueryParams(java.util.Map<java.lang.String,java.lang.Object> params, org.hibernate.Query q)
          Sets the named parameters in the given query from the given map.
 void unbindAndCleanupSession()
          Close the current session and unbind it via ManagedSessionContext#unbind(SessionFactory).
 java.lang.Object unwrapProxy(java.lang.Object entity)
          If entity is a hibernate proxy, return the actual object it proxies, otherwise return the entity itself.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CaArrayHibernateHelperUnsupportedOperationImpl

public CaArrayHibernateHelperUnsupportedOperationImpl()
Method Detail

beginTransaction

public org.hibernate.Transaction beginTransaction()
Starts a transaction on the current Hibernate session. Intended for use in unit tests - DAO / Service layer logic should rely on container-managed transactions

Specified by:
beginTransaction in interface CaArrayHibernateHelper
Returns:
a Hibernate session.

buildInClauses

public java.lang.String buildInClauses(java.util.List<? extends java.io.Serializable> items,
                                       java.lang.String columnName,
                                       java.util.Map<java.lang.String,java.util.List<? extends java.io.Serializable>> blocks)
Break up a list of items into separate in clauses, to avoid limits imposed by databases or by Hibernate bug http://opensource.atlassian.com/projects/hibernate/browse/HHH-2166.

Specified by:
buildInClauses in interface CaArrayHibernateHelper
Parameters:
items - list of items to include in the in clause
columnName - name of column to match against the list
blocks - empty Map of HQL param name to param list of values to be set in the HQL query - it will be populated by the method
Returns:
full HQL "in" clause, of the form: " columnName in (:block1) or ... or columnName in (:blockN)"

disableFilters

public void disableFilters()
Disable security filters on the current session.

Specified by:
disableFilters in interface CaArrayHibernateHelper

doUnfiltered

public java.lang.Object doUnfiltered(UnfilteredCallback uc)
Do something in an unfiltered session.

Specified by:
doUnfiltered in interface CaArrayHibernateHelper
Parameters:
uc - callback class
Returns:
the result

getConfiguration

public org.hibernate.cfg.Configuration getConfiguration()

Specified by:
getConfiguration in interface CaArrayHibernateHelper
Returns:
the configuration

getCurrentSession

public org.hibernate.Session getCurrentSession()
Returns the current Hibernate session. Note that this returns a special session that can be used only in the context of a transaction. (Assuming that the hibernate properties are set to use a JTA or JDBC transaction factory.)

Specified by:
getCurrentSession in interface CaArrayHibernateHelper
Returns:
a Hibernate session.
See Also:
HibernateHelper#getCurrentSession()

getNewConnection

public java.sql.Connection getNewConnection()
                                     throws java.sql.SQLException

Specified by:
getNewConnection in interface CaArrayHibernateHelper
Returns:
a new Connection from the data source underlying the hibernate session factory
Throws:
java.sql.SQLException - if an error occurs obtaining the connection

getSessionFactory

public org.hibernate.SessionFactory getSessionFactory()

Specified by:
getSessionFactory in interface CaArrayHibernateHelper
Returns:
the sessionFactory

openAndBindSession

public void openAndBindSession()
Open a hibernate session and bind it as the current session via org.hibernate.context.ManagedSessionContext#bind(org.hibernate.classic.Session). The hibernate property "hibernate.current_session_context_class" must be set to "managed" for this to have effect This method should be called from within an Interceptor or Filter type class that is setting up the scope of the Session. This method should then call CaArrayHibernateHelper.unbindAndCleanupSession() when the scope of the Session is expired. Clears the SecurityInterceptor.

Specified by:
openAndBindSession in interface CaArrayHibernateHelper
See Also:
HibernateHelper#openAndBindSession()

rollbackTransaction

public void rollbackTransaction(org.hibernate.Transaction tx)
Checks if the transaction is active and then rolls it back.

Specified by:
rollbackTransaction in interface CaArrayHibernateHelper
Parameters:
tx - the Transaction to roll back.

setFiltersEnabled

public void setFiltersEnabled(boolean enable)
Set whether security filters should be enabled for the next session returned from getCurrentSession(). This should generally only be called via test code.

Specified by:
setFiltersEnabled in interface CaArrayHibernateHelper
Parameters:
enable - whether the filters should be enabled.

setQueryParams

public void setQueryParams(java.util.Map<java.lang.String,java.lang.Object> params,
                           org.hibernate.Query q)
Sets the named parameters in the given query from the given map.

Specified by:
setQueryParams in interface CaArrayHibernateHelper
Parameters:
params - map of parameter name -> value(s) for that named parameter.
q - the query

unbindAndCleanupSession

public void unbindAndCleanupSession()
Close the current session and unbind it via ManagedSessionContext#unbind(SessionFactory). The hibernate property "hibernate.current_session_context_class" must be set to "managed" for this to have effect. This method should be called from within an Interceptor or Filter type class that is setting up the scope of the Session, when this scope is about to expire.

Specified by:
unbindAndCleanupSession in interface CaArrayHibernateHelper

unwrapProxy

public java.lang.Object unwrapProxy(java.lang.Object entity)
If entity is a hibernate proxy, return the actual object it proxies, otherwise return the entity itself.

Specified by:
unwrapProxy in interface CaArrayHibernateHelper
Parameters:
entity - the object to unwrap (if it is a proxy)
Returns:
the unwrapped proxy, or original object.