blob: 04bbc9a842ac64c2c44bf5bcb7e76fe94da58981 [file] [log] [blame]
/*
* Copyright (c) 1998, 2020 Oracle and/or its affiliates. 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.testing.models.jpa.fieldaccess.advanced;
import jakarta.persistence.*;
import java.util.EventListener;
public class EmployeeListener implements EventListener {
@Transient
public static int PRE_PERSIST_COUNT = 0;
@Transient
public static int POST_PERSIST_COUNT = 0;
@Transient
public static int PRE_REMOVE_COUNT = 0;
@Transient
public static int POST_REMOVE_COUNT = 0;
@Transient
public static int PRE_UPDATE_COUNT = 0;
@Transient
public static int POST_UPDATE_COUNT = 0;
@Transient
public static int POST_LOAD_COUNT = 0;
// preUpdate will remove this prefix from firstName and lastName
public static String PRE_UPDATE_NAME_PREFIX = "PRE_UPDATE_NAME_PREFIX";
@PrePersist
public void prePersist(Object emp) {
PRE_PERSIST_COUNT++;
}
@PostPersist
public void postPersist(Object emp) {
POST_PERSIST_COUNT++;
}
@PreRemove
public void preRemove(Object emp) {
PRE_REMOVE_COUNT++;
}
@PostRemove
public void postRemove(Object emp) {
POST_REMOVE_COUNT++;
}
@PreUpdate
public void preUpdate(Object emp) {
PRE_UPDATE_COUNT++;
Employee employee = (Employee)emp;
if(employee.getFirstName() != null && employee.getFirstName().startsWith(PRE_UPDATE_NAME_PREFIX)) {
employee.setFirstName(employee.getFirstName().substring(PRE_UPDATE_NAME_PREFIX.length()));
}
if(employee.getLastName() != null && employee.getLastName().startsWith(PRE_UPDATE_NAME_PREFIX)) {
employee.setLastName(employee.getLastName().substring(PRE_UPDATE_NAME_PREFIX.length()));
}
}
@PostUpdate
public void postUpdate(Object emp) {
POST_UPDATE_COUNT++;
}
@PostLoad
public void postLoad(Employee emp) {
POST_LOAD_COUNT++;
}
}