| /* |
| * 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.*; |
| |
| /** |
| * <p><b>Purpose</b>: 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; |
| } |
| } |