edu.vub.at.objects
Interface ATMessage

All Superinterfaces:
ATConversions, ATObject
All Known Subinterfaces:
ATAsyncMessage, ATMethodInvocation
All Known Implementing Classes:
NATAsyncMessage, NATDelegation, NATMessage, NATMethodInvocation

public interface ATMessage
extends ATObject

Instances of the class ATMessage represent first-class AmbientTalk asynchronous messages. They may be created explicitly using the <-m(args) syntax, or implicitly during an asynchronous message send of the form o<-m(args). This interface is not to be confused with the ATMessageCreation interface in the grammar subpackage. That interface represents an abstract grammar object representing the syntax tree of message creation. This interface is the interface to the actual runtime message object.

Author:
tvcutsem

Method Summary
 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.
 ATObject base_sendTo(ATObject receiver, ATObject sender)
          Sends this message to a particular receiver object.
 ATNil base_setArguments(ATTable arguments)
          Assigns the arguments of a first class method.
 
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_asMessage, 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
 

Method Detail

base_getSelector

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

Returns:
a symbol denoting the selector
Throws:
InterpreterException

base_getArguments

public ATTable base_getArguments()
                          throws InterpreterException
Messages may optionally have a table of arguments.

Returns:
the arguments passed to the invocation
Throws:
InterpreterException

base_setArguments

public ATNil base_setArguments(ATTable arguments)
                        throws InterpreterException
Assigns the arguments of a first class method.

Returns:
nil
Throws:
InterpreterException

base_sendTo

public ATObject base_sendTo(ATObject receiver,
                            ATObject sender)
                     throws InterpreterException
Sends this message to a particular receiver object. The way in which the message send will be performed (synchronous or asynchronous) depends on the kind of message.

Parameters:
receiver - the object receiving the message.
sender - the object sending the message.
Returns:
the value of the method invocation or message send.
Throws:
InterpreterException - if the method is not found or an error occurs while processing the method.