Uncaller

From Erights

Jump to: navigation, search

An uncaller generates portrayals of objects.

Uncallers are used by deSubgraphKit to convert each object in the graph being serialized into its serializable portrayal.

Original javadoc (XXX Integrate):

If obj is neither a bare string nor a scalar, and is transparent to this Uncaller, then uncaller.optUncall(obj) returns a triple

corresponding to the three arguments of E.call/3:
  • The receiver
  • The "verb", ie, the message name to call with
  • The list of arguments
Alternatively, uncall may return null to indicate that obj was not

uncallable by this uncall function.

FQN: org.erights.e.elib.serial.Uncaller

Protocol

optUncall/1

Signature: optUncall(obj) :nullOK[Portrayal]

Returns a portrayal for obj, or null if this uncaller does not handle the provided object.

Original javadoc (XXX Integrate):

Returns a description of the call that would reconstruct the argument object.

The reconstructing call would proceed not with the elements of this description, but with reconstructions of the elements of this description. Return null to indicate that this Uncaller has no description to offer, in which case another one may be tried.

If a description triple is returned, the elements of this triple must not provide any further authority beyond that held by a client who already has both this Uncaller and obj. In particular, if this Uncaller is an authority-diminishing facet on a more powerful Uncaller, then this facet may chose to implements its optUncall/1 in terms of the underlying's optUncall/1. It so, it had better be very careful to re-diminish the result before returning it. See BaseLoader#getOptWrappingUncall/4 for a convenience to help write such wrappers.

@return :nullOk[Tuple[any, String, List]]; either null or a 3-element list of
  • a receiver object whose reconstruction would receive the message
  • a String, which is the name of the message to call
  • a list of arguments, whose reconstruction are the actual arguments to the call.
Personal tools
more tools