All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.persistence.sessions.SessionEvent Maven / Gradle / Ivy

There is a newer version: 5.0.0-B03
Show newest version
/*
 * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
 * Copyright (c) 2021 IBM Corporation. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0,
 * or the Eclipse Distribution License v. 1.0 which is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
 */

// Contributors:
//     Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.sessions;

import java.util.*;
import org.eclipse.persistence.queries.*;

/**
 * 

Purpose: Encapsulate the information provided with session events. * This is used as the argument to any event raised by the session. * To register for events notification an event listener must be registered with the session. * * @see SessionEventManager#addListener(SessionEventListener) * @see Session#getEventManager() * @see SessionEventListener */ public class SessionEvent extends EventObject { /** Some events may have a query associated with them (pre/postExecuteQuery). */ protected DatabaseQuery query; /** Some events may have a call associated with them (pre/postExecuteCall). */ protected Call call; /** Some events may have a result associated with them (pre/postExecuteQuery). */ protected Object result; /** The session or unit of work raising the event. */ protected Session session; /** The code of the event being raised. This is an integer constant value as defined below. */ protected int eventCode; /** Additional properties may be added. */ protected Hashtable properties; public static final int PreExecuteQuery = 1; public static final int PostExecuteQuery = 2; public static final int PreBeginTransaction = 3; public static final int PostBeginTransaction = 4; public static final int PreCommitTransaction = 5; public static final int PostCommitTransaction = 6; public static final int PreRollbackTransaction = 7; public static final int PostRollbackTransaction = 8; public static final int PreExecuteCall = 36; public static final int PostExecuteCall = 37; // Unit of work events, only raised on unit of work. public static final int PostAcquireUnitOfWork = 9; public static final int PreCommitUnitOfWork = 10; public static final int PostCommitUnitOfWork = 11; public static final int PreReleaseUnitOfWork = 12; public static final int PostReleaseUnitOfWork = 13; public static final int PrepareUnitOfWork = 14; public static final int PostResumeUnitOfWork = 15; // Three-tier events, only raised on server/client session. public static final int PostAcquireClientSession = 16; public static final int PreReleaseClientSession = 17; public static final int PostReleaseClientSession = 18; public static final int PostAcquireConnection = 22; public static final int PostAcquireExclusiveConnection = 33; public static final int PreReleaseConnection = 23; public static final int PreReleaseExclusiveConnection = 34; // Database access events. public static final int OutputParametersDetected = 19; public static final int MoreRowsDetected = 20; public static final int PostConnect = 21; // Login events public static final int PreLogin = 24; public static final int PostLogin = 25; public static final int PreLogout = 40; public static final int PostLogout = 41; public static final int PreMergeUnitOfWorkChangeSet = 26; public static final int PreDistributedMergeUnitOfWorkChangeSet = 27; public static final int PostMergeUnitOfWorkChangeSet = 28; public static final int PostDistributedMergeUnitOfWorkChangeSet = 29; //ChangeSet Events public static final int PreCalculateUnitOfWorkChangeSet = 30; public static final int PostCalculateUnitOfWorkChangeSet = 31; public static final int MissingDescriptor = 32; public static final int NoRowsModified = 35; // last event value for this class as of Jan 26th, 2004 is 41 /** * INTERNAL: * Create the event. */ public SessionEvent(int eventCode, Session session) { super(session); this.session = session; this.eventCode = eventCode; } /** * PUBLIC: * The code of the session event being raised. * This is an integer constant value from this class. */ public int getEventCode() { return eventCode; } /** * PUBLIC: * Additional properties may be added to the event. */ public Hashtable getProperties() { if (properties == null) { properties = new Hashtable(2); } return properties; } /** * PUBLIC: * Additional properties may be added to the event. */ public Object getProperty(String name) { return getProperties().get(name); } /** * PUBLIC: * Some events may have a call associated with them (pre/postExecuteCall). */ public Call getCall() { return call; } /** * PUBLIC: * Some events may have a query associated with them (pre/postExecuteQuery). */ public DatabaseQuery getQuery() { return query; } /** * PUBLIC: * Some events may have a result associated with them (pre/postExecuteQuery). */ public Object getResult() { return result; } /** * PUBLIC: * The session in which the event is raised. */ public Session getSession() { return session; } /** * INTERNAL: * The code of the session event being raised. * This is an integer constant value from this class. */ public void setEventCode(int eventCode) { this.eventCode = eventCode; } /** * INTERNAL: * Additional properties may be added to the event. */ public void setProperties(Hashtable properties) { this.properties = properties; } /** * INTERNAL: * Additional properties may be added to the event. */ public void setProperty(String name, Object value) { getProperties().put(name, value); } /** * INTERNAL: * Some events may have a call associated with them (pre/postExecuteCall). */ public void setCall(Call call) { this.call = call; } /** * INTERNAL: * Some events may have a query associated with them (pre/postExecuteQuery). */ public void setQuery(DatabaseQuery query) { this.query = query; } /** * INTERNAL: * Some events may have a result associated with them (pre/postExecuteQuery). */ public void setResult(Object result) { this.result = result; } /** * INTERNAL: * The session in which the event is raised. */ public void setSession(Session session) { this.session = session; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy