net.sf.beanlib.hibernate
Class UnEnhancer

java.lang.Object
  extended by net.sf.beanlib.hibernate.UnEnhancer

public class UnEnhancer
extends Object

Author:
Joe D. Velopar, Hanson Char

Nested Class Summary
private static class UnEnhancer.LazyHolder
           
 
Field Summary
private static boolean defaultCheckCGLib
           
private static String JAVASSIST_INDEXOF
           
private static String JAVASSIST_STARTWITH
           
private static ThreadLocal<Boolean> perThreadCheckCGLib
           
 
Constructor Summary
private UnEnhancer()
           
 
Method Summary
static void clearThreadLocal()
          Clears the thread local; necessary only if setCheckCGLibForThisThread(boolean) was invoked.
static
<T> Class<T>
getActualClass(Object object)
           
static boolean isCheckCGLib()
          Returns true if CGLib enhanced classes are to be checked; false otherwise.
static boolean isDefaultCheckCGLib()
          Returns true if CGLib enhanced classes are to be checked by default; false otherwise.
private static boolean isJavassistEnhanced(Class<?> c)
          Returns true if the given class is found to be a javassist enhanced class; false otherwise.
static void setCheckCGLibForThisThread(boolean isCheckCGLib)
          Changes whether CGLib enhanced classes are to be checked or not for the current thread.
static void setDefaultCheckCGLib(boolean defaultCheckCGLib)
          Changes the default for whether CGLib enhanced classes are to be checked or not.
static
<T> Class<T>
unenhanceClass(Class<?> c)
          Digs out the pre CGLIB/Javassist enhanced class, if any.
static
<T> T
unenhanceObject(T object)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

perThreadCheckCGLib

private static ThreadLocal<Boolean> perThreadCheckCGLib

defaultCheckCGLib

private static volatile boolean defaultCheckCGLib

JAVASSIST_STARTWITH

private static final String JAVASSIST_STARTWITH
See Also:
Constant Field Values

JAVASSIST_INDEXOF

private static final String JAVASSIST_INDEXOF
See Also:
Constant Field Values
Constructor Detail

UnEnhancer

private UnEnhancer()
Method Detail

isJavassistEnhanced

private static boolean isJavassistEnhanced(Class<?> c)
Returns true if the given class is found to be a javassist enhanced class; false otherwise.


unenhanceClass

public static <T> Class<T> unenhanceClass(Class<?> c)
Digs out the pre CGLIB/Javassist enhanced class, if any.


getActualClass

public static <T> Class<T> getActualClass(Object object)

unenhanceObject

public static <T> T unenhanceObject(T object)

isDefaultCheckCGLib

public static boolean isDefaultCheckCGLib()
Returns true if CGLib enhanced classes are to be checked by default; false otherwise.


isCheckCGLib

public static boolean isCheckCGLib()
Returns true if CGLib enhanced classes are to be checked; false otherwise. Note the per thread setting via setCheckCGLibForThisThread(boolean) overrides the default setting, which can be changed via setDefaultCheckCGLib(boolean).


setDefaultCheckCGLib

public static void setDefaultCheckCGLib(boolean defaultCheckCGLib)
Changes the default for whether CGLib enhanced classes are to be checked or not.


setCheckCGLibForThisThread

public static void setCheckCGLibForThisThread(boolean isCheckCGLib)
Changes whether CGLib enhanced classes are to be checked or not for the current thread. Don't forget to invoke clearThreadLocal() subsequently in a finally clause. Otherwise, it is a memory leak.


clearThreadLocal

public static void clearThreadLocal()
Clears the thread local; necessary only if setCheckCGLibForThisThread(boolean) was invoked.

See Also:
setCheckCGLibForThisThread(boolean)