Package org.datanucleus.metadata
Class EmbeddedMetaData
- java.lang.Object
-
- org.datanucleus.metadata.MetaData
-
- org.datanucleus.metadata.EmbeddedMetaData
-
- All Implemented Interfaces:
Serializable
public class EmbeddedMetaData extends MetaData
This element specifies the mapping for an embedded type. It contains multiple field elements, one for each field in the type.The null-indicator-column optionally identifies the name of the column used to indicate whether the embedded instance is null. By default, if the value of this column is null, then the embedded instance is null. This column might be mapped to a field of the embedded instance but might be a synthetic column for the sole purpose of indicating a null reference. The null-indicator-value specifies the value to indicate that the embedded instance is null. This is only used for non-nullable columns. If null-indicator-column is omitted, then the embedded instance is assumed always to exist.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected DiscriminatorMetaData
discriminatorMetaData
Discriminator for use when embedding objects with inheritance.protected AbstractMemberMetaData[]
memberMetaData
protected List<AbstractMemberMetaData>
members
Fields/properties of the embedded object.protected String
nullIndicatorColumn
Name of a column used for determining if the embedded object is nullprotected String
nullIndicatorValue
Value in the null column indicating that the embedded object is nullprotected String
ownerMember
Name of the field/property in the embedded object that refers to the owner (bidirectional relation).-
Fields inherited from class org.datanucleus.metadata.MetaData
EXTENSION_CLASS_CREATETIMESTAMP, EXTENSION_CLASS_CREATETIMESTAMP_COLUMN_NAME, EXTENSION_CLASS_CREATEUSER, EXTENSION_CLASS_CREATEUSER_COLUMN_LENGTH, EXTENSION_CLASS_CREATEUSER_COLUMN_NAME, EXTENSION_CLASS_MULTITENANCY_COLUMN_LENGTH, EXTENSION_CLASS_MULTITENANCY_COLUMN_NAME, EXTENSION_CLASS_MULTITENANCY_DISABLE, EXTENSION_CLASS_MULTITENANCY_JDBC_TYPE, EXTENSION_CLASS_READ_ONLY, EXTENSION_CLASS_SOFTDELETE, EXTENSION_CLASS_SOFTDELETE_COLUMN_NAME, EXTENSION_CLASS_UPDATETIMESTAMP, EXTENSION_CLASS_UPDATETIMESTAMP_COLUMN_NAME, EXTENSION_CLASS_UPDATEUSER, EXTENSION_CLASS_UPDATEUSER_COLUMN_LENGTH, EXTENSION_CLASS_UPDATEUSER_COLUMN_NAME, EXTENSION_CLASS_VERSION_FIELD_NAME, EXTENSION_CLASS_VIEW_DEFINITION, EXTENSION_CLASS_VIEW_IMPORTS, EXTENSION_MEMBER_CACHEABLE, EXTENSION_MEMBER_CALENDAR_ONE_COLUMN, EXTENSION_MEMBER_CASCADE_DETACH, EXTENSION_MEMBER_CASCADE_PERSIST, EXTENSION_MEMBER_CASCADE_REFRESH, EXTENSION_MEMBER_CASCADE_UPDATE, EXTENSION_MEMBER_COMPARATOR_NAME, EXTENSION_MEMBER_CONTAINER_ALLOW_NULLS, EXTENSION_MEMBER_ENUM_GETTER_BY_VALUE, EXTENSION_MEMBER_ENUM_VALUE_GETTER, EXTENSION_MEMBER_FETCH_FK_ONLY, EXTENSION_MEMBER_IMPLEMENTATION_CLASSES, EXTENSION_MEMBER_INSERTABLE, EXTENSION_MEMBER_KEY_IMPLEMENTATION_CLASSES, EXTENSION_MEMBER_LIST_ORDERING, EXTENSION_MEMBER_RELATION_DISCRIM_COLUMN, EXTENSION_MEMBER_RELATION_DISCRIM_PK, EXTENSION_MEMBER_RELATION_DISCRIM_VALUE, EXTENSION_MEMBER_STRATEGY_WHEN_NOTNULL, EXTENSION_MEMBER_TYPE_CONVERTER_DISABLED, EXTENSION_MEMBER_TYPE_CONVERTER_NAME, EXTENSION_MEMBER_UPDATEABLE, EXTENSION_MEMBER_VALUE_IMPLEMENTATION_CLASSES, EXTENSION_VERSION_NUMBER_INITIAL_VALUE, extensions, METADATA_CREATED_STATE, METADATA_INITIALISED_STATE, METADATA_POPULATED_STATE, METADATA_USED_STATE, metaDataState, parent, VENDOR_NAME
-
-
Constructor Summary
Constructors Constructor Description EmbeddedMetaData()
Default constructor.EmbeddedMetaData(EmbeddedMetaData embmd)
Constructor to create a copy of the passed metadata.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addMember(AbstractMemberMetaData mmd)
Method to add a field/property to the embedded definition.DiscriminatorMetaData
getDiscriminatorMetaData()
AbstractMemberMetaData[]
getMemberMetaData()
Accessor for metadata for the embedded members.String
getNullIndicatorColumn()
String
getNullIndicatorValue()
String
getOwnerMember()
void
initialise(ClassLoaderResolver clr)
Method to initialise the object, creating all internal convenience arrays.DiscriminatorMetaData
newDiscriminatorMetadata()
Method to create a new discriminator metadata, assign it to this inheritance, and return it.FieldMetaData
newFieldMetaData(String name)
Method to create a new FieldMetaData, add it, and return it.PropertyMetaData
newPropertyMetaData(String name)
Method to create a new PropertyMetaData, add it, and return it.void
populate(ClassLoaderResolver clr, ClassLoader primary)
Method to populate the embedded MetaData.EmbeddedMetaData
setDiscriminatorMetaData(DiscriminatorMetaData dismd)
EmbeddedMetaData
setNullIndicatorColumn(String column)
EmbeddedMetaData
setNullIndicatorValue(String value)
EmbeddedMetaData
setOwnerMember(String ownerMember)
String
toString()
-
Methods inherited from class org.datanucleus.metadata.MetaData
addExtension, addExtensions, getExtensions, getMetaDataManager, getNoOfExtensions, getParent, getValueForExtension, getValuesForExtension, hasExtension, isInitialised, isPopulated, isUsed, removeExtension, setExtensions, setParent
-
-
-
-
Field Detail
-
ownerMember
protected String ownerMember
Name of the field/property in the embedded object that refers to the owner (bidirectional relation).
-
nullIndicatorColumn
protected String nullIndicatorColumn
Name of a column used for determining if the embedded object is null
-
nullIndicatorValue
protected String nullIndicatorValue
Value in the null column indicating that the embedded object is null
-
discriminatorMetaData
protected DiscriminatorMetaData discriminatorMetaData
Discriminator for use when embedding objects with inheritance.
-
members
protected final List<AbstractMemberMetaData> members
Fields/properties of the embedded object.
-
memberMetaData
protected AbstractMemberMetaData[] memberMetaData
-
-
Constructor Detail
-
EmbeddedMetaData
public EmbeddedMetaData(EmbeddedMetaData embmd)
Constructor to create a copy of the passed metadata.- Parameters:
embmd
- The metadata to copy
-
EmbeddedMetaData
public EmbeddedMetaData()
Default constructor. Use setters to set fields, before calling populate().
-
-
Method Detail
-
populate
public void populate(ClassLoaderResolver clr, ClassLoader primary)
Method to populate the embedded MetaData. This performs checks on the validity of the field types for embedding.- Parameters:
clr
- The class loader to use where necessaryprimary
- the primary ClassLoader to use (or null)
-
initialise
public void initialise(ClassLoaderResolver clr)
Method to initialise the object, creating all internal convenience arrays.- Overrides:
initialise
in classMetaData
- Parameters:
clr
- ClassLoader resolver
-
getMemberMetaData
public final AbstractMemberMetaData[] getMemberMetaData()
Accessor for metadata for the embedded members.- Returns:
- Returns the metadata for any defined members.
-
getOwnerMember
public final String getOwnerMember()
-
setOwnerMember
public EmbeddedMetaData setOwnerMember(String ownerMember)
-
getNullIndicatorColumn
public final String getNullIndicatorColumn()
-
setNullIndicatorColumn
public EmbeddedMetaData setNullIndicatorColumn(String column)
-
getNullIndicatorValue
public final String getNullIndicatorValue()
-
setNullIndicatorValue
public EmbeddedMetaData setNullIndicatorValue(String value)
-
getDiscriminatorMetaData
public final DiscriminatorMetaData getDiscriminatorMetaData()
-
setDiscriminatorMetaData
public EmbeddedMetaData setDiscriminatorMetaData(DiscriminatorMetaData dismd)
-
newDiscriminatorMetadata
public DiscriminatorMetaData newDiscriminatorMetadata()
Method to create a new discriminator metadata, assign it to this inheritance, and return it.- Returns:
- The discriminator metadata
-
addMember
public void addMember(AbstractMemberMetaData mmd)
Method to add a field/property to the embedded definition. Rejects the addition of duplicate named fields/properties.- Parameters:
mmd
- Meta-Data for the field/property.
-
newFieldMetaData
public FieldMetaData newFieldMetaData(String name)
Method to create a new FieldMetaData, add it, and return it.- Parameters:
name
- Name of the field- Returns:
- The FieldMetaData
-
newPropertyMetaData
public PropertyMetaData newPropertyMetaData(String name)
Method to create a new PropertyMetaData, add it, and return it.- Parameters:
name
- Name of the property- Returns:
- The PropertyMetaData
-
-