## org.codehaus.groovy.grails.commons
Class DefaultGrailsDomainClassProperty

    java.lang.Object
      org.codehaus.groovy.grails.commons.DefaultGrailsDomainClassProperty

All Implemented Interfaces:
  GrailsDomainClassProperty

    public class DefaultGrailsDomainClassProperty

extends Object
implements GrailsDomainClassProperty

A class that represents a property of a domain class and contains meta information about the properties relationships, naming conventions and type

Since:
  0.1 Created: 05-Jul-2005
Author:
  Graeme Rocher

Field Summary

Fields inherited from interface org.codehaus.groovy.grails.commons.GrailsDomainClassProperty
`BELONGS_TO, CLASS, CONSTRAINTS, DATE_CREATED, EMBEDDED, EVANESCENT, FETCH_EAGER, FETCH_LAZY, FETCH_MODE, HAS_MANY, HAS_ONE, IDENTITY, LAST_UPDATED, MAPPED_BY, MAPPING, MAPPING_STRATEGY, META_CLASS, NAMED_QUERIES, RELATES_TO_MANY, SORT, TRANSIENT, VERSION`

Constructor Summary
`DefaultGrailsDomainClassProperty(GrailsDomainClass domainClass, PropertyDescriptor descriptor)`

Method Summary
`boolean` `equals(Object o)` Overriddent equals to take into account inherited properties e.g. childClass.propertyName is equal to parentClass.propertyName if the types match and childClass.property.isInherited
`GrailsDomainClass` `getComponent()` If #isEmbedded returns true then this method can be called to obtain a reference to the embedded component, which implements the GrailsDomainClass interface
`GrailsDomainClass` `getDomainClass()` Returns the parent domain class of the property instance
`int` `getFetchMode()` Returns the configured fetch mode for the property
`String` `getFieldName()` Returns the domain field name for this property
`String` `getName()` Returns the name of the property
`String` `getNaturalName()`
`GrailsDomainClassProperty` `getOtherSide()` Returns the other side of a bidirectional association
`GrailsDomainClass` `getReferencedDomainClass()` Returns the GrailsDomainClass of a relationship property or null if the property is not a relationship property
`String` `getReferencedPropertyName()` Retrieves the name of property referenced by this property if it is an association and is known, otherwise null
`Class` `getReferencedPropertyType()` Returns the referenced property type.
`Class` `getType()` Returns the type for the domain class
`String` `getTypePropertyName()` Returns the class type as a property name representation
`boolean` `isAssociation()` Returns true if this property is a relationship property
`boolean` `isBasicCollectionType()` Return whether this is a collection of basic types like String, Integer etc.
`boolean` `isBidirectional()` Returns true if the property is a bi-directional relationship
`boolean` `isCircular()` Whether the relationship is cirucular
`boolean` `isEmbedded()` Returns true if this propert is an embedded component
`boolean` `isEnum()` Returns true if this properties type is an enum
`boolean` `isHasOne()`
`boolean` `isIdentity()` Returns true of the property is an identifier
`boolean` `isInherited()` Whether the property is inherited from a super class
`boolean` `isManyToMany()` Returns true if the property is a many-to-many relationship
`boolean` `isManyToOne()` Returns true if the property is a many-to-one relationship
`boolean` `isOneToMany()` Returns true if the property is a one-to-many relationship
`boolean` `isOneToOne()` Returns true if the property is a one-to-one relationship
`boolean` `isOptional()` Returns true if the property is required
`boolean` `isOwningSide()` Whether this side of the association is the "owning" side
`boolean` `isPersistent()` Returns true if the domain class property is a persistent property
`void` `setBasicCollectionType(boolean b)`
`protected void` `setBidirectional(boolean bidirectional)` Sets whether the relationship is bidirectional or not
`void` `setEmbedded(boolean isEmbedded)`
`protected void` `setHasOne(boolean isHasOne)` Set whether the foreign key is stored in the parent or child in a one-to-one
`protected void` `setManyToMany(boolean manyToMany)`
`protected void` `setManyToOne(boolean manyToOne)`
`protected void` `setOneToMany(boolean oneToMany)`
`protected void` `setOneToOne(boolean oneToOne)`
`void` `setOtherSide(GrailsDomainClassProperty property)` Sets the other side of an associative property
`void` `setOwningSide(boolean b)`
`protected void` `setPersistant(boolean persistant)`
`void` `setReferencedDomainClass(GrailsDomainClass referencedDomainClass)` Sets the references domain class on the property
`protected void` `setReferencedPropertyType(Class referencedPropertyType)` Sets the referenced property type of this property
`void` `setReferencePropertyName(String name)`
`String` `toString()`

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

Constructor Detail

### DefaultGrailsDomainClassProperty

    public DefaultGrailsDomainClassProperty(GrailsDomainClass domainClass,
                                            PropertyDescriptor descriptor)

Method Detail

### getName

    public String getName()

  Description copied from interface: `GrailsDomainClassProperty`
  Returns the name of the property

  Specified by:
    `getName` in interface `GrailsDomainClassProperty`
  Returns:
    The property name

