Class FieldMetaData

    • Field Detail

      • NULL_UNSET

        public static final int NULL_UNSET
        Constant specifying that no null-value was given.
        See Also:
        Constant Field Values
      • NULL_NONE

        public static final int NULL_NONE
        Constant specifying to use a datastore null to persist null values in object fields.
        See Also:
        Constant Field Values
      • NULL_DEFAULT

        public static final int NULL_DEFAULT
        Constant specifying to use a datastore default value to persist null values in object fields.
        See Also:
        Constant Field Values
      • NULL_EXCEPTION

        public static final int NULL_EXCEPTION
        Constant specifying to throw an exception when attempting to persist null values in object fields.
        See Also:
        Constant Field Values
      • MANAGE_PERSISTENT

        public static final int MANAGE_PERSISTENT
        Constant specifying the management level of a field.
        See Also:
        Constant Field Values
      • MANAGE_TRANSACTIONAL

        public static final int MANAGE_TRANSACTIONAL
        Constant specifying the management level of a field.
        See Also:
        Constant Field Values
      • MANAGE_NONE

        public static final int MANAGE_NONE
        Constant specifying the management level of a field.
        See Also:
        Constant Field Values
    • Constructor Detail

      • FieldMetaData

        protected FieldMetaData​(java.lang.String name,
                                java.lang.Class<?> type,
                                ClassMetaData owner)
        Constructor.
        Parameters:
        name - the field name
        type - the field type
        owner - the owning class metadata
    • Method Detail

      • backingMember

        public void backingMember​(java.lang.reflect.Member member)
        Supply the backing member object; this allows us to utilize parameterized type information if available. Sets the access style of this receiver based on whether the given member represents a field or getter method.
      • getDefiningMetaData

        public ClassMetaData getDefiningMetaData()
        The class that defines the metadata for this field.
      • getDeclaringType

        public java.lang.Class<?> getDeclaringType()
        The declaring class.
      • setDeclaringType

        public void setDeclaringType​(java.lang.Class<?> cls)
        The declaring class.
      • getDeclaringMetaData

        public ClassMetaData getDeclaringMetaData()
        The declaring class.
      • getName

        public java.lang.String getName()
        The field name.
      • getFullName

        @Deprecated
        public java.lang.String getFullName()
        Deprecated.
        Use getFullName(boolean) instead.
        The field name, qualified by the owning class.
      • getFullName

        public java.lang.String getFullName​(boolean embedOwner)
        The field name, qualified by the owning class and optionally the embedding owner's name (if any).
      • getRealName

        public java.lang.String getRealName()
        The field name, qualified by the defining class.
      • getValue

        public ValueMetaData getValue()
        MetaData about the field value.
      • getKey

        public ValueMetaData getKey()
        Metadata about the key value.
      • getElement

        public ValueMetaData getElement()
        Metadata about the element value.
      • isMapped

        public boolean isMapped()
        Return whether this field is mapped to the datastore. By default, returns true for all persistent fields whose defining class is mapped.
      • getProxyType

        public java.lang.Class<?> getProxyType()
        The type this field was initialized with, and therefore the type to use for proxies when loading data into this field.
      • setProxyType

        public void setProxyType​(java.lang.Class<?> type)
        The type this field was initialized with, and therefore the type to use for proxies when loading data into this field.
      • getInitializer

        public java.lang.Object getInitializer()
        The initializer used by the field, or null if none. This is additional information for initializing the field, such as a custom Comparator used by a Set or a TimeZone used by a Calendar.
      • setInitializer

        public void setInitializer​(java.lang.Object initializer)
        The initializer used by the field, or null if none. This is additional information for initializing the field, such as a custom Comparator used by a Set or a TimeZone used by a Calendar.
      • isTransient

        public boolean isTransient()
        Return whether this is a transient field.
      • setTransient

        public void setTransient​(boolean trans)
        Return whether this is a transient field.
      • getIndex

        public int getIndex()
        The absolute index of this persistent/transactional field.
      • setIndex

        public void setIndex​(int index)
        The absolute index of this persistent/transactional field.
      • getDeclaredIndex

        public int getDeclaredIndex()
        The relative index of this persistent/transactional field.
      • setDeclaredIndex

        public void setDeclaredIndex​(int index)
        The relative index of this persistent/transactional field.
      • getListingIndex

        public int getListingIndex()
        The index in which this field was listed in the metadata. Defaults to -1 if this field was not listed in the metadata.
      • setListingIndex

        public void setListingIndex​(int index)
        The index in which this field was listed in the metadata. Defaults to -1 if this field was not listed in the metadata.
      • getPrimaryKeyIndex

        public int getPrimaryKeyIndex()
        The absolute primary key index for this field, or -1 if not a primary key. The first primary key field has index 0, the second index 1, etc.
      • setPrimaryKeyIndex

        public void setPrimaryKeyIndex​(int index)
        The absolute primary key index for this field, or -1 if not a primary key. The first primary key field has index 0, the second index 1, etc.
      • isPrimaryKey

        public boolean isPrimaryKey()
        Whether this is a primary key field.
      • setPrimaryKey

        public void setPrimaryKey​(boolean primKey)
        Whether this is a primary key field.
      • getObjectIdFieldTypeCode

        public int getObjectIdFieldTypeCode()
        For a primary key field, return the type of the corresponding object id class field.
      • getObjectIdFieldType

        public java.lang.Class<?> getObjectIdFieldType()
        For a primary key field, return the type of the corresponding object id class field.
      • isVersion

        public boolean isVersion()
        Whether this field holds optimistic version information.
      • setVersion

        public void setVersion​(boolean version)
        Whether this field holds optimistic version information.
      • isInDefaultFetchGroup

        public boolean isInDefaultFetchGroup()
        Whether this field is in the default fetch group.
      • setInDefaultFetchGroup

        public void setInDefaultFetchGroup​(boolean dfg)
        Whether this field is in the default fetch group.
      • isDefaultFetchGroupExplicit

        public boolean isDefaultFetchGroupExplicit()
        Whether the default fetch group setting is explicit.
      • setDefaultFetchGroupExplicit

        public void setDefaultFetchGroupExplicit​(boolean explicit)
        Whether the default fetch group setting is explicit. Allow setting for testing.
      • getCustomFetchGroups

        public java.lang.String[] getCustomFetchGroups()
        Gets the name of the custom fetch groups those are associated to this receiver. This does not include the "default" and "all" fetch groups.
        Returns:
        the set of fetch group names, not including the default and all fetch groups.
      • getLoadFetchGroup

        public java.lang.String getLoadFetchGroup()
        The fetch group that is to be loaded when this receiver is loaded, or null if none set.
      • setLoadFetchGroup

        public void setLoadFetchGroup​(java.lang.String lfg)
        The fetch group that is to be loaded when this receiver is loaded, or null if none set.
      • isInFetchGroup

        public boolean isInFetchGroup​(java.lang.String fg)
        Whether this field is in the given fetch group.
      • setInFetchGroup

        public void setInFetchGroup​(java.lang.String fg,
                                    boolean in)
        Set whether this field is in the given fetch group.
        Parameters:
        fg - is the name of a fetch group that must be present in the class that declared this field or any of its persistent superclasses.
      • getNullValue

        public int getNullValue()
        How the data store should treat null values for this field: Defaults to NULL_UNSET.
      • setNullValue

        public void setNullValue​(int nullValue)
        How the data store should treat null values for this field: Defaults to NULL_UNSET.
      • isExplicit

        public boolean isExplicit()
        Whether this field is explicitly declared in the metadata.
      • setExplicit

        public void setExplicit​(boolean explicit)
        Whether this field is explicitly declared in the metadata.
      • getMappedBy

        public java.lang.String getMappedBy()
        The field that this field shares a mapping with.
      • setMappedBy

        public void setMappedBy​(java.lang.String mapped)
        The field that this field shares a mapping with.
      • getMappedByMetaData

        public FieldMetaData getMappedByMetaData()
        The field that this field shares a mapping with.
      • getInverse

        public java.lang.String getInverse()
        Logical inverse field.
      • setInverse

        public void setInverse​(java.lang.String inverse)
        Logical inverse field.
      • getInverseMetaDatas

        public FieldMetaData[] getInverseMetaDatas()
        Return all inverses of this field.
      • getValueStrategy

        public int getValueStrategy()
        The strategy to use for insert value generation. One of the constants from ValueStrategies.
      • setValueStrategy

        public void setValueStrategy​(int strategy)
        The strategy to use for insert value generation. One of the constants from ValueStrategies.
      • getValueSequenceName

        public java.lang.String getValueSequenceName()
        The value sequence name, or null for none.
      • setValueSequenceName

        public void setValueSequenceName​(java.lang.String seqName)
        The value sequence name, or null for none.
      • getValueSequenceMetaData

        public SequenceMetaData getValueSequenceMetaData()
        Metadata for the value sequence.
      • getUpdateStrategy

        public int getUpdateStrategy()
        The strategy to use when updating the field.
      • setUpdateStrategy

        public void setUpdateStrategy​(int strategy)
        Set the update strategy.
      • isLRS

        public boolean isLRS()
        Whether this field is backed by a large result set.
      • setLRS

        public void setLRS​(boolean lrs)
        Whether this field is backed by a large result set.
      • isStream

        public boolean isStream()
        Whether this field is backed by a stream.
        Since:
        1.1.0
      • setStream

        public void setStream​(boolean stream)
        Whether this field is backed by a stream.
        Since:
        1.1.0
      • usesImplData

        public java.lang.Boolean usesImplData()
        Whether this field uses impl data in conjunction with standard field data when acting on a OpenJPAStateManager. Defaults to Boolean.TRUE (non-cachable impl data).
        Returns:
        Boolean.FALSE if this field does not use impl data, Boolean.TRUE if this field uses non-cachable impl data, or null if this field uses impl data that should be cached across instances
        See Also:
        OpenJPAStateManager.setImplData(int,Object)
      • getOrders

        public Order[] getOrders()
        The orderings for this field to be applied on load, or empty array.
      • setOrders

        public void setOrders​(Order[] orders)
        The orderings for this field to be applied on load.
      • getOrderDeclaration

        public java.lang.String getOrderDeclaration()
        String declaring the orderings for this field to be applied on load, or null. The string is of the form:
        orderable[ asc|desc][, ...]
        The orderable #element is used to denote the value of the field's elements.
      • setOrderDeclaration

        public void setOrderDeclaration​(java.lang.String dec)
        String declaring the orderings for this field to be applied on load, or null. The string is of the form:
        orderable[ asc|desc][, ...]
        The orderable #element is used to denote the value of the field's elements.
      • order

        public java.lang.Object order​(java.lang.Object val)
        Order this field value when it is loaded.
      • isExternalized

        public boolean isExternalized()
        Whether the field is externalized.
      • getExternalValue

        public java.lang.Object getExternalValue​(java.lang.Object val,
                                                 StoreContext ctx)
        Convert the given field value to its external value through the provided externalizer, or return the value as-is if no externalizer.
      • getFieldValue

        public java.lang.Object getFieldValue​(java.lang.Object val,
                                              StoreContext ctx)
        Return the result of passing the given external value through the factory to get the field value. If no factory is present, the given value is returned as-is.
      • getExternalizer

        public java.lang.String getExternalizer()
        The name of this field's externalizer, or null if none.
      • setExternalizer

        public void setExternalizer​(java.lang.String externalizer)
        The name of this field's externalizer, or null if none.
      • setConverter

        public void setConverter​(java.lang.Class converter)
      • getFactory

        public java.lang.String getFactory()
        The name of this field's factory, or null if none.
      • setFactory

        public void setFactory​(java.lang.String factory)
        The name of this field's factory, or null if none.
      • getExternalValues

        public java.lang.String getExternalValues()
        Properties string mapping field values to external values.
      • setExternalValues

        public void setExternalValues​(java.lang.String values)
        Properties string mapping field values to external values.
      • getExternalValueMap

        public java.util.Map getExternalValueMap()
        Return the mapping of field values to external values.
      • getFieldValueMap

        public java.util.Map getFieldValueMap()
        Return the mapping of external values to field values.
      • getExternalizerMethod

        public java.lang.reflect.Method getExternalizerMethod()
        The externalizer method.
      • getFactoryMethod

        public java.lang.reflect.Member getFactoryMethod()
        The factory method or constructor.
      • equals

        public boolean equals​(java.lang.Object other)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • compareTo

        public int compareTo​(java.lang.Object other)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getResolve

        public int getResolve()
        Resolve mode for this field.
        Specified by:
        getResolve in interface ValueMetaData
      • setResolve

        public void setResolve​(int mode)
        Resolve mode for this field.
        Specified by:
        setResolve in interface ValueMetaData
      • setResolve

        public void setResolve​(int mode,
                               boolean on)
        Resolve mode for this field.
        Specified by:
        setResolve in interface ValueMetaData
      • resolve

        public boolean resolve​(int mode)
        Resolve and validate metadata. Return true if already resolved.
        Specified by:
        resolve in interface ValueMetaData
      • copy

        public void copy​(FieldMetaData field)
        Copy state from the given field to this one. Do not copy mapping information.
      • addExtensionKeys

        protected void addExtensionKeys​(java.util.Collection exts)
        Description copied from class: Extensions
        Add all the known extension keys to the specified collection; any implementation that utilized new extensions should override this method to include both the known extensions of its superclass as well as its own extension keys.
        Overrides:
        addExtensionKeys in class Extensions
      • getComments

        public java.lang.String[] getComments()
        Description copied from interface: Commentable
        Return comments, or empty array if none.
        Specified by:
        getComments in interface Commentable
      • setComments

        public void setComments​(java.lang.String[] comments)
        Description copied from interface: Commentable
        Set comments.
        Specified by:
        setComments in interface Commentable
      • setType

        public void setType​(java.lang.Class type)
        Description copied from interface: ValueMetaData
        The value class.
        Specified by:
        setType in interface ValueMetaData
      • setTypeCode

        public void setTypeCode​(int code)
        Description copied from interface: ValueMetaData
        The type code of the value class.
        Specified by:
        setTypeCode in interface ValueMetaData
      • isTypePC

        public boolean isTypePC()
        Description copied from interface: ValueMetaData
        Whether the type is a persistence capable instance.
        Specified by:
        isTypePC in interface ValueMetaData
      • getDeclaredType

        public java.lang.Class getDeclaredType()
        Description copied from interface: ValueMetaData
        Return the declared class of the value. This can differ from the return value of ValueMetaData.getType() if the user indicates a different type or the value has an externalizer.
        Specified by:
        getDeclaredType in interface ValueMetaData
      • setDeclaredType

        public void setDeclaredType​(java.lang.Class type)
        Description copied from interface: ValueMetaData
        Set the declared class of the value.
        Specified by:
        setDeclaredType in interface ValueMetaData
      • setDeclaredTypeCode

        public void setDeclaredTypeCode​(int type)
        Description copied from interface: ValueMetaData
        Set the type code for the value. The type code is usually computed automatically, but it can be useful to set it explicitly when creating metadatas from scratch.
        Specified by:
        setDeclaredTypeCode in interface ValueMetaData
      • isDeclaredTypePC

        public boolean isDeclaredTypePC()
        Description copied from interface: ValueMetaData
        Whether the type is a persistence capable instance.
        Specified by:
        isDeclaredTypePC in interface ValueMetaData
      • isEmbedded

        public boolean isEmbedded()
        Description copied from interface: ValueMetaData
        This attribute is a hint to the implementation to store this value in the same structure as the class, rather than as a separate datastore structure. Defaults to true if the field is not a collection or map or persistence-capable object; defaults to false otherwise. Implementations are permitted to ignore this attribute.
        Specified by:
        isEmbedded in interface ValueMetaData
      • setEmbedded

        public void setEmbedded​(boolean embedded)
        Description copied from interface: ValueMetaData
        This attribute is a hint to the implementation to store this value in the same structure as the class, rather than as a separate datastore structure. Defaults to true if the field is not a collection or map or persistence-capable objects; defaults to false otherwise. Implementations are permitted to ignore this attribute.
        Specified by:
        setEmbedded in interface ValueMetaData
      • isEmbeddedPC

        public boolean isEmbeddedPC()
        Description copied from interface: ValueMetaData
        Whether this is an embedded persistence capable value.
        Specified by:
        isEmbeddedPC in interface ValueMetaData
      • getCascadeDelete

        public int getCascadeDelete()
        Description copied from interface: ValueMetaData
        Cascade behavior for delete operation. Only applies to persistence-capable values. Options are:
        • CASCADE_NONE: No cascades.
        • CASCADE_IMMEDIATE: Value is deleted immediately when the owning object is deleted.
        • CASCADE_AUTO: Value will be deleted on flush if the owning object is deleted or if the value is removed from the owning object, and if the value is not assigned to another relation in the same transaction.
        Specified by:
        getCascadeDelete in interface ValueMetaData
      • getCascadePersist

        public int getCascadePersist()
        Description copied from interface: ValueMetaData
        Cascade behavior for persist operation. Only applies to persistence-capable values. Options are:
        • CASCADE_NONE: No cascades. If a transient relation is held at flush, an error is thrown.
        • CASCADE_IMMEDIATE: Value is persisted immediately when the owning object is persisted.
        • CASCADE_AUTO: Value will be persisted on flush.
        Specified by:
        getCascadePersist in interface ValueMetaData
      • getCascadeAttach

        public int getCascadeAttach()
        Description copied from interface: ValueMetaData
        Cascade behavior for attach operation. Only applies to persistence-capable values. Options are:
        • CASCADE_NONE: No cascades of attach. Relation remains detached.
        • CASCADE_IMMEDIATE: Value is attached immediately.
        Specified by:
        getCascadeAttach in interface ValueMetaData
      • getCascadeDetach

        public int getCascadeDetach()
        Description copied from interface: ValueMetaData
        Cascade behavior for detach operation. Only applies to persistence-capable values. Options are:
        • CASCADE_NONE: No cascades of detach. Relation remains attached.
        • CASCADE_IMMEDIATE: Value is detached immediately.
        Specified by:
        getCascadeDetach in interface ValueMetaData
      • getCascadeRefresh

        public int getCascadeRefresh()
        Description copied from interface: ValueMetaData
        Cascade behavior for refresh operation. Only applies to persistence-capable values. Options are:
        • CASCADE_NONE: No cascades of refresh.
        • CASCADE_IMMEDIATE: Persistent value object is also refreshed.
        • CASCADE_AUTO: Value will be refreshed if it is in the current fetch groups.
        Specified by:
        getCascadeRefresh in interface ValueMetaData
      • isSerialized

        public boolean isSerialized()
        Description copied from interface: ValueMetaData
        Whether this value is serialized when stored.
        Specified by:
        isSerialized in interface ValueMetaData
      • setSerialized

        public void setSerialized​(boolean serialized)
        Description copied from interface: ValueMetaData
        Whether this value is serialized when stored.
        Specified by:
        setSerialized in interface ValueMetaData
      • getValueMappedBy

        public java.lang.String getValueMappedBy()
        Description copied from interface: ValueMetaData
        The field that this value shares a mapping with. Currently the only supported use for a mapped-by value is when a map field key is determined by a field of the persistence-capable map value.
        Specified by:
        getValueMappedBy in interface ValueMetaData
      • setValueMappedBy

        public void setValueMappedBy​(java.lang.String mapped)
        Description copied from interface: ValueMetaData
        The field that this value shares a mapping with. Currently the only supported use for a mapped-by value is when a map field key is determined by a field of the persistence-capable map value.
        Specified by:
        setValueMappedBy in interface ValueMetaData
      • getValueMappedByMetaData

        public FieldMetaData getValueMappedByMetaData()
        Description copied from interface: ValueMetaData
        The field that this value shares a mapping with. Currently the only supported use for a mapped-by value is when a map field key is determined by a field of the persistence-capable map value.
        Specified by:
        getValueMappedByMetaData in interface ValueMetaData
      • getTypeOverride

        public java.lang.Class<?> getTypeOverride()
        Description copied from interface: ValueMetaData
        User-supplied type overriding assumed type based on field.
        Specified by:
        getTypeOverride in interface ValueMetaData
      • setTypeOverride

        public void setTypeOverride​(java.lang.Class type)
        Description copied from interface: ValueMetaData
        User-supplied type overriding assumed type based on field.
        Specified by:
        setTypeOverride in interface ValueMetaData
      • copy

        public void copy​(ValueMetaData vmd)
        Description copied from interface: ValueMetaData
        Copy state from the given value to this one. Do not copy mapping information.
        Specified by:
        copy in interface ValueMetaData
      • isUsedInOrderBy

        public boolean isUsedInOrderBy()
        Check if this field is used by other field as "order by" value.
        Since:
        1.1.0
      • setUsedInOrderBy

        public void setUsedInOrderBy​(boolean isUsed)
        Whether this field is used by other field as "order by" value .
        Since:
        1.1.0
      • isValueGenerated

        public boolean isValueGenerated()
      • setValueGenerated

        public void setValueGenerated​(boolean generated)
      • isElementCollection

        public boolean isElementCollection()
      • setElementCollection

        public void setElementCollection​(boolean isElementCollection)
      • getMappedByIdValue

        public java.lang.String getMappedByIdValue()
      • setMappedByIdValue

        public void setMappedByIdValue​(java.lang.String mappedByIdValue)
      • isMappedById

        public boolean isMappedById()
      • getAccessType

        public int getAccessType()
        Gets the access type used by this field. If no access type is set for this field then return the access type used by the declaring class.
      • setAccessType

        public void setAccessType​(int fCode)
        Sets access type of this field. The access code is verified for validity as well as against the access style used by the declaring class.
      • getAssociationType

        public int getAssociationType()
      • setAssociationType

        public void setAssociationType​(int type)
      • isPersistentCollection

        public boolean isPersistentCollection()
      • setPersistentCollection

        public void setPersistentCollection​(boolean persistentCollection)
      • getRelationType

        public java.lang.Class<?> getRelationType()
      • isDelayCapable

        public boolean isDelayCapable()
      • setDelayCapable

        public void setDelayCapable​(java.lang.Boolean delayCapable)
      • getUseSchemaElement

        public boolean getUseSchemaElement()
        Whether to include schema name in generated files
      • setUseSchemaElement

        public void setUseSchemaElement​(boolean _useSchemaElement)
        Whether to include schema name in generated files
      • getSetterName

        public java.lang.String getSetterName()
      • getConverter

        public java.lang.Class getConverter()