public class ClassMetaData extends AbstractClassMetaData
Fields are of 2 types. The first are normal fields of this class. These have their own "relative" field number, relative to this class. The second type are "overriding" fields which override the baseline field in a superclass. These fields have no "relative" field number since they are relative to this class (and such a relative field number would make no sense). Fields are all added through addField() during the parse process, and are updated during the populate/initialise process to define their relative field numbers. Please refer to FieldMetaData for more details of fields.
Modifier and Type | Field and Description |
---|---|
protected List<ImplementsMetaData> |
implementations
List of implements.
|
protected boolean |
isAbstract
Is the persistable class abstract.
|
accessViaField, allMemberPositions, cacheable, catalog, detachable, dfgMemberFlags, dfgMemberPositions, embeddedOnly, entityName, excludeDefaultListeners, excludeSuperClassListeners, fetchGroupMetaDataByName, fetchGroupMetaWithPostLoad, fetchGroups, foreignKeys, fullName, GENERATED_PK_SUFFIX, hasRelations, identityMetaData, identitySpecified, identityType, implementationOfPersistentDefinition, indexes, inheritanceMetaData, instantiable, joins, listeners, managedMembers, mappedSuperclass, memberCount, memberPositionsByName, members, metaDataComplete, mmgr, name, nonPkMemberFlags, nonPkMemberPositions, noOfInheritedManagedMembers, objectidClass, overriddenMembers, pcSuperclassMetaData, persistableSuperclass, persistenceModifier, persistentInterfaceImplNeedingTableFromSubclass, persistentInterfaceImplNeedingTableFromSuperclass, pkIsDatastoreAttributed, pkMemberPositions, primaryKeyMetaData, queries, queryResultMetaData, relationPositions, requiresExtent, schema, scoMutableMemberFlags, scoMutableMemberPositions, scoNonContainerMemberPositions, secondClassContainerMemberPositions, serializeRead, storedProcQueries, table, uniqueConstraints, unmappedColumns, usesSingleFieldIdentityClass, versionMetaData
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_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 and Description |
---|
ClassMetaData(ClassMetaData cmd,
String implClassName)
Constructor for creating the ClassMetaData for an implementation of a "persistent-abstract-class".
|
ClassMetaData(InterfaceMetaData imd,
String implClassName,
boolean copyFields)
Constructor for creating the ClassMetaData for an implementation of a "persistent-interface".
|
ClassMetaData(PackageMetaData parent,
String name)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addImplements(ImplementsMetaData implmd)
Method to add an implements to this class.
|
protected void |
addMetaDataForMembersNotInMetaData(Class cls)
Add MetaData of fields/properties not declared in MetaData.
|
List<ImplementsMetaData> |
getImplementsMetaData()
Accessor for the implements MetaData
|
void |
initialise(ClassLoaderResolver clr)
Method to initialise the object, creating internal convenience arrays.
|
boolean |
isAbstract()
Whether the persistable class is abstract.
|
protected AbstractMemberMetaData |
newDefaultedProperty(String name)
Utility to add a defaulted FieldMetaData to the class.
|
void |
populate(ClassLoaderResolver clr,
ClassLoader primary,
MetaDataManager mgr)
Method to provide the details of the class being represented by this MetaData.
|
protected void |
populateMemberMetaData(ClassLoaderResolver clr,
Class cls,
boolean pkMembers,
ClassLoader primary)
Populate MetaData for all members.
|
String |
toString() |
addFetchGroup, addForeignKey, addIndex, addJoin, addListener, addMember, addQuery, addQueryResultMetaData, addStoredProcQuery, addUniqueConstraint, addUnmappedColumn, applyDefaultDiscriminatorValueWhenNotSpecified, checkForCircularViewReferences, checkInitialised, checkNotYetPopulated, checkPopulated, determineIdentity, determineInheritanceMetaData, determineObjectIdClass, determineSuperClassName, excludeDefaultListeners, excludeSuperClassListeners, getAbsolutePositionOfMember, getAccessViaField, getAllMemberPositions, getBaseAbstractClassMetaData, getBaseIdentityMetaData, getBaseInheritanceStrategy, getBasicMemberPositions, getBidirectionalRelationMemberPositions, getCatalog, getDFGMemberFlags, getDFGMemberPositions, getDiscriminatorColumnMetaData, getDiscriminatorColumnName, getDiscriminatorMetaData, getDiscriminatorMetaDataForTable, getDiscriminatorMetaDataRoot, getDiscriminatorStrategy, getDiscriminatorStrategyForTable, getDiscriminatorValue, getEntityName, getFetchGroupMetaData, getFetchGroupMetaData, getFetchGroupMetaData, getForeignKeyMetaData, getFullClassName, getIdentityMetaData, getIdentityType, getIndexMetaData, getInheritanceMetaData, getJoinMetaData, getListenerForClass, getListeners, getManagedMembers, getMemberBeingOverridden, getMemberCount, getMetaDataForManagedMemberAtAbsolutePosition, getMetaDataForManagedMemberAtAbsolutePositionInternal, getMetaDataForManagedMemberAtRelativePosition, getMetaDataForMember, getMetaDataForMemberAtRelativePosition, getMetaDataManager, getMultivaluedMemberPositions, getName, getNonPKMemberFlags, getNonPKMemberPositions, getNonRelationMemberPositions, getNoOfInheritedManagedMembers, getNoOfManagedMembers, getNoOfMembers, getNoOfPrimaryKeyMembers, getNoOfQueries, getNoOfStoredProcQueries, getObjectidClass, getOverriddenMember, getOverriddenMembers, getPackageMetaData, getPackageName, getPersistableSuperclass, getPersistenceModifier, getPKMemberPositions, getPrimaryKeyMemberNames, getPrimaryKeyMetaData, getQueries, getQueryResultMetaData, getRelationMemberPositions, getRelativePositionOfMember, getRootInstantiableClass, getSchema, getSCOContainerMemberPositions, getSCOMutableMemberFlags, getSCOMutableMemberPositions, getSCONonContainerMemberPositions, getStoredProcQueries, getSuperAbstractClassMetaData, getTable, getUniqueMetaData, getUnmappedColumns, getVersionMetaData, getVersionMetaDataForClass, getVersionMetaDataForTable, hasDiscriminatorStrategy, hasFetchGroupWithPostLoad, hasMember, hasRelations, inheritIdentity, initialiseMemberPositionInformation, isCacheable, isDescendantOf, isDetachable, isEmbeddedOnly, isExcludeDefaultListeners, isExcludeSuperClassListeners, isImplementationOfPersistentDefinition, isInstantiable, isMappedSuperclass, isMetaDataComplete, isRequiresExtent, isRootInstantiableClass, isSameOrAncestorOf, isSerializeRead, isVersioned, loadClass, newFetchGroupMetaData, newFieldMetadata, newForeignKeyMetadata, newIdentityMetadata, newIndexMetadata, newInheritanceMetadata, newJoinMetaData, newPrimaryKeyMetadata, newPropertyMetadata, newQueryMetadata, newStoredProcQueryMetadata, newUniqueMetadata, newUnmappedColumnMetaData, newVersionMetadata, pkIsDatastoreAttributed, setAccessViaField, setCacheable, setCacheable, setCatalog, setDetachable, setDetachable, setEmbeddedOnly, setEmbeddedOnly, setEntityName, setIdentityMetaData, setIdentityType, setInheritanceMetaData, setMappedSuperclass, setMetaDataComplete, setObjectIdClass, setPersistenceModifier, setPrimaryKeyMetaData, setRequiresExtent, setRequiresExtent, setSchema, setSerializeRead, setTable, setVersionMetaData, usesSingleFieldIdentityClass, validateObjectIdClass, validateUnmappedColumns, validateUserInputForIdentity, validateUserInputForInheritanceMetaData
addExtension, addExtensions, getExtensions, getNoOfExtensions, getParent, getValueForExtension, getValuesForExtension, hasExtension, isInitialised, isPopulated, isUsed, removeExtension, setExtensions, setParent
protected List<ImplementsMetaData> implementations
protected boolean isAbstract
public ClassMetaData(PackageMetaData parent, String name)
parent
- The package to which this class belongsname
- Name of classpublic ClassMetaData(InterfaceMetaData imd, String implClassName, boolean copyFields)
imd
- MetaData for the "persistent-interface"implClassName
- Name of the implementation classcopyFields
- Whether to copy the fields of the interface toopublic ClassMetaData(ClassMetaData cmd, String implClassName)
cmd
- MetaData for the implementation of the "persistent-abstract-class"implClassName
- Name of the implementation classpublic void populate(ClassLoaderResolver clr, ClassLoader primary, MetaDataManager mgr)
One possible use of this method would be to take a basic ClassMetaData for a class and call this, passing in the users class. This would then add AbstractMemberMetaData for all fields in this class providing defaults for all of these.
populate
in class AbstractClassMetaData
clr
- ClassLoaderResolver to use in loading any classesprimary
- the primary ClassLoader to use (or null)mgr
- MetaData managerprotected void addMetaDataForMembersNotInMetaData(Class cls)
cls
- Class represented by this metadataprotected void populateMemberMetaData(ClassLoaderResolver clr, Class cls, boolean pkMembers, ClassLoader primary)
clr
- The ClassLoaderResolvercls
- This classpkMembers
- Process pk fields/properties (or non-PK if false)primary
- the primary ClassLoader to use (or null)InvalidMetaDataException
- if the Class for a declared type in a field cannot be loaded by the clr
InvalidMetaDataException
- if a field declared in the MetaData does not exist in the Classpublic void initialise(ClassLoaderResolver clr)
initialise
in class MetaData
clr
- ClassLoader resolverpublic boolean isAbstract()
protected AbstractMemberMetaData newDefaultedProperty(String name)
newDefaultedProperty
in class AbstractClassMetaData
name
- name of fieldpublic final List<ImplementsMetaData> getImplementsMetaData()
public void addImplements(ImplementsMetaData implmd)
implmd
- Meta-Data for the implementsCopyright © 2019. All rights reserved.