public class GoshawkObjRef
extends java.lang.Object
Capability
s which
control whether an Object can be read, written, both, or neither. Multiple references to the same
Object can have different capabilities. A client gains capabilities on an Object by being able to
read other Objects that have references to an Object. An Object will accept any action (read,
write etc) which has been discovered.
GoshawkObjRefs are linked to Connection
s: if you're using multiple Connections, it is not
permitted to use the same GoshawkObjRef in both connections; you can either navigate to the same
object in both connections or once that is done in each connection, you can use getObject to get
a new GoshawkObjRef to the same object in the other connection. Within the same Connection, and
within nested transactions, GoshawkObjRefs may be freely reused.Modifier and Type | Field and Description |
---|---|
VarUUId |
id
The unique identifier of the object to which this reference refers.
|
Modifier and Type | Method and Description |
---|---|
Capability |
getObjCapability()
Gets the
Capability on the underlying Object. |
Capability |
getRefCapability()
Gets the
Capability from this reference. |
GoshawkObjRef[] |
getReferences()
Get the objects pointed to from the current object.
|
java.nio.ByteBuffer |
getValue()
Returns the current value of this object.
|
TxnId |
getVersion()
Get the current version of the object.
|
GoshawkObjRef |
grantCapability(Capability capability)
Create a new GoshawkObjRef to the same database object but with different capabilities.
|
boolean |
referencesSameAs(GoshawkObjRef that)
Test to see if two GoshawkObjRefs refer (point) to the same underlying Object.
|
void |
set(java.nio.ByteBuffer value,
GoshawkObjRef... references)
Sets the value and references of the current object.
|
java.lang.String |
toString() |
public final VarUUId id
public java.lang.String toString()
toString
in class java.lang.Object
public GoshawkObjRef grantCapability(Capability capability)
capability
- The capability to provide in the new referencepublic Capability getRefCapability()
Capability
from this reference. This may be different from the capabilities
discovered on the Object.Capability
from the reference.public Capability getObjCapability()
Capability
on the underlying Object. This is the union of all capabilities
that have been discovered in references that point to the same underlying Object.Capability
on the underlying Object.public boolean referencesSameAs(GoshawkObjRef that)
Capability
within the references (which is why it's
not called equals).that
- The other GoshawkObjRef
public java.nio.ByteBuffer getValue()
Capability
for this object.public GoshawkObjRef[] getReferences()
GoshawkObjRef
to which the current object refers. As with
getValue, the array is a copy of the underlying array, so you are safe to modify it, but you
will need to call one of the set methods for your modifications to take any effect. This
method will error if you do not have the Read Capability
for this object.public TxnId getVersion()
Capability
for this object.public void set(java.nio.ByteBuffer value, GoshawkObjRef... references)
Capability
for this object.value
- The value to set the object to. The buffer will be cloned and the contents
copied. Therefore any changes you make to this param after calling this
method will be ignored (you will need to call the set method again). The
copying will not alter any position, limit, capacity or marks of the value
ByteBuffer. The value is taken to be from position 0 to the current limit
of the buffer.references
- The new list of objects to which the current object refers. Again, the
array of references is copied.