Open Source Repository

Home /hibernate/hibernate-3.2.7.ga | Repository Home


org/hibernate/event/LoadEvent.java
//$Id: LoadEvent.java 7785 2005-08-08 23:24:44Z oneovthafew $
package org.hibernate.event;

import java.io.Serializable;

import org.hibernate.LockMode;

/**
 *  Defines an event class for the loading of an entity.
 *
 @author Steve Ebersole
 */
public class LoadEvent extends AbstractEvent {

  public static final LockMode DEFAULT_LOCK_MODE = LockMode.NONE;

  private Serializable entityId;
  private String entityClassName;
  private Object instanceToLoad;
  private LockMode lockMode;
  private boolean isAssociationFetch;
  private Object result;

  public LoadEvent(Serializable entityId, Object instanceToLoad, EventSource source) {
    this(entityId, null, instanceToLoad, null, false, source);
  }

  public LoadEvent(Serializable entityId, String entityClassName, LockMode lockMode, EventSource source) {
    this(entityId, entityClassName, null, lockMode, false, source);
  }
  
  public LoadEvent(Serializable entityId, String entityClassName, boolean isAssociationFetch, EventSource source) {
    this(entityId, entityClassName, null, null, isAssociationFetch, source);
  }
  
  public boolean isAssociationFetch() {
    return isAssociationFetch;
  }

  private LoadEvent(
      Serializable entityId,
      String entityClassName,
      Object instanceToLoad,
      LockMode lockMode,
      boolean isAssociationFetch,
      EventSource source) {

    super(source);

    if entityId == null ) {
      throw new IllegalArgumentException("id to load is required for loading");
    }

    if lockMode == LockMode.WRITE ) {
      throw new IllegalArgumentException("Invalid lock mode for loading");
    }
    else if lockMode == null ) {
      lockMode = DEFAULT_LOCK_MODE;
    }

    this.entityId = entityId;
    this.entityClassName = entityClassName;
    this.instanceToLoad = instanceToLoad;
    this.lockMode = lockMode;
    this.isAssociationFetch = isAssociationFetch;
  }

  public Serializable getEntityId() {
    return entityId;
  }

  public void setEntityId(Serializable entityId) {
    this.entityId = entityId;
  }

  public String getEntityClassName() {
    return entityClassName;
  }

  public void setEntityClassName(String entityClassName) {
    this.entityClassName = entityClassName;
  }

  public Object getInstanceToLoad() {
    return instanceToLoad;
  }

  public void setInstanceToLoad(Object instanceToLoad) {
    this.instanceToLoad = instanceToLoad;
  }

  public LockMode getLockMode() {
    return lockMode;
  }

  public void setLockMode(LockMode lockMode) {
    this.lockMode = lockMode;
  }

  public Object getResult() {
    return result;
  }

  public void setResult(Object result) {
    this.result = result;
  }
}