org.tynamo.hibernate.decorators
Class HibernateDescriptorDecorator

java.lang.Object
  extended by org.tynamo.hibernate.decorators.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)
           
 
Method Summary
 TynamoClassDescriptor decorate(TynamoClassDescriptor descriptor)
           
 TynamoPropertyDescriptor decorateAssociationDescriptor(Class beanType, org.hibernate.mapping.Property mappingProperty, TynamoPropertyDescriptor descriptor)
           
protected  TynamoPropertyDescriptor decoratePropertyDescriptor(Class beanType, org.hibernate.mapping.Property mappingProperty, TynamoPropertyDescriptor descriptor)
           
protected  org.hibernate.mapping.Collection findCollectionMapping(Class type, String name)
           
protected  org.hibernate.metadata.ClassMetadata findMetadata(Class type)
          Find the Hibernate metadata for this type, traversing up the hierarchy to supertypes if necessary
 String getIdentifierProperty(Class type)
           
protected  org.hibernate.mapping.PersistentClass getMapping(Class type)
           
protected  boolean notAHibernateProperty(org.hibernate.metadata.ClassMetadata classMetaData, TynamoPropertyDescriptor descriptor)
           
protected  boolean notAHibernateProperty(org.hibernate.mapping.Component componentMapping, TynamoPropertyDescriptor propertyDescriptor)
          Checks to see if a property descriptor is in a component mapping
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

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)
Method Detail

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-2013. All Rights Reserved.