|
Cumulus4j API (1.2.0) |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.cumulus4j.store.model.IndexEntry
public abstract class IndexEntry
Persistent index information with encrypted pointers to DataEntry
s.
Since the index is type-specific, there are sub-classes for each data type. One
IndexEntry
instance is used for each distinct value of one certain field.
Therefore, the field (represented by the property fieldMeta
)
and the value together form a unique key of IndexEntry
- thus the value
is represented by the property indexKey
.
Example:
// persistent class: @PersistenceCapable class Person { public Person(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; } private String firstName; private String lastName; // ... } class SomeTest { @Test public void persistPersons() { pm.makePersistent(new Person("Alice", "Müller")); pm.makePersistent(new Person("Alice", "Meier")); } }
After running this test, there would be three instances of IndexEntryStringShort
in the database
indexing the values "Alice", "Müller" and "Meier". Note, that "Alice" occurs only once in the index, even though
there are two Person
instances using it. The two persons would be referenced from the one index-entry
via getIndexValue()
.
Constructor Summary | |
---|---|
IndexEntry()
|
Method Summary | |
---|---|
boolean |
equals(Object obj)
|
ClassMeta |
getClassMeta()
Get the ClassMeta of the concrete type of the instance containing the field. |
FieldMeta |
getFieldMeta()
Get the descriptor of the indexed field. |
long |
getIndexEntryID()
Get the single primary key field (= object-identifier) of this IndexEntry . |
abstract Object |
getIndexKey()
Get the value which is indexed by this instance. |
byte[] |
getIndexValue()
Get the encrypted pointers to DataEntry . |
long |
getKeyID()
Get the identifier of the encryption-key used to encrypt the indexValue . |
int |
getKeyStoreRefID()
Get the numeric identifier of the key store. |
protected PersistenceManager |
getPersistenceManager()
|
int |
hashCode()
|
void |
jdoPreStore()
|
void |
setClassMeta(ClassMeta classMeta)
|
protected void |
setFieldMeta(FieldMeta fieldMeta)
|
protected abstract void |
setIndexKey(Object indexKey)
|
void |
setIndexValue(byte[] indexValue)
|
void |
setKeyID(long keyID)
Set the identifier of the encryption-key used to encrypt the indexValue . |
void |
setKeyStoreRefID(int keyStoreRefID)
Set the numeric identifier of the key store. |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public IndexEntry()
Method Detail |
---|
public long getIndexEntryID()
IndexEntry
.
public FieldMeta getFieldMeta()
Get the descriptor of the indexed field.
Every IndexEntry
instance belongs to one field or a part of the field (e.g. a Map
's key).
protected void setFieldMeta(FieldMeta fieldMeta)
public ClassMeta getClassMeta()
ClassMeta
of the concrete type of the instance containing the field.
If a field is declared in a super-class, all sub-classes have it, too. But when querying instances of a sub-class (either as candidate-class or in a relation (as concrete type of the field/property), only this given sub-class and its sub-classes should be found.
The ClassMeta
here is either the same as fieldMeta.classMeta
(if it is an instance of the class declaring the field) or a ClassMeta
of a sub-class of
fieldMeta.classMeta
.
ClassMeta
of the concrete type of the instance containing the field.protected PersistenceManager getPersistenceManager()
public void setClassMeta(ClassMeta classMeta)
public int getKeyStoreRefID()
KeyStoreRef
instances.
public void setKeyStoreRefID(int keyStoreRefID)
keyStoreRefID
- the numeric identifier of the key store.public abstract Object getIndexKey()
fieldMeta
.
protected abstract void setIndexKey(Object indexKey)
public long getKeyID()
indexValue
.
IndexEntry
's contents.setKeyID(long)
public void setKeyID(long keyID)
indexValue
.
keyID
- the encryption-key used to encrypt this IndexEntry
's contents.getKeyID()
public byte[] getIndexValue()
DataEntry
. After decrypting
this byte array, you can pass it to IndexValue.IndexValue(byte[])
.
DataEntry
s.public void setIndexValue(byte[] indexValue)
public int hashCode()
hashCode
in class Object
public boolean equals(Object obj)
equals
in class Object
public void jdoPreStore()
jdoPreStore
in interface StoreCallback
|
Cumulus4j API (1.2.0) |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |