Class ObjAttribute

java.lang.Object
org.apache.cayenne.map.Attribute
org.apache.cayenne.map.ObjAttribute
All Implemented Interfaces:
Serializable, ConfigurationNode, CayenneMapEntry, XMLSerializable
Direct Known Subclasses:
EmbeddedAttribute

public class ObjAttribute
extends Attribute
implements ConfigurationNode
An ObjAttribute is a mapping descriptor of a Java class property.
See Also:
Serialized Form
  • Field Details

    • type

      protected String type
    • usedForLocking

      protected boolean usedForLocking
    • dbAttributePath

      protected String dbAttributePath
  • Constructor Details

    • ObjAttribute

      public ObjAttribute()
    • ObjAttribute

      public ObjAttribute​(String name)
    • ObjAttribute

      public ObjAttribute​(String name, String type, ObjEntity entity)
    • ObjAttribute

      public ObjAttribute​(ObjAttribute attribute)
      Creates a clone of an ObjAttribute argument.
      Since:
      3.0
  • Method Details

    • getEntity

      public ObjEntity getEntity()
      Description copied from class: Attribute
      Returns parent entity that holds this attribute.
      Overrides:
      getEntity in class Attribute
    • acceptVisitor

      public <T> T acceptVisitor​(ConfigurationNodeVisitor<T> visitor)
      Specified by:
      acceptVisitor in interface ConfigurationNode
      Since:
      3.1
    • getJavaClass

      public Class<?> getJavaClass()
      Returns Java class of an object property described by this attribute. Wraps any thrown exceptions into CayenneRuntimeException.
    • encodeAsXML

      public void encodeAsXML​(XMLEncoder encoder, ConfigurationNodeVisitor delegate)
      Prints itself as XML to the provided XMLEncoder.
      Specified by:
      encodeAsXML in interface XMLSerializable
      Specified by:
      encodeAsXML in class Attribute
      Since:
      1.1
    • getType

      public String getType()
      Returns fully qualified Java class name of the object property represented by this attribute.
    • setType

      public void setType​(String type)
      Sets the type of the data object property. Type is expected to be a fully qualified Java class name.
    • isPrimaryKey

      public boolean isPrimaryKey()
      Since:
      3.0
    • isUsedForLocking

      public boolean isUsedForLocking()
      Returns whether this attribute should be used for locking.
      Since:
      1.1
    • setUsedForLocking

      public void setUsedForLocking​(boolean usedForLocking)
      Sets whether this attribute should be used for locking.
      Since:
      1.1
    • getDbAttribute

      public DbAttribute getDbAttribute()
      Returns a DbAttribute mapped by this ObjAttribute.
    • isInherited

      public boolean isInherited()
      Returns true if attribute inherited from a super entity.
      Since:
      3.0
    • getDbPathIterator

      public Iterator<CayenneMapEntry> getDbPathIterator()
    • getDbPathIterator

      public Iterator<CayenneMapEntry> getDbPathIterator​(ObjEntity entity)
    • getDbAttributeName

      public String getDbAttributeName()
      Returns the the name of the mapped DbAttribute. This value is the same as "dbAttributePath" for regular attributes mapped to columns. It is equql to the last path component for the flattened attributes.
    • setDbAttributePath

      public void setDbAttributePath​(String dbAttributePath)
    • getDbAttributePath

      public String getDbAttributePath()
      Returns a dot-separated path that starts in the root DbEntity that maps to this attribute's ObjEntity and spans zero or more relationships, always ending in a DbAttribute name.
    • isFlattened

      public boolean isFlattened()
      Returns whether this attribute is "flattened", meaning that it points to a column from an entity other than the DbEntity mapped to the parent ObjEntity.
      Since:
      3.0
    • isMandatory

      public boolean isMandatory()
      Returns whether this attribute is mandatory
      See Also:
      DbAttribute.isMandatory()
    • getMaxLength

      public int getMaxLength()
      Returns this attribute's maximum allowed length
      See Also:
      DbAttribute.getMaxLength()
    • getClientAttribute

      public ObjAttribute getClientAttribute()
      Returns an ObjAttribute stripped of any server-side information, such as DbAttribute mapping.
      Since:
      1.2
    • updateDbAttributePath

      public void updateDbAttributePath()
      Updates DbAttributePath for this ObjAttribute
    • toString

      public String toString()
      Overrides:
      toString in class Attribute