public class ComplexFormat extends Format
ID_BIGDEC, ID_BIGINT, ID_BOOL, ID_BOOL_W, ID_BYTE, ID_BYTE_W, ID_CHAR, ID_CHAR_W, ID_DATE, ID_DOUBLE, ID_DOUBLE_W, ID_FLOAT, ID_FLOAT_W, ID_INT, ID_INT_W, ID_LONG, ID_LONG_W, ID_NULL, ID_NUMBER, ID_OBJECT, ID_PREDEFINED, ID_SHORT, ID_SHORT_W, ID_SIMPLE_MAX, ID_SIMPLE_MIN, ID_STRING
Constructor and Description |
---|
ComplexFormat(Catalog catalog,
java.lang.Class cls,
ClassMetadata clsMeta,
EntityMetadata entityMeta) |
Modifier and Type | Method and Description |
---|---|
(package private) void |
collectRelatedFormats(Catalog catalog,
java.util.Map<java.lang.String,Format> newFormats)
Calls catalog.createFormat for formats that this format depends on, or
that should also be persistent.
|
(package private) java.lang.Object |
convertRawObject(Catalog catalog,
boolean rawAccess,
RawObject rawObject,
IdentityHashMap converted)
Converts a RawObject to a current class object and adds the converted
pair to the converted map.
|
(package private) void |
copySecMultiKey(RecordInput input,
Format keyFormat,
java.util.Set results)
Called after skipToSecKey() to copy the data bytes of an array or
collection (XXX_TO_MANY) key field.
|
(package private) boolean |
evolve(Format newFormatParam,
Evolver evolver)
Called for an existing format that may not equal the current format for
the same class.
|
(package private) boolean |
evolveMetadata(Format newFormatParam,
Converter converter,
Evolver evolver)
Called when a Converter handles evolution of a class, but we may still
need to evolve the metadata.
|
Accessor |
getAccessor(boolean rawAccess) |
ClassMetadata |
getClassMetadata()
Returns the original model class metadata used to create this class, or
null if this is not a model class.
|
(package private) ComplexFormat |
getComplexSuper()
Returns getSuperFormat cast to ComplexFormat.
|
(package private) ComplexFormat |
getEntityFormat()
For an entity class or subclass, returns the base entity class; returns
null in other cases.
|
EntityMetadata |
getEntityMetadata()
Returns the original model entity metadata used to create this class, or
null if this is not an entity class.
|
(package private) boolean |
getEvolveNeeded()
Overridden by ComplexFormat.
|
java.util.Map<java.lang.String,RawField> |
getFields()
Returns a map of field name to raw field for each non-static
non-transient field declared in this class, or null if this is not a
complex type (in other words, this is a simple type or an array type).
|
java.util.Set<java.lang.String> |
getIncorrectlyOrderedSecKeys()
For unit testing.
|
(package private) boolean |
getNewStringFormat()
For an entity format, returns whether the entity was written using the
new String format.
|
java.lang.String |
getOldKeyName(java.lang.String keyName)
For an entity class or subclass, returns the old key name for the given
key name that has been renamed, or returns the given key name if it has
not been renamed.
|
(package private) java.lang.String |
getPriKeyField() |
(package private) FieldInfo |
getPriKeyFieldInfo() |
(package private) static SecondaryKeyMetadata |
getSecondaryKeyMetadataByFieldName(java.util.Map<java.lang.String,SecondaryKeyMetadata> secKeys,
java.lang.String fieldName)
The secondary key metadata map (ClassMetadata.getSecondaryKeys) is keyed
by key name, not field name.
|
(package private) void |
initialize(Catalog catalog,
EntityModel model,
int initVersion)
Initializes an uninitialized format, initializing its related formats
(superclass formats and array component formats) first.
|
(package private) boolean |
isEntity()
Returns whether this format class is an entity class.
|
(package private) boolean |
isModelClass()
Returns whether this class is present in the EntityModel.
|
(package private) boolean |
isPriKeyNullOrZero(java.lang.Object o,
boolean rawAccess)
Returns whether the entity's primary key field is null or zero, as
defined for primary keys that are assigned from a sequence.
|
(package private) boolean |
isSecKeyIncorrectlyOrdered(java.lang.String keyName)
Called when opening an existing secondary database that should have a
dup comparator configured.
|
(package private) void |
migrateFromBeta(java.util.Map<java.lang.String,Format> formatMap)
Special handling for JE 3.0.12 beta formats.
|
(package private) java.lang.Object |
newArray(int len)
Creates an array of the format's class of the given length, as if
Array.newInstance(getType(), len) were called.
|
java.lang.Object |
newInstance(EntityInput input,
boolean rawAccess)
Creates a new instance of the target class using its default
constructor.
|
(package private) boolean |
nullifySecKey(Catalog catalog,
java.lang.Object entity,
java.lang.String keyName,
java.lang.Object keyElement)
Nullifies the given key field in the given RawObject -- rawAccess mode
is implied.
|
java.lang.Object |
readObject(java.lang.Object o,
EntityInput input,
boolean rawAccess)
Called after newInstance() to read the rest of the data bytes and fill
in the object contents.
|
void |
readPriKey(java.lang.Object o,
EntityInput input,
boolean rawAccess)
Reads the primary key from the given input bytes and sets the primary
key field in the given object.
|
(package private) void |
setEvolveNeeded(boolean needed)
Called by the Evolver with true when an entity format or any of its
nested format were changed.
|
(package private) boolean |
setSecKeyCorrectlyOrdered(java.lang.String keyName)
Called when creating a new secondary database that should have a dup
comparator configured.
|
(package private) void |
skipContents(RecordInput input)
Skips over the object's contents, as if readObject() were called, but
without returning an object.
|
(package private) Format |
skipToSecKey(RecordInput input,
java.lang.String keyName)
When extracting a secondary key, called to skip over all fields up to
the given secondary key field.
|
(package private) void |
writeObject(java.lang.Object o,
EntityOutput output,
boolean rawAccess)
Writes a given instance of the target class to the output data bytes.
|
(package private) void |
writePriKey(java.lang.Object o,
EntityOutput output,
boolean rawAccess)
Gets the primary key field from the given object and writes it to the
given output data bytes.
|
allowEvolveFromProxy, areNestedRefsProhibited, copySecKey, getCatalog, getClassName, getComponentType, getDimensions, getEnumConstants, getExistingType, getId, getLatestVersion, getPreviousVersion, getProxiedFormat, getReader, getSequenceKeyFormat, getSuperFormat, getSuperType, getType, getVersion, getWrapperFormat, initCatalog, initializeIfNeeded, initializeReader, isArray, isAssignableTo, isCurrentVersion, isDeleted, isEnum, isInitialized, isNew, isPredefined, isPrimitive, isSameClass, isSimple, setDeleted, setId, setLatestVersion, setProxiedFormat, setReader, setSuperFormat, setUnused, toString
ComplexFormat(Catalog catalog, java.lang.Class cls, ClassMetadata clsMeta, EntityMetadata entityMeta)
void migrateFromBeta(java.util.Map<java.lang.String,Format> formatMap)
Format
migrateFromBeta
in class Format
ComplexFormat getComplexSuper()
FieldInfo getPriKeyFieldInfo()
java.lang.String getPriKeyField()
boolean isEntity()
Format
boolean isModelClass()
Format
isModelClass
in class Format
public ClassMetadata getClassMetadata()
RawType
getClassMetadata
in interface RawType
getClassMetadata
in class Format
public EntityMetadata getEntityMetadata()
RawType
getEntityMetadata
in interface RawType
getEntityMetadata
in class Format
ComplexFormat getEntityFormat()
Format
getEntityFormat
in class Format
void setEvolveNeeded(boolean needed)
Format
setEvolveNeeded
in class Format
boolean getEvolveNeeded()
Format
getEvolveNeeded
in class Format
boolean getNewStringFormat()
Format
getNewStringFormat
in class Format
public java.util.Map<java.lang.String,RawField> getFields()
RawType
void collectRelatedFormats(Catalog catalog, java.util.Map<java.lang.String,Format> newFormats)
Format
collectRelatedFormats
in class Format
void initialize(Catalog catalog, EntityModel model, int initVersion)
Format
initialize
in class Format
java.lang.Object newArray(int len)
Format
public java.lang.Object newInstance(EntityInput input, boolean rawAccess)
Format
newInstance
in interface Reader
newInstance
in class Format
public java.lang.Object readObject(java.lang.Object o, EntityInput input, boolean rawAccess) throws RefreshException
Format
readObject
in interface Reader
readObject
in class Format
RefreshException
void writeObject(java.lang.Object o, EntityOutput output, boolean rawAccess) throws RefreshException
Format
writeObject
in class Format
RefreshException
java.lang.Object convertRawObject(Catalog catalog, boolean rawAccess, RawObject rawObject, IdentityHashMap converted) throws RefreshException
Format
convertRawObject
in class Format
RefreshException
boolean isPriKeyNullOrZero(java.lang.Object o, boolean rawAccess)
Format
isPriKeyNullOrZero
in class Format
void writePriKey(java.lang.Object o, EntityOutput output, boolean rawAccess) throws RefreshException
Format
writePriKey
in class Format
RefreshException
public void readPriKey(java.lang.Object o, EntityInput input, boolean rawAccess) throws RefreshException
Format
readPriKey
in interface Reader
readPriKey
in class Format
RefreshException
public java.lang.String getOldKeyName(java.lang.String keyName)
Format
getOldKeyName
in class Format
boolean nullifySecKey(Catalog catalog, java.lang.Object entity, java.lang.String keyName, java.lang.Object keyElement)
Format
nullifySecKey
in class Format
void skipContents(RecordInput input) throws RefreshException
Format
skipContents
in class Format
RefreshException
void copySecMultiKey(RecordInput input, Format keyFormat, java.util.Set results) throws RefreshException
Format
copySecMultiKey
in class Format
RefreshException
Format skipToSecKey(RecordInput input, java.lang.String keyName) throws RefreshException
Format
skipToSecKey
in class Format
RefreshException
boolean evolve(Format newFormatParam, Evolver evolver)
Format
If this method returns true, then it must have determined one of two things: - that the old and new formats are equal, and it must have called Evolver.useOldFormat; or - that the old format can be evolved to the new format, and it must have called Evolver.useEvolvedFormat.
If this method returns false, then it must have determined that the old format could not be evolved to the new format, and it must have called Evolver.addInvalidMutation, addMissingMutation or addEvolveError.
boolean evolveMetadata(Format newFormatParam, Converter converter, Evolver evolver)
Format
evolveMetadata
in class Format
static SecondaryKeyMetadata getSecondaryKeyMetadataByFieldName(java.util.Map<java.lang.String,SecondaryKeyMetadata> secKeys, java.lang.String fieldName)
boolean isSecKeyIncorrectlyOrdered(java.lang.String keyName)
boolean setSecKeyCorrectlyOrdered(java.lang.String keyName)
public java.util.Set<java.lang.String> getIncorrectlyOrderedSecKeys()
public Accessor getAccessor(boolean rawAccess)
getAccessor
in interface Reader
getAccessor
in class Format
Copyright (c) 2004-2012 Oracle. All rights reserved.