### getType

    public Class getType()

  Description copied from interface: `GrailsDomainClassProperty`
  Returns the type for the domain class

  Specified by:
    `getType` in interface `GrailsDomainClassProperty`
  Returns:
    The property type

### isPersistent

    public boolean isPersistent()

  Description copied from interface: `GrailsDomainClassProperty`
  Returns true if the domain class property is a persistent property

  Specified by:
    `isPersistent` in interface `GrailsDomainClassProperty`
  Returns:
    Whether the property is persistent

### isOptional

    public boolean isOptional()

  Description copied from interface: `GrailsDomainClassProperty`
  Returns true if the property is required

  Specified by:
    `isOptional` in interface `GrailsDomainClassProperty`
  Returns:
    Whether the property is optional

### isIdentity

    public boolean isIdentity()

  Description copied from interface: `GrailsDomainClassProperty`
  Returns true of the property is an identifier

  Specified by:
    `isIdentity` in interface `GrailsDomainClassProperty`
  Returns:
    Whether the property is the identifier

### isOneToMany

    public boolean isOneToMany()

  Description copied from interface: `GrailsDomainClassProperty`
  Returns true if the property is a one-to-many relationship

  Specified by:
    `isOneToMany` in interface `GrailsDomainClassProperty`
  Returns:
    Whether it is a oneToMany

### isManyToOne

    public boolean isManyToOne()

  Description copied from interface: `GrailsDomainClassProperty`
  Returns true if the property is a many-to-one relationship

  Specified by:
    `isManyToOne` in interface `GrailsDomainClassProperty`
  Returns:
    Whether it is a manyToOne

### getFieldName

    public String getFieldName()

  Description copied from interface: `GrailsDomainClassProperty`
  Returns the domain field name for this property

  Specified by:
    `getFieldName` in interface `GrailsDomainClassProperty`

### isOneToOne

    public boolean isOneToOne()

  Description copied from interface: `GrailsDomainClassProperty`
  Returns true if the property is a one-to-one relationship

  Specified by:
    `isOneToOne` in interface `GrailsDomainClassProperty`
  Returns:
    True if it is a one-to-one relationship

### getDomainClass

    public GrailsDomainClass getDomainClass()

  Description copied from interface: `GrailsDomainClassProperty`
  Returns the parent domain class of the property instance

  Specified by:
    `getDomainClass` in interface `GrailsDomainClassProperty`
  Returns:
    The parent domain class

### isManyToMany

    public boolean isManyToMany()

  Description copied from interface: `GrailsDomainClassProperty`
  Returns true if the property is a many-to-many relationship

  Specified by:
    `isManyToMany` in interface `GrailsDomainClassProperty`
  Returns:
    True if it is a manyToMany

### setManyToMany

    protected void setManyToMany(boolean manyToMany)

  Parameters:
    `manyToMany` - The manyToMany to set.

### setOneToMany

    protected void setOneToMany(boolean oneToMany)

  Parameters:
    `oneToMany` - The oneToMany to set.

### setManyToOne

    protected void setManyToOne(boolean manyToOne)

  Parameters:
    `manyToOne` - The manyToOne to set.

### setOneToOne

    protected void setOneToOne(boolean oneToOne)

  Parameters:
    `oneToOne` - The oneToOne to set.

### setHasOne

    protected void setHasOne(boolean isHasOne)

  Set whether the foreign key is stored in the parent or child in a one-to-one

  Parameters:
    `isHasOne` - True if its stored in the parent

### isHasOne

    public boolean isHasOne()

  Specified by:
    `isHasOne` in interface `GrailsDomainClassProperty`
  Returns:
    True if the foreign key in a one-to-one is stored in the parent

### setPersistant

    protected void setPersistant(boolean persistant)

  Parameters:
    `persistant` - The persistant to set.

### setBidirectional

    protected void setBidirectional(boolean bidirectional)

  Sets whether the relationship is bidirectional or not

### getTypePropertyName

    public String getTypePropertyName()

  Description copied from interface: `GrailsDomainClassProperty`
  Returns the class type as a property name representation

  Specified by:
    `getTypePropertyName` in interface `GrailsDomainClassProperty`
  Returns:
    The property name representation

### getReferencedPropertyType

    public Class getReferencedPropertyType()

  Description copied from interface: `GrailsDomainClassProperty`

  Returns the referenced property type. This differs from getType() in that in the case of an Association it will return the type of the elements contained within the Collection, otherwise it will delegate to getType();

  Specified by:
    `getReferencedPropertyType` in interface `GrailsDomainClassProperty`
  Returns:
    The referenced type

### isBidirectional

    public boolean isBidirectional()

  Description copied from interface: `GrailsDomainClassProperty`
  Returns true if the property is a bi-directional relationship

  Specified by:
    `isBidirectional` in interface `GrailsDomainClassProperty`
  Returns:
    A boolean value

### setReferencedPropertyType

    protected void setReferencedPropertyType(Class referencedPropertyType)

  Sets the referenced property type of this property

