Methods Summary |
---|
private void | checkListeners()
BeanInfo beanInfo = null;
try {
beanInfo = Introspector.getBeanInfo( getClass(), Object.class );
internalCheckListeners( beanInfo );
}
catch( IntrospectionException t ) {
throw new HibernateException( "Unable to validate listener config", t );
}
finally {
if ( beanInfo != null ) {
// release the jdk internal caches everytime to ensure this
// plays nicely with destroyable class-loaders
Introspector.flushFromCaches( getClass() );
}
}
|
private java.lang.Object | copyListeners()
Object copy = null;
BeanInfo beanInfo = null;
try {
beanInfo = Introspector.getBeanInfo( getClass(), Object.class );
internalCheckListeners( beanInfo );
copy = getClass().newInstance();
PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
for ( int i = 0, max = pds.length; i < max; i++ ) {
try {
pds[i].getWriteMethod().invoke(
copy,
new Object[] {
pds[i].getReadMethod().invoke( this, READER_METHOD_ARGS )
}
);
}
catch( Throwable t ) {
throw new HibernateException( "Unable copy copy listener [" + pds[i].getName() + "]" );
}
}
}
catch( Exception t ) {
throw new HibernateException( "Unable to copy listeners", t );
}
finally {
if ( beanInfo != null ) {
// release the jdk internal caches everytime to ensure this
// plays nicely with destroyable class-loaders
Introspector.flushFromCaches( getClass() );
}
}
return copy;
|
private void | internalCheckListeners(java.beans.BeanInfo beanInfo)
PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
try {
for ( int i = 0, max = pds.length; i < max; i++ ) {
final Object listener = pds[i].getReadMethod().invoke( this, READER_METHOD_ARGS );
if ( listener == null ) {
throw new HibernateException( "Listener [" + pds[i].getName() + "] was null" );
}
if ( listener.getClass().isArray() ) {
Object[] listenerArray = (Object[]) listener;
int length = listenerArray.length;
for ( int index = 0 ; index < length ; index++ ) {
if ( listenerArray[index] == null ) {
throw new HibernateException( "Listener in [" + pds[i].getName() + "] was null" );
}
}
}
}
}
catch( HibernateException e ) {
throw e;
}
catch( Throwable t ) {
throw new HibernateException( "Unable to validate listener config" );
}
|
public java.lang.Object | shallowCopy()Essentially performs a shallow copy of this SessionEventListenerConfig
instance; meaning the SessionEventListenerConfig itself is cloned, but
the individual listeners are not cloned.
return AccessController.doPrivileged(
new PrivilegedAction() {
public Object run() {
return copyListeners();
}
}
);
|
public void | validate()Checks to ensure the SessionEventListenerConfig is fully
configured (basically, that none of the listeners is null).
AccessController.doPrivileged(
new PrivilegedAction() {
public Object run() {
checkListeners();
return null;
}
}
);
|