![JAR search and dependency download from the Maven repository](/logo.png)
org.hibernate.metadata.ClassMetadata Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate Show documentation
Show all versions of hibernate Show documentation
Relational Persistence for Java
//$Id: ClassMetadata.java 7516 2005-07-16 22:20:48Z oneovthafew $
package org.hibernate.metadata;
import java.io.Serializable;
import java.util.Map;
import org.hibernate.HibernateException;
import org.hibernate.EntityMode;
import org.hibernate.engine.SessionImplementor;
import org.hibernate.type.Type;
/**
* Exposes entity class metadata to the application
*
* @see org.hibernate.SessionFactory#getClassMetadata(Class)
* @author Gavin King
*/
public interface ClassMetadata {
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// stuff that is persister-centric and/or EntityInfo-centric ~~~~~~~~~~~~~~
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/**
* The name of the entity
*/
public String getEntityName();
/**
* Get the name of the identifier property (or return null)
*/
public String getIdentifierPropertyName();
/**
* Get the names of the class' persistent properties
*/
public String[] getPropertyNames();
/**
* Get the identifier Hibernate type
*/
public Type getIdentifierType();
/**
* Get the Hibernate types of the class properties
*/
public Type[] getPropertyTypes();
/**
* Get the type of a particular (named) property
*/
public Type getPropertyType(String propertyName) throws HibernateException;
/**
* Does this class support dynamic proxies?
*/
public boolean hasProxy();
/**
* Are instances of this class mutable?
*/
public boolean isMutable();
/**
* Are instances of this class versioned by a timestamp or version number column?
*/
public boolean isVersioned();
/**
* Get the index of the version property
*/
public int getVersionProperty();
/**
* Get the nullability of the class' persistent properties
*/
public boolean[] getPropertyNullability();
/**
* Get the "laziness" of the properties of this class
*/
public boolean[] getPropertyLaziness();
/**
* Does this class have an identifier property?
*/
public boolean hasIdentifierProperty();
/**
* Does this entity declare a natural id?
*/
public boolean hasNaturalIdentifier();
/**
* Which properties hold the natural id?
*/
public int[] getNaturalIdentifierProperties();
/**
* Does this entity have mapped subclasses?
*/
public boolean hasSubclasses();
/**
* Does this entity extend a mapped superclass?
*/
public boolean isInherited();
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// stuff that is tuplizer-centric, but is passed a session ~~~~~~~~~~~~~~~~
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/**
* Return the values of the mapped properties of the object
*/
public Object[] getPropertyValuesToInsert(Object entity, Map mergeMap, SessionImplementor session)
throws HibernateException;
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// stuff that is Tuplizer-centric ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/**
* The persistent class, or null
*/
public Class getMappedClass(EntityMode entityMode);
/**
* Create a class instance initialized with the given identifier
*/
public Object instantiate(Serializable id, EntityMode entityMode) throws HibernateException;
/**
* Get the value of a particular (named) property
*/
public Object getPropertyValue(Object object, String propertyName, EntityMode entityMode) throws HibernateException;
/**
* Extract the property values from the given entity.
*
* @param entity The entity from which to extract the property values.
* @param entityMode The entity-mode of the given entity
* @return The property values.
* @throws HibernateException
*/
public Object[] getPropertyValues(Object entity, EntityMode entityMode) throws HibernateException;
/**
* Set the value of a particular (named) property
*/
public void setPropertyValue(Object object, String propertyName, Object value, EntityMode entityMode) throws HibernateException;
/**
* Set the given values to the mapped properties of the given object
*/
public void setPropertyValues(Object object, Object[] values, EntityMode entityMode) throws HibernateException;
/**
* Get the identifier of an instance (throw an exception if no identifier property)
*/
public Serializable getIdentifier(Object entity, EntityMode entityMode) throws HibernateException;
/**
* Set the identifier of an instance (or do nothing if no identifier property)
*/
public void setIdentifier(Object object, Serializable id, EntityMode entityMode) throws HibernateException;
/**
* Does the class implement the Lifecycle interface?
*/
public boolean implementsLifecycle(EntityMode entityMode);
/**
* Does the class implement the Validatable interface?
*/
public boolean implementsValidatable(EntityMode entityMode);
/**
* Get the version number (or timestamp) from the object's version property
* (or return null if not versioned)
*/
public Object getVersion(Object object, EntityMode entityMode) throws HibernateException;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy