Top Description Fields Constructors Methods
org.hibernate.cfg

public final Class AnnotationBinder

extends Object
Class Inheritance
Annotations
@SuppressWarnings:unchecked
Imports
java.util.ArrayList, .Arrays, .Collections, .EnumSet, .HashMap, .HashSet, .Iterator, .List, .Locale, .Map, .Properties, .Set, javax.persistence.AttributeOverride, .AttributeOverrides, .Basic, .CollectionTable, .Column, .ConstraintMode, .DiscriminatorColumn, .DiscriminatorType, .DiscriminatorValue, .ElementCollection, .Embeddable, .Embedded, .EmbeddedId, .Entity, .FetchType, .GeneratedValue, .Id, .IdClass, .Inheritance, .InheritanceType, .JoinColumn, .JoinColumns, .JoinTable, .ManyToMany, .ManyToOne, .MapKey, .MapKeyColumn, .MapKeyJoinColumn, .MapKeyJoinColumns, .MappedSuperclass, .MapsId, .NamedNativeQueries, .NamedNativeQuery, .NamedQueries, .NamedQuery, .NamedStoredProcedureQueries, .NamedStoredProcedureQuery, .OneToMany, .OneToOne, .OrderColumn, .PrimaryKeyJoinColumn, .PrimaryKeyJoinColumns, .SequenceGenerator, .SequenceGenerators, .SharedCacheMode, .SqlResultSetMapping, .SqlResultSetMappings, .Table, .TableGenerator, .TableGenerators, .UniqueConstraint, .Version, org.hibernate.AnnotationException, .AssertionFailure, .EntityMode, .FetchMode, .MappingException, org.hibernate.annotations.BatchSize, .Cache, .Cascade, .CascadeType, .Check, .CollectionId, .Columns, .Comment, .DiscriminatorFormula, .DiscriminatorOptions, .Fetch, .FetchProfile, .FetchProfiles, .Filter, .FilterDef, .FilterDefs, .Filters, .ForeignKey, .Formula, .GenericGenerator, .GenericGenerators, .Index, .LazyGroup, .LazyToOne, .LazyToOneOption, .ListIndexBase, .ManyToAny, .MapKeyType, .NaturalId, .NotFound, .NotFoundAction, .OnDelete, .OnDeleteAction, .OrderBy, .ParamDef, .Parameter, .Parent, .Proxy, .Sort, .SortComparator, .SortNatural, .Source, .Tuplizer, .Tuplizers, .TypeDef, .TypeDefs, .Where, org.hibernate.annotations.common.reflection.ReflectionManager, .XAnnotatedElement, .XClass, .XMethod, .XPackage, .XProperty, org.hibernate.boot.model.IdGeneratorStrategyInterpreter, .IdentifierGeneratorDefinition, .TypeDefinition, org.hibernate.boot.registry.classloading.spi.ClassLoaderService, org.hibernate.boot.spi.InFlightMetadataCollector, .InFlightMetadataCollector.EntityTableXref, .MetadataBuildingContext, org.hibernate.cfg.annotations.CollectionBinder, .EntityBinder, .HCANNHelper, .MapKeyColumnDelegator, .MapKeyJoinColumnDelegator, .Nullability, .PropertyBinder, .QueryBinder, .SimpleValueBinder, .TableBinder, org.hibernate.cfg.internal.NullableDiscriminatorColumnSecondPass, org.hibernate.engine.OptimisticLockStyle, org.hibernate.engine.spi.FilterDefinition, org.hibernate.internal.CoreMessageLogger, org.hibernate.internal.util.StringHelper, org.hibernate.jpa.event.internal.CallbackDefinitionResolverLegacyImpl, org.hibernate.jpa.event.spi.CallbackType, org.hibernate.loader.PropertyPath, org.hibernate.mapping.Any, .Component, .Constraint, .DependantValue, .Join, .JoinedSubclass, .KeyValue, .PersistentClass, .Property, .RootClass, .SimpleValue, .SingleTableSubclass, .Subclass, .ToOne, .UnionSubclass

JSR 175 annotation binder which reads the annotations from classes, applies the principles of the EJB3 spec and produces the Hibernate configuration-time metamodel (the classes in the org.hibernate.mapping package)

Some design description I tried to remove any link to annotation except from the 2 first level of method call. It'll enable to: - facilitate annotation overriding - mutualize one day xml and annotation binder (probably a dream though) - split this huge class in smaller mapping oriented classes bindSomething usually create the mapping container and is accessed by one of the 2 first level method makeSomething usually create the mapping container and is accessed by bindSomething[else] fillSomething take the container into parameter and fill it.

Authors
Emmanuel Bernard, Hardy Ferentschik

Field Summary

