/* * 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, 2005, Oracle. All rights reserved. package oracle.toplink.essentials.testing.models.cmp3.advanced; import javax.persistence.*; import java.util.EventListener; public class EmployeeListener implements EventListener { public static int PRE_PERSIST_COUNT = 0; public static int POST_PERSIST_COUNT = 0; public static int PRE_REMOVE_COUNT = 0; public static int POST_REMOVE_COUNT = 0; public static int PRE_UPDATE_COUNT = 0; public static int POST_UPDATE_COUNT = 0; 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++; } }