javax.persistence.metamodel.IdentifiableType Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-jpa-2.1-api Show documentation
Show all versions of hibernate-jpa-2.1-api Show documentation
Clean-room definition of JPA APIs intended for use in developing Hibernate JPA implementation. See README.md for details
The newest version!
/*
* Copyright (c) 2008, 2009, 2011 Oracle, Inc. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution. The Eclipse Public License is available
* at http://www.eclipse.org/legal/epl-v10.html and the Eclipse Distribution License
* is available at http://www.eclipse.org/org/documents/edl-v10.php.
*/
package javax.persistence.metamodel;
import java.util.Set;
/**
* Instances of the type IdentifiableType
represent entity or
* mapped superclass types.
*
* @param The represented entity or mapped superclass type.
* @since Java Persistence 2.0
*/
public interface IdentifiableType extends ManagedType {
/**
* Return the attribute that corresponds to the id attribute of
* the entity or mapped superclass.
*
* @param type the type of the represented id attribute
*
* @return id attribute
*
* @throws IllegalArgumentException if id attribute of the given
* type is not present in the identifiable type or if
* the identifiable type has an id class
*/
SingularAttribute getId(Class type);
/**
* Return the attribute that corresponds to the id attribute
* declared by the entity or mapped superclass.
*
* @param type the type of the represented declared
* id attribute
*
* @return declared id attribute
*
* @throws IllegalArgumentException if id attribute of the given
* type is not declared in the identifiable type or if
* the identifiable type has an id class
*/
SingularAttribute getDeclaredId(Class type);
/**
* Return the attribute that corresponds to the version
* attribute of the entity or mapped superclass.
*
* @param type the type of the represented version attribute
*
* @return version attribute
*
* @throws IllegalArgumentException if version attribute of the
* given type is not present in the identifiable type
*/
SingularAttribute getVersion(Class type);
/**
* Return the attribute that corresponds to the version
* attribute declared by the entity or mapped superclass.
*
* @param type the type of the represented declared version
* attribute
*
* @return declared version attribute
*
* @throws IllegalArgumentException if version attribute of the
* type is not declared in the identifiable type
*/
SingularAttribute getDeclaredVersion(Class type);
/**
* Return the identifiable type that corresponds to the most
* specific mapped superclass or entity extended by the entity
* or mapped superclass.
*
* @return supertype of identifiable type or null if no
* such supertype
*/
IdentifiableType getSupertype();
/**
* Whether the identifiable type has a single id attribute.
* Returns true for a simple id or embedded id; returns false
* for an idclass.
*
* @return boolean indicating whether the identifiable
* type has a single id attribute
*/
boolean hasSingleIdAttribute();
/**
* Whether the identifiable type has a version attribute.
*
* @return boolean indicating whether the identifiable
* type has a version attribute
*/
boolean hasVersionAttribute();
/**
* Return the attributes corresponding to the id class of the
* identifiable type.
*
* @return id attributes
*
* @throws IllegalArgumentException if the identifiable type
* does not have an id class
*/
Set> getIdClassAttributes();
/**
* Return the type that represents the type of the id.
*
* @return type of id
*/
Type getIdType();
}