Modifier and TypeField and Description
private static final CoreMessageLogger

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
pack-priv static int

Returns:

the number of id properties found while iterating the elements of annotatedClass using the determined access strategy, false otherwise.
addElementsOfClass
(List<PropertyData>
List of ProperyData instances
elements
,
PropertyContainer
Metadata about a class and its properties
propertyContainer
,
MetadataBuildingContext context)

private static int
addProperty(PropertyContainer propertyContainer, XProperty property, List<PropertyData> inFlightPropertyDataList, MetadataBuildingContext context)

private static void
private static void
bindAny(String cascadeStrategy, Ejb3JoinColumn[] columns, boolean cascadeOnDelete, Nullability nullability, PropertyHolder propertyHolder, PropertyData inferredData, EntityBinder entityBinder, boolean isIdentifierMapper, MetadataBuildingContext buildingContext)

private static void
bindCallbacks(XClass entityClass, PersistentClass persistentClass, MetadataBuildingContext context)

public static void
bindClass(XClass
entity to bind as XClass instance
clazzToProcess
,
Map<XClass, InheritanceState>
Meta data about the inheritance relationships for all mapped classes
inheritanceStatePerClass
,
MetadataBuildingContext context)

Bind a class having JSR175 annotations.

private static PropertyBinder
bindComponent(PropertyData inferredData, PropertyHolder propertyHolder, AccessType propertyAccessor, EntityBinder entityBinder, boolean isIdentifierMapper, MetadataBuildingContext buildingContext, boolean isComponentEmbedded, boolean isId, Map<XClass, InheritanceState> inheritanceStatePerClass, String referencedEntityName, Ejb3JoinColumn[] columns)

public static void
private static void
bindDiscriminatorColumnToRootPersistentClass(RootClass rootClass, Ejb3DiscriminatorColumn discriminatorColumn, Map<String, Join> secondaryTables, PropertyHolder propertyHolder, MetadataBuildingContext context)

private static void
bindFetchProfile(FetchProfile fetchProfileAnnotation, MetadataBuildingContext context)

private static void
public static void
public static void
private static void
private static void
private static void
bindFilters(XClass annotatedClass, EntityBinder entityBinder, MetadataBuildingContext context)

private static void
bindFilters(XAnnotatedElement annotatedElement, EntityBinder entityBinder)

public static void
bindForeignKeyNameAndDefinition(SimpleValue value, XProperty property, ForeignKey fkOverride, JoinColumn joinColumn, JoinColumns joinColumns, MetadataBuildingContext context)

private static void
private static void
private static void
bindIdClass(String generatorType, String generatorName, PropertyData inferredData, PropertyData baseInferredData, Ejb3Column[] columns, PropertyHolder propertyHolder, boolean isComposite, AccessType propertyAccessor, EntityBinder entityBinder, boolean isEmbedded, boolean isIdentifierMapper, MetadataBuildingContext buildingContext, Map<XClass, InheritanceState> inheritanceStatePerClass)

private static void
bindJoinedTableAssociation(XProperty property, MetadataBuildingContext buildingContext, EntityBinder entityBinder, CollectionBinder collectionBinder, PropertyHolder propertyHolder, PropertyData inferredData, String mappedBy)

private static void
bindManyToOne(String cascadeStrategy, Ejb3JoinColumn[] columns, boolean optional, NotFoundAction notFoundAction, boolean cascadeOnDelete, XClass targetEntity, PropertyHolder propertyHolder, PropertyData inferredData, boolean unique, boolean isIdentifierMapper, boolean inSecondPass, PropertyBinder propertyBinder, MetadataBuildingContext context)

private static void
private static void
private static void
private static void
bindOneToOne(String cascadeStrategy, Ejb3JoinColumn[] joinColumns, boolean optional, FetchMode fetchMode, NotFoundAction notFoundAction, boolean cascadeOnDelete, XClass targetEntity, PropertyHolder propertyHolder, PropertyData inferredData, String mappedBy, boolean trueOneToOne, boolean isIdentifierMapper, boolean inSecondPass, PropertyBinder propertyBinder, MetadataBuildingContext context)

public static void
private static void
private static void
private static void
private static HashMap<String, IdentifierGeneratorDefinition>
private static IdentifierGeneratorDefinition
public static Map<XClass, InheritanceState>

Returns:

A map of InheritanceStates keyed against their XClass.
buildInheritanceStates
(List<XClass>
Order list of all annotated entities and their mapped superclasses
orderedClasses
,
MetadataBuildingContext buildingContext)

For the mapped entities build some temporary data-structure containing information about the inheritance status of a class.

private static void
checkFetchModeAgainstNotFound(String entity, String association, boolean hasNotFound, FetchType fetchType)

