public interface HGHandleFactory
The HGHandleFactory
is used to manage persistent handles
for the atoms of HyperGraph
instance. One such factory is configured
per HyperGraphDB instance via the HGConfiguration
passed when the instance
is opened. The factory is responsible for creating new HGPersistentHandle
s
that must be unique at least within the current database instance. Certain factories
can also guarantee universal uniqueness (e.g. in a distributed environment or across
the Internet). Factories are also responsible for creating handle out of their
String
or byte[]
representations. The main requirement that
a handle factory implementation must observe is that all
persistent handles must be of the exact same byte[]
size. For example, this
rules out the use of URIs as persistent handles.
Modifier and Type | Method and Description |
---|---|
HGPersistentHandle |
anyHandle()
The
anyHandle is a persistent handle constant that represents
a "don't care" handle during querying and comparison operations. |
HGPersistentHandle |
linkTypeHandle() |
HGPersistentHandle |
makeHandle()
Construct and return a new, unique persistent handle.
|
HGPersistentHandle |
makeHandle(byte[] buffer)
Construct a persistent handle from its byte array representation.
|
HGPersistentHandle |
makeHandle(byte[] buffer,
int offset)
Construct a persistent handle from its byte array representation where the byte array
is part of a larger buffer and located at a particular offset.
|
HGPersistentHandle |
makeHandle(String handleAsString)
Construct a persistent handle from its string representation.
|
HGPersistentHandle |
nullHandle()
Return the representation of a null persistent handle.
|
HGPersistentHandle |
nullTypeHandle() |
HGPersistentHandle |
subsumesTypeHandle() |
HGPersistentHandle |
topTypeHandle() |
HGPersistentHandle makeHandle()
Construct and return a new, unique persistent handle. The handle is permanently unique. It can be persistent (serialized) and restored without ever conflicting with another handle.
HGPersistentHandle makeHandle(String handleAsString)
Construct a persistent handle from its string representation.
HGPersistentHandle makeHandle(byte[] buffer)
Construct a persistent handle from its byte array representation.
buffer
- The byte array holding the handle value.HGPersistentHandle makeHandle(byte[] buffer, int offset)
Construct a persistent handle from its byte array representation where the byte array is part of a larger buffer and located at a particular offset.
buffer
- The byte array holding the handle value.offset
- The offset within buffer
where the handle value starts.HGPersistentHandle nullHandle()
Return the representation of a null persistent handle. A null
handle is a single instance and therefore can be compared for equality by
doing direct Java object reference comparison. A null handle can be
recorded in storage as any other persistent handle - it refers to no
value. Not that while HyperGraph's type system does not provide
for null
atom values or value projections, null references
to values are permitted and supported through the null
HGPersistentHandle
HGPersistentHandle anyHandle()
The anyHandle
is a persistent handle constant that represents
a "don't care" handle during querying and comparison operations. It can be used, for
instance, when defining an OrdererLinkCondition
in a query.
For efficiency reasons, the equals
method of the various implementations of
the HGHandle
interface ignore this constant, even though it would be
more consistent to for anyHandle.equals(x)
and x.equals(anyHandle)
to always return true.
HGPersistentHandle topTypeHandle()
HGPersistentHandle nullTypeHandle()
HGPersistentHandle linkTypeHandle()
HGPersistentHandle subsumesTypeHandle()
Copyright © 2015. All rights reserved.