org.apache.cayenne.map

## Class Embeddable

- java.lang.Object
- - org.apache.cayenne.map.Embeddable

- All Implemented Interfaces:
    Serializable, ConfigurationNode, XMLSerializable

      public class Embeddable
      extends Object
      implements ConfigurationNode, XMLSerializable, Serializable

  A mapping descriptor of an embeddable class. Embeddable is a persistent class that doesn't have its own identity and is embedded in other persistent classes. It can be viewed as a custom type mapped to one or more database columns. Embeddable mapping can include optional default column names that can be overriden by the owning entity.
  Since:
    3.0
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected SortedMap<String,EmbeddableAttribute>` | `attributes`
    `protected String` | `className`
    `protected DataMap` | `dataMap`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Embeddable()`
    `Embeddable(String className)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `<T> T` | `acceptVisitor(ConfigurationNodeVisitor<T> visitor)`
    `void` | `addAttribute(EmbeddableAttribute attribute)` Adds new embeddable attribute to the entity, setting its parent embeddable to be this object.
    `void` | `encodeAsXML(XMLEncoder encoder)` `XMLSerializable` implementation that generates XML for embeddable.
    `EmbeddableAttribute` | `getAttribute(String name)`
    `EmbeddableAttribute` | `getAttributeForDbPath(String dbPath)` Returns EmbeddableAttribute of this Embeddable that maps to `dbAttribute` parameter.
    `SortedMap<String,EmbeddableAttribute>` | `getAttributeMap()` Returns an unmodifiable sorted map of embeddable attributes.
    `Collection<EmbeddableAttribute>` | `getAttributes()` Returns an unmodifiable collection of embeddable attributes.
    `String` | `getClassName()`
    `DataMap` | `getDataMap()`
    `Class<?>` | `getJavaClass()` Deprecated. since 4.0 this method based on statically defined class loading algorithm is not going to work in environments like OSGi. `AdhocObjectFactory` should be used as it can provide the environment-specific class loading policy.
    `void` | `removeAttribute(String name)`
    `void` | `setClassName(String className)`
    `void` | `setDataMap(DataMap dataMap)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### className

          protected String className

    - #### attributes

          protected SortedMap<String,EmbeddableAttribute> attributes

    - #### dataMap

          protected DataMap dataMap

  - ### Constructor Detail

    - #### Embeddable

          public Embeddable()

    - #### Embeddable

          public Embeddable(String className)

  - ### Method Detail

    - #### acceptVisitor

          public <T> T acceptVisitor(ConfigurationNodeVisitor<T> visitor)

      Specified by:
        `acceptVisitor` in interface `ConfigurationNode`
      Since:
        3.1

    - #### getDataMap

          public DataMap getDataMap()

    - #### setDataMap

          public void setDataMap(DataMap dataMap)

    - #### getJavaClass

          @Deprecated
          public Class<?> getJavaClass()

      Deprecated. since 4.0 this method based on statically defined class loading algorithm is not going to work in environments like OSGi. `AdhocObjectFactory` should be used as it can provide the environment-specific class loading policy.
      Returns Java class of the embeddable.

    - #### getAttributeForDbPath

          public EmbeddableAttribute getAttributeForDbPath(String dbPath)

      Returns EmbeddableAttribute of this Embeddable that maps to `dbAttribute` parameter. Returns null if no such attribute is found.

    - #### getAttributeMap

          public SortedMap<String,EmbeddableAttribute> getAttributeMap()

      Returns an unmodifiable sorted map of embeddable attributes.

    - #### getAttributes

          public Collection<EmbeddableAttribute> getAttributes()

      Returns an unmodifiable collection of embeddable attributes.

    - #### addAttribute

          public void addAttribute(EmbeddableAttribute attribute)

      Adds new embeddable attribute to the entity, setting its parent embeddable to be this object. If attribute has no name, IllegalArgumentException is thrown.

    - #### getAttribute

          public EmbeddableAttribute getAttribute(String name)

    - #### removeAttribute

          public void removeAttribute(String name)

    - #### getClassName

          public String getClassName()

    - #### setClassName

          public void setClassName(String className)

    - #### encodeAsXML

          public void encodeAsXML(XMLEncoder encoder)

      `XMLSerializable` implementation that generates XML for embeddable.
      Specified by:
        `encodeAsXML` in interface `XMLSerializable`

Copyright © 2001–2023 Apache Cayenne. All rights reserved.