oracle.toplink.essentials.sessions.SessionEventListener Maven / Gradle / Ivy
/*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the "License"). You may not use this file except
* in compliance with the License.
*
* You can obtain a copy of the license at
* glassfish/bootstrap/legal/CDDLv1.0.txt or
* https://glassfish.dev.java.net/public/CDDLv1.0.html.
* See the License for the specific language governing
* permissions and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* HEADER in each file and include the License file at
* glassfish/bootstrap/legal/CDDLv1.0.txt. If applicable,
* add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your
* own identifying information: Portions Copyright [yyyy]
* [name of copyright owner]
*/
// Copyright (c) 1998, 2007, Oracle. All rights reserved.
package oracle.toplink.essentials.sessions;
import java.util.*;
/**
* Purpose: Used to support session events.
* To register for events notification an event listener must be registered with the session.
*
* @see SessionEventManager#addListener(SessionEventListener)
* @see Session#getEventManager()
* @see SessionEvent
*/
public interface SessionEventListener extends EventListener {
/**
* PUBLIC:
* This event is raised on the session if a descriptor is missing for a class being persisted.
* This can be used to lazy register the descriptor or set of descriptors.
*/
public void missingDescriptor(SessionEvent event);
/**
* PUBLIC:
* This event is raised on the session after read object query detected more than a single row back from the database.
* The "result" of the event will be the call. Some applications may want to interpret this as an error or warning condition.
*/
public void moreRowsDetected(SessionEvent event);
/**
* PUBLIC:
* This event is raised on the session after update or delete SQL has been sent to the database
* but a row count of zero was returned.
*/
public void noRowsModified(SessionEvent event);
/**
* PUBLIC:
* This event is raised on the session after a stored procedure call has been executed that had output parameters.
* If the proc was used to override an insert/update/delete operation then TopLink will not be expecting any return value.
* This event mechanism allows for a listner to be registered before the proc is call to process the output values.
* The event "result" will contain a DatabaseRow of the output values, and property "call" will be the StoredProcedureCall.
*/
public void outputParametersDetected(SessionEvent event);
/**
* PUBLIC:
* This event is raised on the client session after creation/acquiring.
*/
public void postAcquireClientSession(SessionEvent event);
/**
* PUBLIC:
* This event is raised on when using the server/client sessions.
* This event is raised after a connection is acquired from a connection pool.
*/
public void postAcquireConnection(SessionEvent event);
/**
* PUBLIC:
* This event is raised when a ClientSession, with Isolated data, acquires
* an exclusive connection. The event will contain the ClientSession that
* is being acquired. Users can set properties within the ConnectionPolicy
* of that ClientSession for access within this event.
*/
public void postAcquireExclusiveConnection(SessionEvent event);
/**
* PUBLIC:
* This event is raised on the unit of work after creation/acquiring.
* This will be raised on nest units of work.
*/
public void postAcquireUnitOfWork(SessionEvent event);
/**
* PUBLIC:
* This event is raised after a database transaction is started.
* It is not raised for nested transactions.
*/
public void postBeginTransaction(SessionEvent event);
/**
* PUBLIC:
* This event is raised after the commit has begun on the UnitOfWork but before
* the changes are calculated.
*/
public void preCalculateUnitOfWorkChangeSet(SessionEvent event);
/**
* PUBLIC:
* This event is raised after the commit has begun on the UnitOfWork and
* after the changes are calculated. The UnitOfWorkChangeSet, at this point,
* will contain changeSets without the version fields updated and without
* IdentityField type primary keys. These will be updated after the insert, or
* update, of the object
*/
public void postCalculateUnitOfWorkChangeSet(SessionEvent event);
/**
* PUBLIC:
* This event is raised after a database transaction is commited.
* It is not raised for nested transactions.
*/
public void postCommitTransaction(SessionEvent event);
/**
* PUBLIC:
* This event is raised on the unit of work after commit.
* This will be raised on nest units of work.
*/
public void postCommitUnitOfWork(SessionEvent event);
/**
* PUBLIC:
* This event is raised after the session connects to the database.
* In a server session this event is raised on every new connection established.
*/
public void postConnect(SessionEvent event);
/**
* PUBLIC:
* This event is raised after the execution of every query against the session.
* The event contains the query and query result.
*/
public void postExecuteQuery(SessionEvent event);
/**
* PUBLIC:
* This event is raised on the client session after releasing.
*/
public void postReleaseClientSession(SessionEvent event);
/**
* PUBLIC:
* This event is raised on the unit of work after release.
* This will be raised on nest units of work.
*/
public void postReleaseUnitOfWork(SessionEvent event);
/**
* PUBLIC:
* This event is raised on the unit of work after resuming.
* This occurs after pre/postCommit.
*/
public void postResumeUnitOfWork(SessionEvent event);
/**
* PUBLIC:
* This event is raised after a database transaction is rolledback.
* It is not raised for nested transactions.
*/
public void postRollbackTransaction(SessionEvent event);
/**
* PUBLIC:
* This even will be raised after a UnitOfWorkChangeSet has been merged
* When that changeSet has been received from a distributed session
*/
public void postDistributedMergeUnitOfWorkChangeSet(SessionEvent event);
/**
* PUBLIC:
* This even will be raised after a UnitOfWorkChangeSet has been merged
*/
public void postMergeUnitOfWorkChangeSet(SessionEvent event);
/**
* PUBLIC:
* This event is raised before a database transaction is started.
* It is not raised for nested transactions.
*/
public void preBeginTransaction(SessionEvent event);
/**
* PUBLIC:
* This event is raised before a database transaction is commited.
* It is not raised for nested transactions.
*/
public void preCommitTransaction(SessionEvent event);
/**
* PUBLIC:
* This event is raised on the unit of work before commit.
* This will be raised on nest units of work.
*/
public void preCommitUnitOfWork(SessionEvent event);
/**
* PUBLIC:
* This event is raised before the execution of every query against the session.
* The event contains the query to be executed.
*/
public void preExecuteQuery(SessionEvent event);
/**
* PUBLIC:
* This event is raised on the unit of work after the SQL has been flushed, but the commit transaction has not been executed.
* It is similar to the JTS prepare phase.
*/
public void prepareUnitOfWork(SessionEvent event);
/**
* PUBLIC:
* This event is raised on the client session before releasing.
*/
public void preReleaseClientSession(SessionEvent event);
/**
* PUBLIC:
* This event is raised on when using the server/client sessions.
* This event is raised before a connection is released into a connection pool.
*/
public void preReleaseConnection(SessionEvent event);
/**
* PUBLIC:
* This event is fired just before a Client Session, with isolated data,
* releases its Exclusive Connection
*/
public void preReleaseExclusiveConnection(SessionEvent event);
/**
* PUBLIC:
* This event is raised on the unit of work before release.
* This will be raised on nest units of work.
*/
public void preReleaseUnitOfWork(SessionEvent event);
/**
* PUBLIC:
* This event is raised before a database transaction is rolledback.
* It is not raised for nested transactions.
*/
public void preRollbackTransaction(SessionEvent event);
/**
* PUBLIC:
* This even will be raised before a UnitOfWorkChangeSet has been merged
* When that changeSet has been received from a distributed session
*/
public void preDistributedMergeUnitOfWorkChangeSet(SessionEvent event);
/**
* PUBLIC:
* This even will be raised before a UnitOfWorkChangeSet has been merged
*/
public void preMergeUnitOfWorkChangeSet(SessionEvent event);
/**
* PUBLIC:
* This Event is raised before the session logs in.
*/
public void preLogin(SessionEvent event);
/**
* PUBLIC:
* This Event is raised after the session logs in.
*/
public void postLogin(SessionEvent event);
}