package mit.roles.ui ;

public class RolesComponent
extends mit.swing.xJComponent
implements	mit.comm.event.DisplayResultRaiser
	,	mit.rmi.event.InvokeMethodRaiser
	,	mit.event.Listener
{
	private static final Class[] noargsTypes = new Class[ 0 ] ;
	private static final Object[] noargs = new Object[ 0 ] ;
	private static final String rolesname = "troles" ;

	private mit.event.RaiserAdapter raiserAdapter = new mit.event.RaiserAdapter( this ) ;
	public mit.event.RaiserAdapter getRaiserAdapter() { return this.raiserAdapter ; }
	public void setRaiserAdapter( mit.event.RaiserAdapter raiserAdapter ) { this.raiserAdapter = raiserAdapter ; }

	private mit.event.ListenerAdapter listenerAdapter = new mit.event.ListenerAdapter( this ) ;
	public mit.event.ListenerAdapter getListenerAdapter() { return this.listenerAdapter ; }
	public void setListenerAdapter( mit.event.ListenerAdapter listenerAdapter ) { this.listenerAdapter = listenerAdapter ; }

	private mit.roles.Authorization authorization = null ;
	private mit.roles.Person person = null ;
	private mit.roles.Function function = null ;
	private mit.roles.Qualifier qualifier = null ;
	private mit.sql.Connection connection = null ;

	// Roles ui elements
	mit.swing.xJTabbedPane rolesUI = new mit.swing.xJTabbedPane() ;
	mit.roles.ui.authorization.Panel authorizationPanel = new mit.roles.ui.authorization.Panel() ;
	mit.roles.ui.function.Panel functionPanel = new mit.roles.ui.function.Panel() ;
	mit.roles.ui.person.Panel personPanel = new mit.roles.ui.person.Panel() ;
	mit.roles.ui.qualifier.Panel qualifierPanel = new mit.roles.ui.qualifier.Panel() ;

	// Roles ui action elements
	private mit.roles.ui.action.AddButton addButton = new mit.roles.ui.action.AddButton() ;
	private mit.roles.ui.action.DeleteButton deleteButton = new mit.roles.ui.action.DeleteButton() ;
	private mit.roles.ui.action.UpdateButton updateButton = new mit.roles.ui.action.UpdateButton() ;
	private mit.roles.ui.action.LinkButton LinkButton = new mit.roles.ui.action.LinkButton() ;
	private mit.roles.ui.action.MoveLinkButton moveLinkButton = new mit.roles.ui.action.MoveLinkButton() ;
	private mit.roles.ui.action.UnLinkButton unlinkButton = new mit.roles.ui.action.UnLinkButton() ;
	private mit.roles.ui.action.SetAsDefaultButton setAsDefaultButton = new mit.roles.ui.action.SetAsDefaultButton() ;
	private mit.util.ui.ClearButton clearButton = new mit.util.ui.ClearButton() ;
	private mit.util.ui.ExitButton exitButton = new mit.util.ui.ExitButton() ;

	// authorization ui elements
	private mit.roles.ui.authorization.DoFunction doFunction = new mit.roles.ui.authorization.DoFunction() ;
	private mit.roles.ui.authorization.Grant grant = new mit.roles.ui.authorization.Grant() ;
	private mit.roles.ui.authorization.EffectiveDate effectiveDate = new mit.roles.ui.authorization.EffectiveDate() ;
	private mit.roles.ui.authorization.ExpirationDate expirationDate = new mit.roles.ui.authorization.ExpirationDate() ;

	// function ui elements
	private mit.roles.ui.function.FunctionName functionName = new mit.roles.ui.function.FunctionName() ;
	private mit.roles.ui.function.FunctionDescription functionDescription = new mit.roles.ui.function.FunctionDescription() ;
	private mit.roles.ui.function.FunctionCategory functionCategory = new mit.roles.ui.function.FunctionCategory() ;

	// qualifier ui elements
	private mit.roles.ui.qualifier.QualifierCode qualifierCode = new mit.roles.ui.qualifier.QualifierCode() ;
	private mit.roles.ui.qualifier.QualifierType qualifierType = new mit.roles.ui.qualifier.QualifierType() ;
	private mit.roles.ui.qualifier.QualifierDescription qualifierDescription = new mit.roles.ui.qualifier.QualifierDescription() ;

	// sql action elements
	private mit.sql.ui.CommitButton commitButton = new mit.sql.ui.CommitButton() ;
	private mit.sql.ui.RollbackButton rollbackButton = new mit.sql.ui.RollbackButton() ;

	private java.io.Serializable object = null ;
	public java.io.Serializable getObject() { return this.object ; }
	public void setObject( java.io.Serializable object ) { this.object = object ; }

	private String methodName = null ;
	public String getMethodName() { return this.methodName ; }
	public void setMethodName( String methodName ) { this.methodName = methodName ; }

	private String database = null ;
	public String getDatabase() { return this.database ; }
	public void setDatabase( String database ) { this.database = database ; }

	private String username = null ;
	public String getUsername() { return this.username ; }
	public void setUsername( String username ) { this.username = username ; }

	private String password = null ;
	private String getPassword() { return this.password ; }
	public void setPassword( String password ) { this.password = password ; }

	private Class[] argTypes = null ;
	public Class[] getArgTypes() { return this.argTypes ; }
	public void setArgTypes( Class[] argTypes ) { this.argTypes = argTypes ; }

	private Object[] args = null ;
	public Object[] getArgs() { return this.args ; }
	public void setArgs( Object[] args ) { this.args = args ; }

	private String status = null ;
	public String getStatus() { return this.status ; }
	public void setStatus( String status ) { this.status = status ; }

	private String statusMessage = null ;
	public String getStatusMessage() { return this.statusMessage ; }
	public void setStatusMessage( String statusMessage ) { this.statusMessage = statusMessage ; }

	private javax.swing.JComponent resultsComponent = null ;
	public javax.swing.JComponent getResultsComponent() { return this.resultsComponent ; }
	public void setResultsComponent( javax.swing.JComponent resultsComponent ) { this.resultsComponent = resultsComponent ; }

	private java.util.Vector criteriaComponents = null ;
	public java.util.Vector getCriteriaComponents() { return this.criteriaComponents ; }
	public void setCriteriaComponents( java.util.Vector criteriaComponents ) { this.criteriaComponents = criteriaComponents ; }

	private mit.swing.xJButton[] actionButtons = null ;
	public mit.swing.xJButton[] getActionButtons() { return this.actionButtons ; }
	public void setActionButtons( mit.swing.xJButton[] actionButtons ) { this.actionButtons = actionButtons ; }

	public void eventRaised( mit.event.Event e )
	{
		try
		{
			if( e instanceof mit.roles.event.AddEvent )
			{
				HandleAddEvent( ( mit.roles.event.AddEvent ) e ) ;
			}
			else if( e instanceof mit.roles.event.DeleteEvent )
			{
				HandleDeleteEvent( ( mit.roles.event.DeleteEvent ) e ) ;
			}
			else if( e instanceof mit.roles.event.UpdateEvent )
			{
				HandleUpdateEvent( ( mit.roles.event.UpdateEvent ) e ) ;
			}
			else if( e instanceof mit.roles.event.LinkEvent )
			{
				HandleLinkEvent( ( mit.roles.event.LinkEvent ) e ) ;
			}
			else if( e instanceof mit.roles.event.UnLinkEvent )
			{
				HandleUnLinkEvent( ( mit.roles.event.UnLinkEvent ) e ) ;
			}
			else if( e instanceof mit.roles.event.MoveLinkEvent )
			{
				HandleMoveLinkEvent( ( mit.roles.event.MoveLinkEvent ) e ) ;
			}
			else if( e instanceof mit.roles.event.GetConnectionEvent )
			{
				HandleGetConnectionEvent( ( mit.roles.event.GetConnectionEvent ) e ) ;
			}
			else if( e instanceof mit.roles.event.FunctionNameEvent )
			{
				HandleFunctionNameEvent( ( mit.roles.event.FunctionNameEvent ) e ) ;
			}
			else if( e instanceof mit.roles.event.FunctionDescriptionEvent )
			{
				HandleFunctionDescriptionEvent( ( mit.roles.event.FunctionDescriptionEvent ) e ) ;
			}
			else if( e instanceof mit.roles.event.FunctionCategoryEvent )
			{
				HandleFunctionCategoryEvent( ( mit.roles.event.FunctionCategoryEvent ) e ) ;
			}
			else if( e instanceof mit.roles.event.QualifierTypeEvent )
			{
				HandleQualifierTypeEvent( ( mit.roles.event.QualifierTypeEvent ) e ) ;
			}
			else if( e instanceof mit.rmi.event.MethodResponseEvent )
			{
				HandleMethodResponseEvent( ( mit.rmi.event.MethodResponseEvent ) e ) ;
			}
			else if( e instanceof mit.sql.event.DatabaseNameEvent )
			{
				HandleDatabaseNameEvent( ( mit.sql.event.DatabaseNameEvent ) e ) ;
			}
			else if( e instanceof mit.sql.event.UsernameEvent )
			{
				HandleUsernameEvent( ( mit.sql.event.UsernameEvent ) e ) ;
			}
			else if( e instanceof mit.sql.event.PasswordEvent )
			{
				HandlePasswordEvent( ( mit.sql.event.PasswordEvent ) e ) ;
			}
			else if( e instanceof mit.sql.event.AutoCommitEvent )
			{
				HandleAutoCommitEvent( ( mit.sql.event.AutoCommitEvent ) e ) ;
			}
			else if( e instanceof mit.sql.event.CommitEvent )
			{
				HandleCommitEvent( ( mit.sql.event.CommitEvent ) e ) ;
			}
			else if( e instanceof mit.sql.event.RollbackEvent )
			{
				HandleRollbackEvent( ( mit.sql.event.RollbackEvent ) e ) ;
			}
		}
		catch( Throwable ex )
		{
			ex.printStackTrace() ;
		}
	}

	private void HandleAddEvent( mit.roles.event.AddEvent e )
	{
	}

	private void HandleDeleteEvent( mit.roles.event.DeleteEvent e )
	{
	}

	private void HandleUpdateEvent( mit.roles.event.UpdateEvent e )
throws Exception
	{
throw new Exception( "HandleUpdateEvent needs to set the args" ) ;
	}

	private void HandleAddAuthorizationEvent()
	{
		setObject( mit.roles.Authorization.class ) ;
		setMethodName( "create" ) ;
		Class[] argsTypes = new Class[ 8 ] ;
		argsTypes[ 0 ] = java.lang.String.class ;
		argsTypes[ 1 ] = java.lang.String.class ;
		argsTypes[ 2 ] = java.lang.String.class ;
		argsTypes[ 3 ] = java.lang.Boolean.class ;
		argsTypes[ 4 ] = java.lang.Boolean.class ;
		argsTypes[ 5 ] = java.lang.Boolean.class ;
		argsTypes[ 6 ] = java.lang.String.class ;
		argsTypes[ 7 ] = java.lang.String.class ;
		Object[] args = new Object[ 7 ] ;
		args[ 0 ] = person.getKerberosName() ;
		args[ 1 ] = functionName.getFunctionName() ;
		args[ 2 ] = qualifierCode.getQualifierCode() ;
		args[ 3 ] = new Boolean( doFunction.getDoFunction() ) ;
		args[ 4 ] = new Boolean( grant.getGrant() ) ;
		args[ 6 ] = effectiveDate.getEffectiveDate() ;
		args[ 7 ] = expirationDate.getExpirationDate() ;
		setArgTypes( argsTypes ) ;
		setArgs( args ) ;
		( new mit.rmi.event.InvokeMethodEvent( this ) ).raise() ;
	}

	private void HandleDeleteAuthorizationEvent()
	{
		setObject( authorization ) ;
		setMethodName( "delete" ) ;
		setArgTypes( noargsTypes ) ;
		setArgs( noargs ) ;
		( new mit.rmi.event.InvokeMethodEvent( this ) ).raise() ;
	}

	private void HandleUpdateAuthorizationEvent()
throws Exception
	{
throw new Exception( "HandleUpdateAuthorizationEvent needs to set the args" ) ;
/*
		setObject( authorization ) ;
		setMethodName( "update" ) ;		
		setArgTypes( noargsTypes ) ;
		setArgs( noargs ) ;
		( new mit.rmi.event.InvokeMethodEvent( this ) ).raise() ;
*/
	}

	private void HandleAddQualifierEvent()
	{
		setObject( qualifier ) ;
		setMethodName( "create" ) ;
		setArgTypes( noargsTypes ) ;
		setArgs( noargs ) ;
		( new mit.rmi.event.InvokeMethodEvent( this ) ).raise() ;
	}

	private void HandleDeleteQualifierEvent()
	{
		setObject( qualifier ) ;
		setMethodName( "delete" ) ;
		setArgTypes( noargsTypes ) ;
		setArgs( noargs ) ;
		( new mit.rmi.event.InvokeMethodEvent( this ) ).raise() ;
	}

	private void HandleUpdateQualifierEvent()
	{
		setObject( qualifier ) ;
		setMethodName( "update" ) ;		
		setArgTypes( noargsTypes ) ;
		setArgs( noargs ) ;
		( new mit.rmi.event.InvokeMethodEvent( this ) ).raise() ;
	}

	private void HandleLinkEvent( mit.roles.event.LinkEvent e )
	{
	}

	private void HandleUnLinkEvent( mit.roles.event.UnLinkEvent e )
	{
	}

	private void HandleMoveLinkEvent( mit.roles.event.MoveLinkEvent e )
	{
	}

	private void HandleLinkQualifierEvent()
	{
		setObject( qualifier ) ;
		setMethodName( "link" ) ;
		setArgTypes( noargsTypes ) ;
		setArgs( noargs ) ;
		( new mit.rmi.event.InvokeMethodEvent( this ) ).raise() ;
	}

	private void HandleUnLinkQualifierEvent()
	{
		setObject( qualifier ) ;
		setMethodName( "unlink" ) ;
		setArgTypes( noargsTypes ) ;
		setArgs( noargs ) ;
		( new mit.rmi.event.InvokeMethodEvent( this ) ).raise() ;
	}

	private void HandleMoveQualifierLinkEvent()
	{
		setObject( qualifier ) ;
		setMethodName( "movelink" ) ;		
		setArgTypes( noargsTypes ) ;
		setArgs( noargs ) ;
		( new mit.rmi.event.InvokeMethodEvent( this ) ).raise() ;
	}

	private void HandleAddFunctionEvent()
	{
		setObject( mit.roles.Function.class ) ;
		setMethodName( "create" ) ;
		Class[] argsTypes = new Class[ 4 ] ;
		argsTypes[ 0 ] = java.lang.String.class ;
		argsTypes[ 1 ] = java.lang.String.class ;
		argsTypes[ 2 ] = java.lang.String.class ;
		argsTypes[ 3 ] = java.lang.String.class ;
		Object[] args = new Object[ 4 ] ;
		args[ 0 ] = functionName.getFunctionName() ;
		args[ 1 ] = functionDescription.getFunctionDescription() ;
		args[ 2 ] = functionCategory.getFunctionCategory() ;
		args[ 3 ] = qualifierType.getText() ;
		setArgTypes( argsTypes ) ;
		setArgs( args ) ;
		( new mit.rmi.event.InvokeMethodEvent( this ) ).raise() ;
	}

	private void HandleDeleteFunctionEvent()
	{
		if( null != function )
		{
			setObject( function ) ;
			setMethodName( "delete" ) ;
			setArgTypes( noargsTypes ) ;
			setArgs( noargs ) ;
			( new mit.rmi.event.InvokeMethodEvent( this ) ).raise() ;
		}
	}

	private void HandleUpdateFunctionEvent()
	{
		if( null != function )
		{
			setObject( function ) ;
			setMethodName( "update" ) ;		
			Class[] argsTypes = new Class[ 4 ] ;
			argsTypes[ 0 ] = java.lang.String.class ;
			argsTypes[ 1 ] = java.lang.String.class ;
			argsTypes[ 2 ] = java.lang.String.class ;
			argsTypes[ 3 ] = java.lang.String.class ;
			Object[] args = new Object[ 4 ] ;
			args[ 0 ] = functionName.getFunctionName().equals( function.getName() ) ? null : functionName.getFunctionName() ;
			args[ 1 ] = functionDescription.getFunctionDescription().equals( function.getDescription() ) ? null : functionDescription.getFunctionDescription() ;
			args[ 2 ] = functionCategory.getFunctionCategory().equals( function.getFunctionCategory() ) ? null : functionCategory.getFunctionCategory() ;
			args[ 3 ] = qualifierType.getText().equals( function.getQualifierType() ) ? null : qualifierType.getText() ;
			setArgTypes( argsTypes ) ;
			setArgs( args ) ;
			( new mit.rmi.event.InvokeMethodEvent( this ) ).raise() ;
		}
	}

	private void HandleDatabaseNameEvent( mit.sql.event.DatabaseNameEvent e )
	{
		mit.sql.event.DatabaseNameRaiser r = ( mit.sql.event.DatabaseNameRaiser ) e.getSource() ;
		setDatabase( r.getDatabaseName() ) ;
	}

	private void HandleUsernameEvent( mit.sql.event.UsernameEvent e )
	{
		mit.sql.event.UsernameRaiser r = ( mit.sql.event.UsernameRaiser ) e.getSource() ;
		setUsername( r.getUsername() ) ;
	}

	private void HandlePasswordEvent( mit.sql.event.PasswordEvent e )
	{
		mit.sql.event.PasswordRaiser r = ( mit.sql.event.PasswordRaiser ) e.getSource() ;
		setPassword( new String( r.getPassword() ) ) ;
	}

	private void HandleAutoCommitEvent( mit.sql.event.AutoCommitEvent e )
	{
		mit.sql.event.AutoCommitRaiser r = ( mit.sql.event.AutoCommitRaiser ) e.getSource() ;
		connection.setAutoCommit( new Boolean( r.getAutoCommit() ) ) ;
	}

	private void HandleCommitEvent( mit.sql.event.CommitEvent e )
	{
		setObject( connection ) ;
		setMethodName( "commit" ) ;
		setArgTypes( noargsTypes ) ;
		setArgs( noargs ) ;
		( new mit.rmi.event.InvokeMethodEvent( this ) ).raise() ;
	}

	private void HandleRollbackEvent( mit.sql.event.RollbackEvent e )
	{
		setObject( connection ) ;
		setMethodName( "rollback" ) ;
		setArgTypes( noargsTypes ) ;
		setArgs( noargs ) ;
		( new mit.rmi.event.InvokeMethodEvent( this ) ).raise() ;
	}

	private synchronized void HandleMethodResponseEvent( mit.rmi.event.MethodResponseEvent e )
	{
		mit.rmi.event.MethodResponseRaiser r = ( mit.rmi.event.MethodResponseRaiser ) e.getSource() ;
		Object methodResponse = r.getMethodResponse() ;
		String methodName = r.getMethodName() ;
		if( "create".equals( methodName ) )
		{
			HandleCreateResponse( methodResponse ) ;
		}
		else if( "delete".equals( methodName ) )
		{
			HandleDeleteResponse() ;
		}
		else if( "update".equals( methodName ) )
		{
			HandleUpdateResponse() ;
		}
		else if( "getDatabaseConnection".equals( methodName ) )
		{
			setStatus( "Got database connection: " + methodResponse.toString() ) ;
			mit.swing.xJButton[] buttons = new mit.swing.xJButton[ 2 ] ;
			buttons[ 0 ] = setAsDefaultButton ;
			buttons[ 1 ] = exitButton ;
			setActionButtons( buttons ) ;
			rolesUI.addTab( "Authorization" , authorizationPanel ) ;
			rolesUI.addTab( "Function" , functionPanel ) ;
			rolesUI.addTab( "Qualifier" , qualifierPanel ) ;
			rolesUI.addTab( "Person" , personPanel ) ;
			java.util.Vector rolesUIV = new java.util.Vector() ;
			rolesUIV.addElement( rolesUI ) ;
			setCriteriaComponents( rolesUIV ) ;
			( new mit.comm.event.DisplayResultEvent( this ) ).raise() ;
		}
	}

	private void HandleCreateResponse( Object response )
	{
		if( response != null )
		{
			setResultsComponent( null ) ;
			if( response instanceof mit.roles.Function )
			{
				this.function = ( mit.roles.Function ) response ;
				setStatus( "function ID: " + function.getId() ) ;
				setStatusMessage( "" ) ;
				if( null != this.function.getModifiedBy() )
				{
					setStatusMessage( "Modified by: " + this.function.getModifiedBy() ) ;
				}
				if( null != this.function.getModifiedDate() )
				{
					setStatusMessage( getStatusMessage() + "\nModified on: " + this.function.getModifiedDate() ) ;
				}
			}
			else if( response instanceof mit.sql.Connection )
			{
				this.connection = ( mit.sql.Connection ) response ;
				setStatus( "connection: " + this.connection.getDatabase() ) ;
				setStatusMessage
					( "for: " 
					+ this.connection.getUsername()
					+ this.connection.getId()
					) ;
			}
			( new mit.comm.event.DisplayResultEvent( this ) ).raise() ;
		}
	}

	private void HandleDeleteResponse()
	{
		setResultsComponent( null ) ;
		setStatus( "Deleted" ) ;
		if( null != function )
		{
			setStatusMessage( new String( function.getName() + "\n" + function.getFunctionCategory() ) ) ;
		}
		this.function = null ;
		( new mit.comm.event.DisplayResultEvent( this ) ).raise() ;
	}

	private void HandleUpdateResponse()
	{
		setResultsComponent( null ) ;
		setStatus( "Updated" ) ;
		setStatusMessage( "" ) ;
		setStatus( "function ID: " + function.getId() ) ;
		setStatusMessage( "Modified by: " + function.getModifiedBy() + "\nModified on: " + function.getModifiedDate() ) ;
		( new mit.comm.event.DisplayResultEvent( this ) ).raise() ;
	}

	private void HandleGetConnectionEvent( mit.roles.event.GetConnectionEvent e )
	{
		Class[] argTypes = new Class[ 4 ] ;
		Object[] args = new Object[ 4 ] ;
		argTypes[ 0 ] = String.class ;
		argTypes[ 1 ] = String.class ;
		argTypes[ 2 ] = String.class ;
		argTypes[ 3 ] = Object.class ;
		args[ 0 ] = getDatabase() ;
		args[ 1 ] = getUsername() ;
		args[ 2 ] = getPassword() ;
		args[ 3 ] = rolesname ;
		setObject( connection ) ;
		setMethodName( "createConnection" ) ;
		setArgTypes( noargsTypes ) ;
		setArgs( noargs ) ;
		( new mit.rmi.event.InvokeMethodEvent( this ) ).raise() ;
	}

	private void HandleFunctionNameEvent( mit.roles.event.FunctionNameEvent e )
	{
		mit.roles.event.FunctionNameRaiser r = ( mit.roles.event.FunctionNameRaiser ) e.getSource() ;
	}

	private void HandleFunctionDescriptionEvent( mit.roles.event.FunctionDescriptionEvent e )
	{
		mit.roles.event.FunctionDescriptionRaiser r = ( mit.roles.event.FunctionDescriptionRaiser ) e.getSource() ;
	}

	private void HandleFunctionCategoryEvent( mit.roles.event.FunctionCategoryEvent e )
	{
		mit.roles.event.FunctionCategoryRaiser r = ( mit.roles.event.FunctionCategoryRaiser ) e.getSource() ;
	}

	private void HandleQualifierTypeEvent( mit.roles.event.QualifierTypeEvent e )
	{
		mit.roles.event.QualifierTypeRaiser r = ( mit.roles.event.QualifierTypeRaiser ) e.getSource() ;
	}

	public void addNotify()
	{
		super.addNotify() ;
		try
		{
			getListenerAdapter().addHandled( mit.roles.event.AddEvent.class ) ;
			getListenerAdapter().addHandled( mit.roles.event.DeleteEvent.class ) ;
			getListenerAdapter().addHandled( mit.roles.event.UpdateEvent.class ) ;
			getListenerAdapter().addHandled( mit.roles.event.GetConnectionEvent.class ) ;
			getListenerAdapter().addHandled( mit.roles.event.FunctionNameEvent.class ) ;
			getListenerAdapter().addHandled( mit.roles.event.FunctionDescriptionEvent.class ) ;
			getListenerAdapter().addHandled( mit.roles.event.FunctionCategoryEvent.class ) ;
			getListenerAdapter().addHandled( mit.roles.event.QualifierTypeEvent.class ) ;
			getListenerAdapter().addHandled( mit.rmi.event.MethodResponseEvent.class ) ;
			getListenerAdapter().addHandled( mit.sql.event.UsernameEvent.class ) ;
			getListenerAdapter().addHandled( mit.sql.event.PasswordEvent.class ) ;
			getListenerAdapter().addHandled( mit.sql.event.DatabaseNameEvent.class ) ;
			getListenerAdapter().addHandled( mit.sql.event.AutoCommitEvent.class ) ;
			getListenerAdapter().addHandled( mit.sql.event.CommitEvent.class ) ;
			getListenerAdapter().addHandled( mit.sql.event.RollbackEvent.class ) ;
		}
		catch( Exception ex )
		{
			ex.printStackTrace() ;
		}
	}
}
