|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.hypergraphdb.type.javaprimitive.PrimitiveTypeBase<JavaType>
public abstract class PrimitiveTypeBase<JavaType>
A generic, base implementation of the primitive Java types.
It maintains an index of all primitive values added for faster lookup. It also shares
primitive values for more compact storage - that is, the store
method will always return the same handle for an already added primitive value.
Concrete classes for concrete primitive types must provide a name for the managed index as well as a comparator class for their instance values.
A primitively typed object is translated to a byte [] as follows:
| Constructor Summary | |
|---|---|
PrimitiveTypeBase()
|
|
| Method Summary | |
|---|---|
int |
compare(byte[] left,
byte[] right)
|
HGSearchResult<HGPersistentHandle> |
find(JavaType key)
Returns a HGSearchResult over all values matching a key in the
searched entity. |
HGSearchResult<HGPersistentHandle> |
findGT(JavaType key)
Return a range of all values strictly greater than the specified key. |
HGSearchResult<HGPersistentHandle> |
findGTE(JavaType key)
Return a range of all values greater than or equal to the specified key. |
HGSearchResult<HGPersistentHandle> |
findLT(JavaType key)
Return a range of all values strictly less than the specified key. |
HGSearchResult<HGPersistentHandle> |
findLTE(JavaType key)
Return a range of all values less than or equal to the specified key. |
JavaType |
fromByteArray(byte[] byteArray)
|
int |
getRefCountFor(JavaType o)
|
java.lang.Object |
make(HGPersistentHandle handle,
LazyRef<HGHandle[]> targetSet,
IncidenceSetRef incidenceSet)
Construct a new run-time instance of a hypergraph atom. |
void |
release(HGPersistentHandle handle)
Release a hypergraph value instance from the persistent store. |
void |
setHyperGraph(HyperGraph hg)
During load time, set the HyperGraph
instance to which this atom belongs. |
HGPersistentHandle |
store(java.lang.Object instance)
Store a run-time instance of a hypergraph atom into the hypergraph HGStore
as a new atom. |
boolean |
subsumes(java.lang.Object l,
java.lang.Object r)
A generic semantic predicate that returns true if the first argument
is more general than the second. |
byte[] |
toByteArray(JavaType object)
|
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.hypergraphdb.type.HGPrimitiveType |
|---|
getComparator |
| Methods inherited from interface java.util.Comparator |
|---|
equals |
| Constructor Detail |
|---|
public PrimitiveTypeBase()
| Method Detail |
|---|
public int compare(byte[] left,
byte[] right)
compare in interface java.util.Comparator<byte[]>public final void setHyperGraph(HyperGraph hg)
HGGraphHolderDuring load time, set the HyperGraph
instance to which this atom belongs.
setHyperGraph in interface HGGraphHolderpublic final void release(HGPersistentHandle handle)
HGAtomTypeRelease a hypergraph value instance from the persistent store.
This method should be called when a HGPersistentHandle
returned from the store is no longer in use.
release in interface HGAtomTypehandle - The persistent handle of the value to release.
public java.lang.Object make(HGPersistentHandle handle,
LazyRef<HGHandle[]> targetSet,
IncidenceSetRef incidenceSet)
HGAtomTypeConstruct a new run-time instance of a hypergraph atom. A plain node must
be constructed whenever the targetSet parameter is null or of
length 0. Otherwise, a HGLink instance must be constructed.
It is not required that all atom types be able to construct both plain (node)
atoms and HGLinks. It is up to an HGAtomType implementation
to support either or both. When a HGLink counterpart is not available
for a particular run-time type, an implementation may choose to create an instance
of the default link value holder implementation HGValuedLink, provided
by HyperGraph.
make in interface HGAtomTypehandle - The HGPersistentHandle of the atom value.targetSet - When the atom is a link, this parameter holds the target set of
the link. When the atom is a node, the parameter is an array of 0 length.incidenceSet - TODO
null.
In case the handle points to an invalid instance (inexisting or with
a erronous layout), the method should throw a HGException.public JavaType fromByteArray(byte[] byteArray)
fromByteArray in interface ByteArrayConverter<JavaType>public byte[] toByteArray(JavaType object)
toByteArray in interface ByteArrayConverter<JavaType>public HGPersistentHandle store(java.lang.Object instance)
HGAtomTypeStore a run-time instance of a hypergraph atom into the hypergraph HGStore
as a new atom.
store in interface HGAtomTypeinstance - The atom instance.
public HGSearchResult<HGPersistentHandle> find(JavaType key)
HGSearchable
Returns a HGSearchResult over all values matching a key in the
searched entity.
If there are no matches, the method should return HGSearchResult.EMPTY. The
method will never return a null. A HGException may
be thrown in exceptional situations.
find in interface HGSearchable<JavaType,HGPersistentHandle>public HGSearchResult<HGPersistentHandle> findGT(JavaType key)
HGOrderedSearchableReturn a range of all values strictly greater than the specified key.
findGT in interface HGOrderedSearchable<JavaType,HGPersistentHandle>key - The search key.
HGSearchResult over the resulting range of values.public HGSearchResult<HGPersistentHandle> findGTE(JavaType key)
HGOrderedSearchableReturn a range of all values greater than or equal to the specified key.
findGTE in interface HGOrderedSearchable<JavaType,HGPersistentHandle>key - The search key.
HGSearchResult over the resulting range of values.public HGSearchResult<HGPersistentHandle> findLT(JavaType key)
HGOrderedSearchableReturn a range of all values strictly less than the specified key.
findLT in interface HGOrderedSearchable<JavaType,HGPersistentHandle>key - The search key.
HGSearchResult over the resulting range of values.public HGSearchResult<HGPersistentHandle> findLTE(JavaType key)
HGOrderedSearchableReturn a range of all values less than or equal to the specified key.
findLTE in interface HGOrderedSearchable<JavaType,HGPersistentHandle>key - The search key.
HGSearchResult over the resulting range of values.
public boolean subsumes(java.lang.Object l,
java.lang.Object r)
HGAtomTypeA generic semantic predicate that returns true if the first argument
is more general than the second. Atom types must implement this notion of specialization
whenever meaningful in the context of the entities being constructed.
The notion of subsumption can be seen as partial equivalence, or equivalence in one direction only.
As a relation, subsumtion is transitive and reflexive. The latter implies that, at a minimum,
the subsumes method must return true if
general.equals(specific).
subsumes in interface HGAtomTypel - The object which might be more general. Cannot be null.r - The object which might be more specific. Cannot be null.
true if specific can be used whenever general
is required and false otherwise.public int getRefCountFor(JavaType o)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||