edu.vub.at.objects.natives
Class NATMessage

java.lang.Object
  extended byedu.vub.at.objects.natives.NATNil
      extended byedu.vub.at.objects.natives.NATByRef
          extended byedu.vub.at.objects.natives.NATCallframe
              extended byedu.vub.at.objects.natives.NATObject
                  extended byedu.vub.at.objects.natives.NATMessage
All Implemented Interfaces:
ATAbstractGrammar, ATConversions, ATExpression, ATMessage, ATNil, ATObject, ATStatement, java.io.Serializable
Direct Known Subclasses:
NATAsyncMessage, NATDelegation, NATMethodInvocation

public abstract class NATMessage
extends NATObject
implements ATMessage

Instances of the class NATMessage represent first-class messages. A NATMessage is an abstract class, as it can be either a synchronous method invocation or an asynchronous message send. NATMessages subclass from NATIsolate, such that they represent true AmbientTalk objects.

Author:
tvc
See Also:
Serialized Form

Field Summary
private static AGSymbol _ARGUMENTS_
           
private static AGSymbol _SELECTOR_
           
 
Fields inherited from class edu.vub.at.objects.natives.NATObject
_EQL_NAME_, _INI_NAME_, _IS_A_, _NEW_NAME_, _NO_STRIPES_, _SHARES_A_, _SUPER_NAME_, stripes_
 
Fields inherited from class edu.vub.at.objects.natives.NATCallframe
customFields_, lexicalParent_, stateVector_, variableMap_
 
Fields inherited from class edu.vub.at.objects.natives.NATNil
_INSTANCE_
 
Constructor Summary
protected NATMessage(ATSymbol sel, ATTable arg, ATStripe stripe)
           
 
Method Summary
 ATMessage base_asMessage()
           
 ATTable base_getArguments()
          Messages may optionally have a table of arguments.
 ATSymbol base_getSelector()
          Messages always have a selector, a symbol denoting the field or method that needs to be sought for.
 ATNil base_setArguments(ATTable arguments)
          Assigns the arguments of a first class method.
 
Methods inherited from class edu.vub.at.objects.natives.NATObject
asAmbientTalkObject, base_asActorMirror, base_asAsyncMessage, base_asBegin, base_asBoolean, base_asClosure, base_asDefinition, base_asExpression, base_asField, base_asHandler, base_asMessageCreation, base_asMethod, base_asMirror, base_asNumber, base_asSplice, base_asStatement, base_asStripe, base_asSymbol, base_asTable, base_asUnquoteSplice, base_isBoolean, base_isCallFrame, base_isClosure, base_isMethod, base_isMirror, base_isSplice, base_isStripe, base_isSymbol, base_isTable, base_isUnquoteSplice, createChild, createClone, createIsolate, isAmbientTalkObject, isPrimitive, listTransitiveFields, listTransitiveMethods, meta_addMethod, meta_assignField, meta_clone, meta_defineField, meta_extend, meta_getStripes, meta_grabMethod, meta_invoke, meta_isCloneOf, meta_isRelatedTo, meta_isStripedWith, meta_listMethods, meta_lookup, meta_newInstance, meta_pass, meta_print, meta_resolve, meta_respondsTo, meta_select, meta_share
 
Methods inherited from class edu.vub.at.objects.natives.NATCallframe
getLocalCustomField, getLocalField, hasLocalCustomField, hasLocalField, hasLocalNativeField, meta_addField, meta_assignVariable, meta_doesNotUnderstand, meta_getDynamicParent, meta_getLexicalParent, meta_grabField, meta_listFields, setLocalField
 
Methods inherited from class edu.vub.at.objects.natives.NATNil
asJavaClassUnderSymbiosis, asJavaObjectUnderSymbiosis, asNativeBoolean, asNativeException, asNativeFarReference, asNativeFraction, asNativeNumber, asNativeNumeric, asNativeTable, asNativeText, base__opeql__opeql_, base_asFarReference, base_asVariableAssignment, base_init, base_isFarReference, base_isMessageCreation, base_isVariableAssignment, base_new, equals, isJavaObjectUnderSymbiosis, isNativeBoolean, isNativeField, isNativeText, meta_eval, meta_quote, meta_receive, meta_send, readResolve, toString, writeReplace
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface edu.vub.at.objects.ATMessage
base_sendTo
 
Methods inherited from interface edu.vub.at.objects.ATObject
base__opeql__opeql_, base_init, base_new, 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_pass, meta_print, meta_quote, meta_receive, meta_resolve, meta_respondsTo, meta_select, meta_send, meta_share
 
Methods inherited from interface edu.vub.at.objects.coercion.ATConversions
asAmbientTalkObject, asJavaClassUnderSymbiosis, asJavaObjectUnderSymbiosis, asNativeBoolean, asNativeException, asNativeFarReference, asNativeFraction, asNativeNumber, asNativeNumeric, asNativeTable, asNativeText, base_asActorMirror, base_asAsyncMessage, base_asBegin, base_asBoolean, base_asClosure, base_asDefinition, base_asExpression, base_asFarReference, base_asField, base_asHandler, base_asMessageCreation, base_asMethod, base_asMirror, base_asNumber, base_asSplice, base_asStatement, base_asStripe, base_asSymbol, base_asTable, base_asUnquoteSplice, base_asVariableAssignment, 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, isAmbientTalkObject, isJavaObjectUnderSymbiosis, isNativeBoolean, isNativeField, isNativeText
 

Field Detail

_SELECTOR_

private static final AGSymbol _SELECTOR_

_ARGUMENTS_

private static final AGSymbol _ARGUMENTS_
Constructor Detail

NATMessage

protected NATMessage(ATSymbol sel,
                     ATTable arg,
                     ATStripe stripe)
              throws InterpreterException
Method Detail

base_getSelector

public ATSymbol base_getSelector()
                          throws InterpreterException
Description copied from interface: ATMessage
Messages always have a selector, a symbol denoting the field or method that needs to be sought for.

Specified by:
base_getSelector in interface ATMessage
Returns:
a symbol denoting the selector
Throws:
InterpreterException

base_getArguments

public ATTable base_getArguments()
                          throws InterpreterException
Description copied from interface: ATMessage
Messages may optionally have a table of arguments.

Specified by:
base_getArguments in interface ATMessage
Returns:
the arguments passed to the invocation
Throws:
InterpreterException

base_setArguments

public ATNil base_setArguments(ATTable arguments)
                        throws InterpreterException
Description copied from interface: ATMessage
Assigns the arguments of a first class method.

Specified by:
base_setArguments in interface ATMessage
Returns:
nil
Throws:
InterpreterException

base_asMessage

public ATMessage base_asMessage()
Specified by:
base_asMessage in interface ATConversions
Overrides:
base_asMessage in class NATObject