org.tynamo.hibernate.services
Class HibernateDescriptorDecorator
java.lang.Object
org.tynamo.hibernate.services.HibernateDescriptorDecorator
- All Implemented Interfaces:
- DescriptorDecorator
public class HibernateDescriptorDecorator
- extends Object
- implements DescriptorDecorator
This decorator will add metadata information. It will replace simple
reflection based TynamoPropertyTynamoPropertyDescriptors with appropriate
Hibernate descriptors
Background... TynamoDescriptorService operates one
ReflectorDescriptorFactory - TynamoDescriptorService iterates/scans all class
types encountered - ReflectorDescriptorFactory allocates property descriptor
instance for the class type - TynamoDescriptorService decorates property
descriptor by calling this module HibernateDescriptorDecorator -
HibernateDescriptorDecorator caches the decorated property descriptor into a
decorated descriptor list - decorated descriptor list gets populated into
class descriptor for class type - TynamoDescriptorService finally populates
decorated class descriptor and it's aggregated list of decorated property
descriptors into it's own list/cache of referenced class descriptors
- See Also:
TynamoPropertyDescriptor,
ObjectReferenceDescriptor,
CollectionDescriptor,
EmbeddedDescriptor
|
Constructor Summary |
HibernateDescriptorDecorator(org.apache.tapestry5.hibernate.HibernateSessionSource hibernateSessionSource,
DescriptorFactory descriptorFactory,
int largeColumnLength,
boolean ignoreNonHibernateTypes,
org.slf4j.Logger logger)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
HibernateDescriptorDecorator
public HibernateDescriptorDecorator(org.apache.tapestry5.hibernate.HibernateSessionSource hibernateSessionSource,
DescriptorFactory descriptorFactory,
@Inject@Symbol(value="tynamo.hibernate.large-column-length")
int largeColumnLength,
@Inject@Symbol(value="tynamo.hibernate.ignore-non-hibernate-types")
boolean ignoreNonHibernateTypes,
org.slf4j.Logger logger)
decorate
public TynamoClassDescriptor decorate(TynamoClassDescriptor descriptor)
- Specified by:
decorate in interface DescriptorDecorator
decoratePropertyDescriptor
protected TynamoPropertyDescriptor decoratePropertyDescriptor(Class beanType,
org.hibernate.mapping.Property mappingProperty,
TynamoPropertyDescriptor descriptor)
findMetadata
protected org.hibernate.metadata.ClassMetadata findMetadata(Class type)
throws MetadataNotFoundException
- Find the Hibernate metadata for this type, traversing up the hierarchy to
supertypes if necessary
- Parameters:
type -
- Returns:
-
- Throws:
MetadataNotFoundException
notAHibernateProperty
protected boolean notAHibernateProperty(org.hibernate.mapping.Component componentMapping,
TynamoPropertyDescriptor propertyDescriptor)
- Checks to see if a property descriptor is in a component mapping
- Parameters:
componentMapping - propertyDescriptor -
- Returns:
- true if the propertyDescriptor property is in componentMapping
notAHibernateProperty
protected boolean notAHibernateProperty(org.hibernate.metadata.ClassMetadata classMetaData,
TynamoPropertyDescriptor descriptor)
- Parameters:
classMetaData - descriptor -
- Returns:
getMapping
protected org.hibernate.mapping.PersistentClass getMapping(Class type)
- Parameters:
type -
- Returns:
decorateAssociationDescriptor
public TynamoPropertyDescriptor decorateAssociationDescriptor(Class beanType,
org.hibernate.mapping.Property mappingProperty,
TynamoPropertyDescriptor descriptor)
findCollectionMapping
protected org.hibernate.mapping.Collection findCollectionMapping(Class type,
String name)
getIdentifierProperty
public String getIdentifierProperty(Class type)
Copyright © 2004-2012. All Rights Reserved.