edu.vub.at.objects.natives
Class NATByRef

java.lang.Object
  extended byedu.vub.at.objects.natives.NATNil
      extended byedu.vub.at.objects.natives.NATByRef
All Implemented Interfaces:
ATAbstractGrammar, ATConversions, ATExpression, ATNil, ATObject, ATStatement, java.io.Serializable
Direct Known Subclasses:
JavaField, JavaMethod, NATActorMirror, NATCallframe, NATClosure, NATClosureMethod, NATField, NATHandler, NATIntrospectiveMirror, NativeAnonymousMethod, NativeField, NativeMethod

public abstract class NATByRef
extends NATNil

This class is the abstract superclass of all AT/2 objects that require by-reference parameter passing semantics when passed between actors.

Author:
tvcutsem
See Also:
Serialized Form

Field Summary
 
Fields inherited from class edu.vub.at.objects.natives.NATNil
_INSTANCE_
 
Constructor Summary
NATByRef()
           
 
Method Summary
 ATObject meta_pass()
          By reference objects serialize to a proxy representation.
 ATObject meta_resolve()
          By reference objects cannot be deserialized, by definition.
 
Methods inherited from class edu.vub.at.objects.natives.NATNil
asAmbientTalkObject, asJavaClassUnderSymbiosis, asJavaObjectUnderSymbiosis, asNativeBoolean, asNativeException, asNativeFarReference, asNativeFraction, asNativeNumber, asNativeNumeric, asNativeTable, asNativeText, base__opeql__opeql_, base_asActorMirror, base_asAsyncMessage, base_asBegin, base_asBoolean, base_asClosure, base_asDefinition, base_asExpression, base_asFarReference, base_asField, base_asHandler, base_asMessage, base_asMessageCreation, base_asMethod, base_asMirror, base_asNumber, base_asSplice, base_asStatement, base_asStripe, base_asSymbol, base_asTable, base_asUnquoteSplice, base_asVariableAssignment, base_init, base_isBoolean, base_isCallFrame, base_isClosure, base_isFarReference, base_isMessageCreation, base_isMethod, base_isMirror, base_isSplice, base_isStripe, base_isSymbol, base_isTable, base_isUnquoteSplice, base_isVariableAssignment, base_new, createChild, equals, isAmbientTalkObject, isJavaObjectUnderSymbiosis, isNativeBoolean, isNativeField, isNativeText, meta_addField, meta_addMethod, meta_assignField, meta_assignVariable, meta_clone, meta_defineField, meta_doesNotUnderstand, meta_eval, meta_extend, meta_getDynamicParent, meta_getLexicalParent, meta_getStripes, meta_grabField, meta_grabMethod, meta_invoke, meta_isCloneOf, meta_isRelatedTo, meta_isStripedWith, meta_listFields, meta_listMethods, meta_lookup, meta_newInstance, meta_print, meta_quote, meta_receive, meta_respondsTo, meta_select, meta_send, meta_share, readResolve, toString, writeReplace
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

NATByRef

public NATByRef()
Method Detail

meta_pass

public ATObject meta_pass()
                   throws InterpreterException
By reference objects serialize to a proxy representation. This proxy representation takes the form of a far reference to the local object.

Specified by:
meta_pass in interface ATObject
Overrides:
meta_pass in class NATNil
Throws:
InterpreterException

meta_resolve

public ATObject meta_resolve()
                      throws InterpreterException
By reference objects cannot be deserialized, by definition. It is an error to try to resolve an unserializable by reference object. The object on which meta_resolve is normally invoked is the proxy representation that was returned by this object's meta_pass method.

Specified by:
meta_resolve in interface ATObject
Overrides:
meta_resolve in class NATNil
Throws:
InterpreterException