java.lang.Object | +--org.erights.e.elib.ref.Ref | +--org.erights.e.elib.ref.NearRef
A NearRef represents the Ref facet of a promise which has been fulfilled with a local non-Ref object.
In E, a NearRef is forever identical to the object it wraps (the target). In the ELib implementation, NearRefs exist purely for implementation convenience to wrap a non-Ref with a Ref interface. Note that all non-Refs are considered NEAR.
(package private) void
commit()
broken, disconnected, getAllegedType, getOptProxyHandler, GetRefMaker, ignore, isBroken, isDeepFrozen, isDeepPassByCopy, isEventual, isFar, isNear, isPassByProxy, isPBC, isPersistent, isResolved, isSameEver, isSelfish, isSelfless, isSettled, makeBufferingPromise, makeSwitchablePromise, optBroken, optProblem, optSealedDispatch, optSealedDispatch, optShorten, promise, resolution, respondsTo, sendMsg, state, toCallable, toRef, toString, whenBroken, whenBrokenOnly, whenResolved, whenResolvedOnly
private final Object myTarget
NearRef(Object target)
public Throwable optProblem()
All implementations of optProblem/0 must be thread safe, in
order for Ref.state/0 to be thread safe.
optProblem in class RefRef.optProblem(Object)Ref resolutionRef()
All implementations of resolutionRef/0 must be thread safe, in
order for Ref.resolution/0 to be thread
safe.
resolutionRef in class Refpublic Object resolution()
All implementations of resolution/0 must be thread safe, in
order for Ref.resolution/1 to be thread
safe.
resolution in class Refpublic String state()
All implementations of state/0 must be thread safe, in order
for Ref.isNear/1 to be thread safe.
Ref.state(Object)public Object callAll(String verb, Object[] args)
public Ref sendAll(String verb, Object[] args)
public Throwable sendAllOnly(String verb, Object[] args)
sendAllOnly in class Refpublic boolean isResolved()
Ref
isResolved in class Refvoid setTarget(Ref newTarget)
Ref
void commit()
Ref
If the current target is already equivalent to this Ref, then this Ref
becomes broken by a ViciousCycleException.