### getReferencedDomainClass

    public GrailsDomainClass getReferencedDomainClass()

  Description copied from interface: `GrailsDomainClassProperty`
  Returns the GrailsDomainClass of a relationship property or null if the property is not a relationship property

  Specified by:
    `getReferencedDomainClass` in interface `GrailsDomainClassProperty`
  Returns:
    The GrailsDomainClass

### setReferencedDomainClass

    public void setReferencedDomainClass(GrailsDomainClass referencedDomainClass)

  Description copied from interface: `GrailsDomainClassProperty`
  Sets the references domain class on the property

  Specified by:
    `setReferencedDomainClass` in interface `GrailsDomainClassProperty`

### isAssociation

    public boolean isAssociation()

  Description copied from interface: `GrailsDomainClassProperty`
  Returns true if this property is a relationship property

  Specified by:
    `isAssociation` in interface `GrailsDomainClassProperty`
  Returns:
    True if it is an associative property

### isEnum

    public boolean isEnum()

  Description copied from interface: `GrailsDomainClassProperty`
  Returns true if this properties type is an enum

  Specified by:
    `isEnum` in interface `GrailsDomainClassProperty`
  Returns:
    True if it is

### getNaturalName

    public String getNaturalName()

  Specified by:
    `getNaturalName` in interface `GrailsDomainClassProperty`
  Returns:
    The natural name representation of the property (eg. 'lastName' becomes 'Last Name'

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

### getOtherSide

    public GrailsDomainClassProperty getOtherSide()

  Description copied from interface: `GrailsDomainClassProperty`

  Returns the other side of a bidirectional association

  Specified by:
    `getOtherSide` in interface `GrailsDomainClassProperty`
  Returns:
    The other side of the relationship or null if not known

### setOtherSide

    public void setOtherSide(GrailsDomainClassProperty property)

  Description copied from interface: `GrailsDomainClassProperty`
  Sets the other side of an associative property

  Specified by:
    `setOtherSide` in interface `GrailsDomainClassProperty`

### isInherited

    public boolean isInherited()

  Description copied from interface: `GrailsDomainClassProperty`
  Whether the property is inherited from a super class

  Specified by:
    `isInherited` in interface `GrailsDomainClassProperty`
  Returns:
    True if its inherited

### getFetchMode

    public int getFetchMode()

  Description copied from interface: `GrailsDomainClassProperty`
  Returns the configured fetch mode for the property

  Specified by:
    `getFetchMode` in interface `GrailsDomainClassProperty`

### isOwningSide

    public boolean isOwningSide()

  Description copied from interface: `GrailsDomainClassProperty`
  Whether this side of the association is the "owning" side

  Specified by:
    `isOwningSide` in interface `GrailsDomainClassProperty`
  Returns:
    True if it is the owning side

### setOwningSide

    public void setOwningSide(boolean b)

  Specified by:
    `setOwningSide` in interface `GrailsDomainClassProperty`

### isCircular

    public boolean isCircular()

  Description copied from interface: `GrailsDomainClassProperty`
  Whether the relationship is cirucular

  Specified by:
    `isCircular` in interface `GrailsDomainClassProperty`
  Returns:
    True if it is

### setReferencePropertyName

    public void setReferencePropertyName(String name)

### getReferencedPropertyName

    public String getReferencedPropertyName()

  Description copied from interface: `GrailsDomainClassProperty`
  Retrieves the name of property referenced by this property if it is an association and is known, otherwise null

  Specified by:
    `getReferencedPropertyName` in interface `GrailsDomainClassProperty`
  Returns:
    The name of the prop

### isEmbedded

    public boolean isEmbedded()

  Description copied from interface: `GrailsDomainClassProperty`
  Returns true if this propert is an embedded component

  Specified by:
    `isEmbedded` in interface `GrailsDomainClassProperty`
  Returns:
    True if it is, false otherwise

### getComponent

    public GrailsDomainClass getComponent()

  Description copied from interface: `GrailsDomainClassProperty`
  If #isEmbedded returns true then this method can be called to obtain a reference to the embedded component, which implements the GrailsDomainClass interface

  Specified by:
    `getComponent` in interface `GrailsDomainClassProperty`
  Returns:
    The component or null if it is not an embedded component
  See Also:
    `GrailsDomainClass`, `GrailsDomainClassProperty.isEmbedded()`

### setEmbedded

    public void setEmbedded(boolean isEmbedded)

### equals

    public boolean equals(Object o)

  Overriddent equals to take into account inherited properties e.g. childClass.propertyName is equal to parentClass.propertyName if the types match and childClass.property.isInherited

  Overrides:
    `equals` in class `Object`
  Parameters:
    `o` - the Object to compare this property to
  Returns:
    boolean indicating equality of the two objects

### setBasicCollectionType

    public void setBasicCollectionType(boolean b)

### isBasicCollectionType

    public boolean isBasicCollectionType()

  Description copied from interface: `GrailsDomainClassProperty`
  Return whether this is a collection of basic types like String, Integer etc.

  Specified by:
    `isBasicCollectionType` in interface `GrailsDomainClassProperty`
  Returns:
    True if it is a collection of basic types

Copyright (c) 2005-2009 The Grails project