org.hibernate.ejb.metamodel
Class AbstractIdentifiableType<X>

java.lang.Object
  extended by org.hibernate.ejb.metamodel.AbstractType<X>
      extended by org.hibernate.ejb.metamodel.AbstractManagedType<X>
          extended by org.hibernate.ejb.metamodel.AbstractIdentifiableType<X>
All Implemented Interfaces:
Serializable, IdentifiableType<X>, ManagedType<X>, Type<X>
Direct Known Subclasses:
EntityTypeImpl, MappedSuperclassTypeImpl

public abstract class AbstractIdentifiableType<X>
extends AbstractManagedType<X>
implements IdentifiableType<X>, Serializable

Defines commonality for the JPA IdentifiableType types. JPA defines identifiable types as entities or mapped-superclasses. Basically things to which an identifier can be attached.

NOTE : Currently we only really have support for direct entities in the Hibernate metamodel as the information for them is consumed into the closest actual entity subclass(es) in the internal Hibernate mapping-metamodel.

See Also:
Serialized Form

Nested Class Summary
static interface AbstractIdentifiableType.Builder<X>
           
 
Nested classes/interfaces inherited from interface javax.persistence.metamodel.Type
Type.PersistenceType
 
Constructor Summary
AbstractIdentifiableType(Class<X> javaType, AbstractIdentifiableType<? super X> superType, boolean hasIdentifierProperty, boolean versioned)
           
 
Method Summary
protected  void checkDeclaredId()
          Centralized check to ensure the id is actually declared on the class mapped here, as opposed to a super class.
protected  void checkDeclaredVersion()
          Centralized check to ensure the version (if one) is actually declared on the class mapped here, as opposed to a super class.
protected  void checkSimpleId()
          Centralized check to ensure the id for this hierarchy is a simple one (i.e., does not use an id-class).
 AbstractIdentifiableType.Builder<X> getBuilder()
           
<Y> SingularAttribute<X,Y>
getDeclaredId(Class<Y> javaType)
          
 SingularAttribute<X,?> getDeclaredVersion()
          For used to retrieve the declared version when populating the static metamodel.
<Y> SingularAttribute<X,Y>
getDeclaredVersion(Class<Y> javaType)
          
<Y> SingularAttribute<? super X,Y>
getId(Class<Y> javaType)
          
 Set<SingularAttribute<? super X,?>> getIdClassAttributes()
          
 Type<?> getIdType()
          
 AbstractIdentifiableType<? super X> getSupertype()
          
<Y> SingularAttribute<? super X,Y>
getVersion(Class<Y> javaType)
          
 boolean hasDeclaredVersionAttribute()
           
 boolean hasSingleIdAttribute()
          
 boolean hasVersionAttribute()
          
protected abstract  boolean requiresSupertypeForNonDeclaredIdentifier()
          Indicates if a non-null super type is required to provide the identifier attribute(s) if this object does not have a declared identifier.
protected  AbstractIdentifiableType<? super X> requireSupertype()
           
 
Methods inherited from class org.hibernate.ejb.metamodel.AbstractManagedType
getAttribute, getAttributes, getCollection, getCollection, getDeclaredAttribute, getDeclaredAttributes, getDeclaredCollection, getDeclaredCollection, getDeclaredList, getDeclaredList, getDeclaredMap, getDeclaredMap, getDeclaredPluralAttributes, getDeclaredSet, getDeclaredSet, getDeclaredSingularAttribute, getDeclaredSingularAttribute, getDeclaredSingularAttributes, getList, getList, getMap, getMap, getPluralAttributes, getSet, getSet, getSingularAttribute, getSingularAttribute, getSingularAttributes, isPrimitiveVariant, lock
 
Methods inherited from class org.hibernate.ejb.metamodel.AbstractType
getJavaType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.persistence.metamodel.ManagedType
getAttribute, getAttributes, getCollection, getCollection, getDeclaredAttribute, getDeclaredAttributes, getDeclaredCollection, getDeclaredCollection, getDeclaredList, getDeclaredList, getDeclaredMap, getDeclaredMap, getDeclaredPluralAttributes, getDeclaredSet, getDeclaredSet, getDeclaredSingularAttribute, getDeclaredSingularAttribute, getDeclaredSingularAttributes, getList, getList, getMap, getMap, getPluralAttributes, getSet, getSet, getSingularAttribute, getSingularAttribute, getSingularAttributes
 
Methods inherited from interface javax.persistence.metamodel.Type
getJavaType, getPersistenceType
 

Constructor Detail

AbstractIdentifiableType

public AbstractIdentifiableType(Class<X> javaType,
                                AbstractIdentifiableType<? super X> superType,
                                boolean hasIdentifierProperty,
                                boolean versioned)
Method Detail

getSupertype

public AbstractIdentifiableType<? super X> getSupertype()

Specified by:
getSupertype in interface IdentifiableType<X>
Overrides:
getSupertype in class AbstractManagedType<X>

requiresSupertypeForNonDeclaredIdentifier

protected abstract boolean requiresSupertypeForNonDeclaredIdentifier()
Indicates if a non-null super type is required to provide the identifier attribute(s) if this object does not have a declared identifier. .

Returns:
true, if a non-null super type is required to provide the identifier attribute(s) if this object does not have a declared identifier; false, otherwise.

requireSupertype

protected AbstractIdentifiableType<? super X> requireSupertype()

hasSingleIdAttribute

public boolean hasSingleIdAttribute()

Specified by:
hasSingleIdAttribute in interface IdentifiableType<X>

getId

public <Y> SingularAttribute<? super X,Y> getId(Class<Y> javaType)

Specified by:
getId in interface IdentifiableType<X>

checkSimpleId

protected void checkSimpleId()
Centralized check to ensure the id for this hierarchy is a simple one (i.e., does not use an id-class).

See Also:
checkIdClass()

getDeclaredId

public <Y> SingularAttribute<X,Y> getDeclaredId(Class<Y> javaType)

Specified by:
getDeclaredId in interface IdentifiableType<X>

checkDeclaredId

protected void checkDeclaredId()
Centralized check to ensure the id is actually declared on the class mapped here, as opposed to a super class.


getIdType

public Type<?> getIdType()

Specified by:
getIdType in interface IdentifiableType<X>

getIdClassAttributes

public Set<SingularAttribute<? super X,?>> getIdClassAttributes()

Specified by:
getIdClassAttributes in interface IdentifiableType<X>

hasVersionAttribute

public boolean hasVersionAttribute()

Specified by:
hasVersionAttribute in interface IdentifiableType<X>

hasDeclaredVersionAttribute

public boolean hasDeclaredVersionAttribute()

getVersion

public <Y> SingularAttribute<? super X,Y> getVersion(Class<Y> javaType)

Specified by:
getVersion in interface IdentifiableType<X>

getDeclaredVersion

public <Y> SingularAttribute<X,Y> getDeclaredVersion(Class<Y> javaType)

Specified by:
getDeclaredVersion in interface IdentifiableType<X>

getDeclaredVersion

public SingularAttribute<X,?> getDeclaredVersion()
For used to retrieve the declared version when populating the static metamodel.

Returns:
The declared

checkDeclaredVersion

protected void checkDeclaredVersion()
Centralized check to ensure the version (if one) is actually declared on the class mapped here, as opposed to a super class.


getBuilder

public AbstractIdentifiableType.Builder<X> getBuilder()
Overrides:
getBuilder in class AbstractManagedType<X>


Copyright © 2001-2012 Red Hat, Inc. All Rights Reserved.