edu.vub.at.objects.natives
Class NATHandler

java.lang.Object
  extended byedu.vub.at.objects.natives.NATNil
      extended byedu.vub.at.objects.natives.NATByRef
          extended byedu.vub.at.objects.natives.NATHandler
All Implemented Interfaces:
ATAbstractGrammar, ATConversions, ATExpression, ATHandler, ATNil, ATObject, ATStatement, java.io.Serializable

public class NATHandler
extends NATByRef
implements ATHandler

TODO document the class NATHandler

Author:
smostinc
See Also:
Serialized Form

Field Summary
private  ATStripe filter_
           
private  ATClosure handler_
           
 
Fields inherited from class edu.vub.at.objects.natives.NATNil
_INSTANCE_
 
Constructor Summary
NATHandler(ATStripe filter, ATClosure handler)
           
 
Method Summary
 ATHandler base_asHandler()
           
 ATBoolean base_canHandle(ATObject anException)
          Used to determine whether a handler will be triggered when an exception is raised.
 ATObject base_handle(ATObject anException)
          When a handler has answered that it can handle an exception, the following method is invoked, asking the handler to handle the exception.
 ATTable meta_getStripes()
          Returns the stripes of this object.
 
Methods inherited from class edu.vub.at.objects.natives.NATByRef
meta_pass, meta_resolve
 
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_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_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
 
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_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_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
 

Field Detail

filter_

private final ATStripe filter_

handler_

private final ATClosure handler_
Constructor Detail

NATHandler

public NATHandler(ATStripe filter,
                  ATClosure handler)
Method Detail

base_canHandle

public ATBoolean base_canHandle(ATObject anException)
                         throws InterpreterException
Description copied from interface: ATHandler
Used to determine whether a handler will be triggered when an exception is raised. Its primary use is to provide a hook to deviate from the default semantics, which is: def canHandle(anException) { (reflect: anException).isCloneOf(filter); };

Specified by:
base_canHandle in interface ATHandler
Throws:
InterpreterException

base_handle

public ATObject base_handle(ATObject anException)
                     throws InterpreterException
Description copied from interface: ATHandler
When a handler has answered that it can handle an exception, the following method is invoked, asking the handler to handle the exception. The default semantics is simply to invoke the associated handler closure. def handle(anException) { handler(anException) };

Specified by:
base_handle in interface ATHandler
Throws:
InterpreterException

base_asHandler

public ATHandler base_asHandler()
Specified by:
base_asHandler in interface ATConversions
Overrides:
base_asHandler in class NATNil

meta_getStripes

public ATTable meta_getStripes()
                        throws InterpreterException
Description copied from interface: ATObject
Returns the stripes of this object. Note that only the stripes that were attached directly to this object are returned, not all of the parent's stripes as well.

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