private static EnumSet<CascadeType>
public static Component
createComponent(PropertyHolder propertyHolder, PropertyData inferredData, boolean isComponentEmbedded, boolean isIdentifierMapper, MetadataBuildingContext context)

protected static void
private static SharedCacheMode
public static Component
fillComponent(PropertyHolder propertyHolder, PropertyData inferredData, AccessType propertyAccessor, boolean isNullable, EntityBinder entityBinder, boolean isComponentEmbedded, boolean isIdentifierMapper, boolean inSecondPass, MetadataBuildingContext buildingContext, Map<XClass, InheritanceState> inheritanceStatePerClass)

public static Component
fillComponent(PropertyHolder propertyHolder, PropertyData inferredData, PropertyData baseInferredData, AccessType propertyAccessor, boolean isNullable, EntityBinder entityBinder, boolean isComponentEmbedded, boolean isIdentifierMapper, boolean inSecondPass, MetadataBuildingContext buildingContext, Map<XClass, InheritanceState> inheritanceStatePerClass)

public static String
generatorType(GeneratedValue generatedValueAnn, final MetadataBuildingContext buildingContext, final XClass javaTypeXClass)

private static String
getCascadeStrategy(CascadeType[] ejbCascades, Cascade hibernateCascadeAnnotation, boolean orphanRemoval, boolean forcePersist)

public static FetchMode
private static PersistentClass
getSuperEntity(XClass clazzToProcess, Map<XClass, InheritanceState> inheritanceStatePerClass, MetadataBuildingContext context, InheritanceState inheritanceState)

private static PropertyData
getUniqueIdPropertyFromBaseClass(PropertyData inferredData, PropertyData baseInferredData, AccessType propertyAccessor, MetadataBuildingContext context)

private static boolean
public static boolean
private static boolean
isEntityClassType(XClass clazzToProcess, AnnotatedClassType classType)

private static boolean
private static boolean
isIdClassPkOfTheAssociatedEntity(InheritanceState.ElementsToProcess elementsToProcess, XClass compositeClass, PropertyData inferredData, PropertyData baseInferredData, AccessType propertyAccessor, Map<XClass, InheritanceState> inheritanceStatePerClass, MetadataBuildingContext context)

private static boolean
isNullable(JoinColumns joinColumns, JoinColumn joinColumn)

private static boolean
private static Ejb3JoinColumn[]
makeInheritanceJoinColumns(XClass clazzToProcess, MetadataBuildingContext context, InheritanceState inheritanceState, PersistentClass superEntity)

private static PersistentClass
makePersistentClass(InheritanceState inheritanceState, PersistentClass superEntity, MetadataBuildingContext metadataBuildingContext)

private static boolean
mapAsIdClass(Map<XClass, InheritanceState> inheritanceStatePerClass, InheritanceState inheritanceState, PersistentClass persistentClass, EntityBinder entityBinder, PropertyHolder propertyHolder, InheritanceState.ElementsToProcess elementsToProcess, Set<String> idPropertiesIfIdClass, MetadataBuildingContext context)

private static void
processElementAnnotations(PropertyHolder propertyHolder, Nullability nullability, PropertyData inferredData, HashMap<String, IdentifierGeneratorDefinition> classGenerators, EntityBinder entityBinder, boolean isIdentifierMapper, boolean isComponentEmbedded, boolean inSecondPass, MetadataBuildingContext context, Map<XClass, InheritanceState> inheritanceStatePerClass)

private static void
processId(PropertyHolder propertyHolder, PropertyData inferredData, SimpleValue idValue, HashMap<String, IdentifierGeneratorDefinition> classGenerators, boolean isIdentifierMapper, MetadataBuildingContext buildingContext)

private static void
processIdPropertiesIfNotAlready(Map<XClass, InheritanceState> inheritanceStatePerClass, MetadataBuildingContext context, PersistentClass persistentClass, EntityBinder entityBinder, PropertyHolder propertyHolder, HashMap<String, IdentifierGeneratorDefinition> classGenerators, InheritanceState.ElementsToProcess elementsToProcess, boolean subclassAndSingleTableStrategy, Set<String> idPropertiesIfIdClass)

private static Ejb3DiscriminatorColumn
processJoinedDiscriminatorProperties(XClass clazzToProcess, MetadataBuildingContext context, InheritanceState inheritanceState, EntityBinder entityBinder)

Process all discriminator-related metadata per rules for "joined" inheritance

private static Ejb3DiscriminatorColumn
processSingleTableDiscriminatorProperties(XClass clazzToProcess, MetadataBuildingContext context, InheritanceState inheritanceState, EntityBinder entityBinder)

Process all discriminator-related metadata per rules for "single table" inheritance

private static void
private static void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait