Open Source Repository

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


org/hibernate/property/Getter.java
//$Id: Getter.java 7516 2005-07-16 22:20:48Z oneovthafew $
package org.hibernate.property;

import java.io.Serializable;
import java.lang.reflect.Method;
import java.util.Map;

import org.hibernate.HibernateException;
import org.hibernate.engine.SessionImplementor;

/**
 * Gets values of a particular property
 *
 @author Gavin King
 */
public interface Getter extends Serializable {
  /**
   * Get the property value from the given instance .
   @param owner The instance containing the value to be retreived.
   @return The extracted value.
   @throws HibernateException
   */
  public Object get(Object ownerthrows HibernateException;

  /**
   * Get the property value from the given owner instance.
   *
   @param owner The instance containing the value to be retreived.
   @param mergeMap a map of merged persistent instances to detached instances
   @param session The session from which this request originated.
   @return The extracted value.
   @throws HibernateException
   */
  public Object getForInsert(Object owner, Map mergeMap, SessionImplementor session
  throws HibernateException;

  /**
   * Get the declared Java type
   */
  public Class getReturnType();

  /**
   * Optional operation (return null)
   */
  public String getMethodName();

  /**
   * Optional operation (return null)
   */
  public Method getMethod();
}