|
|||||||||
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.CompositeKeyFormat
public class CompositeKeyFormat
Format for a composite key class. This class is similar to ComplexFormat in that a composite key class and other complex classes have fields, and the Accessor interface is used to access those fields. Composite key classes are different in the following ways: - The superclass must be Object. No inheritance is allowed. - All instance fields must be annotated with @KeyField, which determines their order in the data bytes. - Although fields may be reference types (primitive wrappers or other simple reference types), they are stored as if they were primitives. No object format ID is stored, and the class of the object must be the declared classs of the field; i.e., no polymorphism is allowed for key fields. In other words, a composite key is stored as an ordinary tuple as defined in the com.sleepycat.bind.tuple package. This keeps the key small and gives it a well defined sort order. - If the key class implements Comparable, it is called by the Database btree comparator. It must therefore be available during JE recovery, before the store and catalog have been opened. To support this, this format can be constructed during recovery. A SimpleCatalog singleton instance is used to provide a catalog of simple types that is used by the composite key format. - When interacting with the Accessor, the composite key format treats the Accessor's non-key fields as its key fields. The Accessor's key fields are secondary keys, while the composite format's key fields are the component parts of a single key.
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_OBJECT, ID_PREDEFINED, ID_SHORT, ID_SHORT_W, ID_SIMPLE_MAX, ID_SIMPLE_MIN, ID_STRING |
Constructor Summary | |
---|---|
CompositeKeyFormat(Class cls,
ClassMetadata metadata,
List<FieldMetadata> fieldNames)
|
|
CompositeKeyFormat(Class cls,
ClassMetadata metadata,
String[] fieldNames)
|
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) void |
copySecKey(EntityInput input,
EntityOutput output)
Called after skipToSecKey() to copy the data bytes of a singular (XXX_TO_ONE) key field. |
boolean |
equals(Object other)
Used to compare the current version and an old version, to determine whether class evolution is needed. |
(package private) ClassMetadata |
getClassMetadata()
Returns the original model class metadata used to create this class, or null if this is not a model class. |
(package private) static String[] |
getFieldNameArray(List<FieldMetadata> list)
|
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). |
(package private) void |
initialize(Catalog catalog)
Initializes an uninitialized format, initializing its related formats (superclass formats and array component formats) first. |
(package private) boolean |
isModelClass()
Returns whether this class is present in the EntityModel. |
(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. |
(package private) Object |
newInstance(EntityInput input,
boolean rawAccess)
Creates a new instance of the target class using its default constructor. |
(package private) void |
readObject(Object o,
EntityInput input,
boolean rawAccess)
Called after newInstance() to read the rest of the data bytes and fill in the object contents. |
(package private) void |
skipContents(EntityInput input)
Skips over the object's contents, as if readObject() were called, but without returning an object. |
(package private) void |
writeObject(Object o,
EntityOutput output,
boolean rawAccess)
Writes a given instance of the target class to the output data bytes. |
Methods inherited from class com.sleepycat.persist.impl.Format |
---|
copySecMultiKey, evolveTo, getClassName, getComponentType, getDimensions, getEntityFormat, getEntityMetadata, getEnumConstants, getId, getProxiedFormat, getSuperFormat, getSuperType, getType, getVersion, getWrapperFormat, initializeIfNeeded, isArray, isAssignableTo, isCurrentVersion, isEntity, isEnum, isPredefined, isPriKeyNullOrZero, isPrimitive, isSimple, nullifySecKey, readPriKey, setId, setProxiedFormat, setSuperFormat, skipToSecKey, writePriKey |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
CompositeKeyFormat(Class cls, ClassMetadata metadata, List<FieldMetadata> fieldNames)
CompositeKeyFormat(Class cls, ClassMetadata metadata, String[] fieldNames)
Method Detail |
---|
static String[] getFieldNameArray(List<FieldMetadata> list)
boolean isModelClass()
Format
isModelClass
in class Format
ClassMetadata getClassMetadata()
Format
getClassMetadata
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)
Format
initialize
in class Format
public boolean equals(Object other)
Format
equals
in class Format
Object newInstance(EntityInput input, boolean rawAccess)
Format
newInstance
in class Format
Object newArray(int len)
Format
newArray
in class Format
void writeObject(Object o, EntityOutput output, boolean rawAccess)
Format
writeObject
in class Format
void readObject(Object o, EntityInput input, boolean rawAccess)
Format
readObject
in class Format
void skipContents(EntityInput input)
Format
skipContents
in class Format
void copySecKey(EntityInput input, EntityOutput output)
Format
copySecKey
in class Format
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |