|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sleepycat.persist.impl.Format
com.sleepycat.persist.impl.ComplexFormat
public class ComplexFormat
Format for persistent complex classes that are not composite key classes. This includes entity classes and subclasses.
Field Summary |
---|
Fields inherited from class com.sleepycat.persist.impl.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 Summary | |
---|---|
ComplexFormat(Catalog catalog,
Class cls,
ClassMetadata clsMeta,
EntityMetadata entityMeta)
|
Method Summary | |
---|---|
(package private) void |
collectRelatedFormats(Catalog catalog,
Map<String,Format> newFormats)
Calls catalog.createFormat for formats that this format depends on, or that should also be persistent. |
(package private) 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,
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. |
Map<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). |
Set<String> |
getIncorrectlyOrderedSecKeys()
For unit testing. |
(package private) boolean |
getNewStringFormat()
For an entity format, returns whether the entity was written using the new String format. |
String |
getOldKeyName(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) String |
getPriKeyField()
|
(package private) FieldInfo |
getPriKeyFieldInfo()
|
(package private) static SecondaryKeyMetadata |
getSecondaryKeyMetadataByFieldName(Map<String,SecondaryKeyMetadata> secKeys,
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(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(String keyName)
Called when opening an existing secondary database that should have a dup comparator configured. |
(package private) void |
migrateFromBeta(Map<String,Format> formatMap)
Special handling for JE 3.0.12 beta formats. |
(package private) Object |
newArray(int len)
Creates an array of the format's class of the given length, as if Array.newInstance(getType(), len) were called. |
Object |
newInstance(EntityInput input,
boolean rawAccess)
Creates a new instance of the target class using its default constructor. |
(package private) boolean |
nullifySecKey(Catalog catalog,
Object entity,
String keyName,
Object keyElement)
Nullifies the given key field in the given RawObject -- rawAccess mode is implied. |
Object |
readObject(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(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(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,
String keyName)
When extracting a secondary key, called to skip over all fields up to the given secondary key field. |
(package private) void |
writeObject(Object o,
EntityOutput output,
boolean rawAccess)
Writes a given instance of the target class to the output data bytes. |
(package private) void |
writePriKey(Object o,
EntityOutput output,
boolean rawAccess)
Gets the primary key field from the given object and writes it to the given output data bytes. |
Methods inherited from class com.sleepycat.persist.impl.Format |
---|
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 |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
ComplexFormat(Catalog catalog, Class cls, ClassMetadata clsMeta, EntityMetadata entityMeta)
Method Detail |
---|
void migrateFromBeta(Map<String,Format> formatMap)
Format
migrateFromBeta
in class Format
ComplexFormat getComplexSuper()
FieldInfo getPriKeyFieldInfo()
String getPriKeyField()
boolean isEntity()
Format
isEntity
in class 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 Map<String,RawField> getFields()
RawType
getFields
in interface RawType
getFields
in class Format
void collectRelatedFormats(Catalog catalog, Map<String,Format> newFormats)
Format
collectRelatedFormats
in class Format
void initialize(Catalog catalog, EntityModel model, int initVersion)
Format
initialize
in class Format
Object newArray(int len)
Format
newArray
in class Format
public Object newInstance(EntityInput input, boolean rawAccess)
Format
newInstance
in interface Reader
newInstance
in class Format
public Object readObject(Object o, EntityInput input, boolean rawAccess) throws RefreshException
Format
readObject
in interface Reader
readObject
in class Format
RefreshException
void writeObject(Object o, EntityOutput output, boolean rawAccess) throws RefreshException
Format
writeObject
in class Format
RefreshException
Object convertRawObject(Catalog catalog, boolean rawAccess, RawObject rawObject, IdentityHashMap converted) throws RefreshException
Format
convertRawObject
in class Format
RefreshException
boolean isPriKeyNullOrZero(Object o, boolean rawAccess)
Format
isPriKeyNullOrZero
in class Format
void writePriKey(Object o, EntityOutput output, boolean rawAccess) throws RefreshException
Format
writePriKey
in class Format
RefreshException
public void readPriKey(Object o, EntityInput input, boolean rawAccess) throws RefreshException
Format
readPriKey
in interface Reader
readPriKey
in class Format
RefreshException
public String getOldKeyName(String keyName)
Format
getOldKeyName
in class Format
boolean nullifySecKey(Catalog catalog, Object entity, String keyName, 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, Set results) throws RefreshException
Format
copySecMultiKey
in class Format
RefreshException
Format skipToSecKey(RecordInput input, 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.
evolve
in class Format
boolean evolveMetadata(Format newFormatParam, Converter converter, Evolver evolver)
Format
evolveMetadata
in class Format
static SecondaryKeyMetadata getSecondaryKeyMetadataByFieldName(Map<String,SecondaryKeyMetadata> secKeys, String fieldName)
boolean isSecKeyIncorrectlyOrdered(String keyName)
boolean setSecKeyCorrectlyOrdered(String keyName)
public Set<String> getIncorrectlyOrderedSecKeys()
public Accessor getAccessor(boolean rawAccess)
getAccessor
in interface Reader
getAccessor
in class Format
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |