org.hibernate.event.PreUpdateEvent Maven / Gradle / Ivy
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
* indicated by the @author tags or express copyright attribution
* statements applied by the authors. All third-party contributions are
* distributed under license by Red Hat Middleware LLC.
*
* This copyrighted material is made available to anyone wishing to use, modify,
* copy, or redistribute it subject to the terms and conditions of the GNU
* Lesser General Public License, as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
* for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this distribution; if not, write to:
* Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor
* Boston, MA 02110-1301 USA
*
*/
package org.hibernate.event;
import java.io.Serializable;
import org.hibernate.persister.entity.EntityPersister;
/**
* Represents a pre-update event, which occurs just prior to
* performing the update of an entity in the database.
*
* @author Gavin King
* @author Steve Ebersole
*/
public class PreUpdateEvent extends AbstractPreDatabaseOperationEvent {
private Object[] state;
private Object[] oldState;
/**
* Constructs an event containing the pertinent information.
*
* @param entity The entity to be updated.
* @param id The id of the entity to use for updating.
* @param state The state to be updated.
* @param oldState The state of the entity at the time it was loaded from
* the database.
* @param persister The entity's persister.
* @param source The session from which the event originated.
*/
public PreUpdateEvent(
Object entity,
Serializable id,
Object[] state,
Object[] oldState,
EntityPersister persister,
EventSource source) {
super( source, entity, id, persister );
this.state = state;
this.oldState = oldState;
}
/**
* Retrieves the state to be used in the update.
*
* @return The current state.
*/
public Object[] getState() {
return state;
}
/**
* The old state of the entity at the time it was last loaded from the
* database; can be null in the case of detached entities.
*
* @return The loaded state, or null.
*/
public Object[] getOldState() {
return oldState;
}
}