Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.codehaus.groovy.grails.orm.hibernate.cfg
Class GrailsDomainBinder

    java.lang.Object
      org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder

    public final class GrailsDomainBinder

extends Object

Handles the binding Grails domain classes and properties to the Hibernate runtime meta model. Based on the HbmBinder code in Hibernate core and influenced by AnnotationsBinder.

Since:
  0.1
Author:
  Graeme Rocher

Nested Class Summary
`(package private) static class` | `GrailsDomainBinder.CollectionType` A Collection type, for the moment only Set is supported
`(package private) static class` | `GrailsDomainBinder.GrailsCollectionSecondPass` Second pass class for grails relationships.
`(package private) static class` | `GrailsDomainBinder.ListSecondPass`
`(package private) static class` | `GrailsDomainBinder.MapSecondPass`

Field Summary
`static org.hibernate.cfg.NamingStrategy` | `namingStrategy` Overrideable naming strategy.

Constructor Summary
`GrailsDomainBinder()`

Method Summary
`static void` | `bindClass(GrailsDomainClass domainClass, org.hibernate.cfg.Mappings mappings)` Binds a Grails domain class to the Hibernate runtime meta model
`protected static void` | `bindNumericColumnConstraints(org.hibernate.mapping.Column column, ConstrainedProperty constrainedProperty)` Interrogates the specified constraints looking for any constraints that would limit the precision and/or scale of the property's value.
`static void` | `bindRoot(GrailsDomainClass domainClass, org.hibernate.cfg.Mappings mappings)` Binds a root class (one with no super classes) to the runtime meta model based on the supplied Grails domain class
`protected static void` | `bindStringColumnConstraints(org.hibernate.mapping.Column column, ConstrainedProperty constrainedProperty)` Interrogates the specified constraints looking for any constraints that would limit the length of the property's value.
`static void` | `configureNamingStrategy(Object strategy)` Override the default naming strategy given a Class or a full class name.
`protected static void` | `createClassProperties(GrailsDomainClass domainClass, org.hibernate.mapping.PersistentClass persistentClass, org.hibernate.cfg.Mappings mappings)` Creates and binds the properties for the specified Grails domain class and PersistantClass and binds them to the Hibernate runtime meta model
`static org.codehaus.groovy.grails.orm.hibernate.cfg.Mapping` | `evaluateMapping(GrailsDomainClass domainClass)` Evaluates a Mapping object from the domain class if it has a mapping closure
`static org.codehaus.groovy.grails.orm.hibernate.cfg.Mapping` | `evaluateMapping(GrailsDomainClass domainClass, groovy.lang.Closure defaultMapping)`
`static org.codehaus.groovy.grails.orm.hibernate.cfg.Mapping` | `getMapping(Class<?> theClass)` Obtains a mapping object for the given domain class nam
`static org.codehaus.groovy.grails.orm.hibernate.cfg.Mapping` | `getMapping(GrailsDomainClass domainClass)` Obtains a mapping object for the given domain class nam
`static org.codehaus.groovy.grails.orm.hibernate.cfg.PropertyConfig` | `getPropertyConfig(GrailsDomainClassProperty property)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### namingStrategy

    public static org.hibernate.cfg.NamingStrategy namingStrategy

  Overrideable naming strategy. Defaults to `ImprovedNamingStrategy` but can be configured in DataSource.groovy via `hibernate.naming_strategy = ...`.

Constructor Detail

### GrailsDomainBinder

    public GrailsDomainBinder()

Method Detail

### configureNamingStrategy

    public static void configureNamingStrategy(Object strategy)
                                        throws ClassNotFoundException,
                                               InstantiationException,
                                               IllegalAccessException

  Override the default naming strategy given a Class or a full class name.

  Parameters:
    `strategy` - the class or name
  Throws:
    `ClassNotFoundException`
    `InstantiationException`
    `IllegalAccessException`

### getPropertyConfig

    public static org.codehaus.groovy.grails.orm.hibernate.cfg.PropertyConfig getPropertyConfig(GrailsDomainClassProperty property)

### bindClass

    public static void bindClass(GrailsDomainClass domainClass,
                                 org.hibernate.cfg.Mappings mappings)
                          throws org.hibernate.MappingException

  Binds a Grails domain class to the Hibernate runtime meta model

  Parameters:
    `domainClass` - The domain class to bind
    `mappings` - The existing mappings
  Throws:
    `org.hibernate.MappingException` - Thrown if the domain class uses inheritance which is not supported

### evaluateMapping

    public static org.codehaus.groovy.grails.orm.hibernate.cfg.Mapping evaluateMapping(GrailsDomainClass domainClass)

  Evaluates a Mapping object from the domain class if it has a mapping closure

  Parameters:
    `domainClass` - The domain class
  Returns:
    the mapping

### evaluateMapping

    public static org.codehaus.groovy.grails.orm.hibernate.cfg.Mapping evaluateMapping(GrailsDomainClass domainClass,
                                                                                       groovy.lang.Closure defaultMapping)

### getMapping

    public static org.codehaus.groovy.grails.orm.hibernate.cfg.Mapping getMapping(Class<?> theClass)

  Obtains a mapping object for the given domain class nam

  Parameters:
    `theClass` - The domain class in question
  Returns:
    A Mapping object or null

### getMapping

    public static org.codehaus.groovy.grails.orm.hibernate.cfg.Mapping getMapping(GrailsDomainClass domainClass)

  Obtains a mapping object for the given domain class nam

  Parameters:
    `domainClass` - The domain class in question
  Returns:
    A Mapping object or null

### bindRoot

    public static void bindRoot(GrailsDomainClass domainClass,
                                org.hibernate.cfg.Mappings mappings)

  Binds a root class (one with no super classes) to the runtime meta model based on the supplied Grails domain class

  Parameters:
    `domainClass` - The Grails domain class
    `mappings` - The Hibernate Mappings object

### createClassProperties

    protected static void createClassProperties(GrailsDomainClass domainClass,
                                                org.hibernate.mapping.PersistentClass persistentClass,
                                                org.hibernate.cfg.Mappings mappings)

  Creates and binds the properties for the specified Grails domain class and PersistantClass and binds them to the Hibernate runtime meta model

  Parameters:
    `domainClass` - The Grails domain class
    `persistentClass` - The Hibernate PersistentClass instance
    `mappings` - The Hibernate Mappings instance

### bindStringColumnConstraints

    protected static void bindStringColumnConstraints(org.hibernate.mapping.Column column,
                                                      ConstrainedProperty constrainedProperty)

  Interrogates the specified constraints looking for any constraints that would limit the length of the property's value. If such constraints exist, this method adjusts the length of the column accordingly.

  Parameters:
    `column` - the column that corresponds to the property
    `constrainedProperty` - the property's constraints

### bindNumericColumnConstraints

    protected static void bindNumericColumnConstraints(org.hibernate.mapping.Column column,
                                                       ConstrainedProperty constrainedProperty)

  Interrogates the specified constraints looking for any constraints that would limit the precision and/or scale of the property's value. If such constraints exist, this method adjusts the precision and/or scale of the column accordingly.

  Parameters:
    `column` - the column that corresponds to the property
    `constrainedProperty` - the property's constraints

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD