|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectedu.vub.at.objects.natives.NATNil
edu.vub.at.objects.natives.NATByRef
edu.vub.at.objects.natives.NATCallframe
edu.vub.at.objects.natives.NATObject
edu.vub.at.objects.mirrors.NATIntercessiveMirror
NATIntercessiveMirror extends the default NATIntrospectiveMirror to also allow programmers to supply their own code for the meta-operations defined on an object. This offers the programmers a way to intercede the default semantics implemented in the language for the scope of a single object
To achieve this, a triplet of objects is needed : first of all, instead of using a default object (whose behaviour is hardwired for efficiency), a mirage needs to be used, to reify the meta-operations called upon an object. These meta-operations are invoked on an ordinary object, which delegates to an instance of this class to implement the correct default behaviour.
| Field Summary | |
protected NATMirage |
principal_
|
| 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 | |
|
NATIntercessiveMirror(ATObject lexicalParent,
boolean parentType)
Constructs a new ambienttalk mirror based on a set of parent pointers. |
protected |
NATIntercessiveMirror(FieldMap map,
java.util.Vector state,
java.util.LinkedList customFields,
MethodDictionary methodDict,
ATObject dynamicParent,
ATObject lexicalParent,
byte flags,
ATStripe[] stripes,
NATMirage base)
Constructs a new ambienttalk mirage as a clone of an existing one. |
|
NATIntercessiveMirror(NATIntercessiveMirror dynamicParent,
ATObject lexicalParent,
boolean parentType)
Constructs a new ambienttalk mirror based on a set of parent pointers. |
| Method Summary | |
ATMirror |
base_asMirror()
|
ATObject |
base_getBase()
Provides access to the AmbientTalk language value this mirror reflects upon. |
boolean |
base_isMirror()
|
protected ATObject |
createChild(ATClosure code,
boolean parentPointerType)
When creating children of objects, care must be taken that an extension of an isolate itself remains an isolate. |
protected NATObject |
createClone(FieldMap map,
java.util.Vector state,
java.util.LinkedList customFields,
MethodDictionary methodDict,
ATObject dynamicParent,
ATObject lexicalParent,
byte flags,
ATStripe[] stripes)
|
NATIntercessiveMirror |
magic_clone()
|
ATObject |
meta_clone()
Clone the receiver object. |
ATTable |
meta_getStripes()
Returns the stripes of this object. |
NATText |
meta_print()
Prints out the object in a human-readable way. |
ATNil |
setBase(NATMirage base)
|
| 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 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_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_quote, meta_receive, meta_resolve, meta_respondsTo, meta_select, meta_send, meta_share |
| Field Detail |
protected NATMirage principal_
| Constructor Detail |
public NATIntercessiveMirror(ATObject lexicalParent,
boolean parentType)
lexicalParent - - the lexical scope in which the mirror's definition was nestedparentType - - how this object extends its dynamic parent (is-a or shares-a)
public NATIntercessiveMirror(NATIntercessiveMirror dynamicParent,
ATObject lexicalParent,
boolean parentType)
dynamicParent - - the dynamic parent of the new mirror, which should also be a mirrorlexicalParent - - the lexical scope in which the mirror's definition was nestedparentType - - how this object extends its dynamic parent (is-a or shares-a)
protected NATIntercessiveMirror(FieldMap map,
java.util.Vector state,
java.util.LinkedList customFields,
MethodDictionary methodDict,
ATObject dynamicParent,
ATObject lexicalParent,
byte flags,
ATStripe[] stripes,
NATMirage base)
throws InterpreterException
| Method Detail |
public ATObject base_getBase()
ATMirror
base_getBase in interface ATMirrorpublic ATNil setBase(NATMirage base)
public boolean base_isMirror()
base_isMirror in interface ATConversionsbase_isMirror in class NATObjectpublic ATMirror base_asMirror()
base_asMirror in interface ATConversionsbase_asMirror in class NATObject
public ATObject meta_clone()
throws InterpreterException
ATObject
meta_clone in interface ATObjectmeta_clone in class NATObjectInterpreterException
public NATIntercessiveMirror magic_clone()
throws InterpreterException
InterpreterException
protected NATObject createClone(FieldMap map,
java.util.Vector state,
java.util.LinkedList customFields,
MethodDictionary methodDict,
ATObject dynamicParent,
ATObject lexicalParent,
byte flags,
ATStripe[] stripes)
throws InterpreterException
createClone in class NATObjectInterpreterException
protected ATObject createChild(ATClosure code,
boolean parentPointerType)
throws InterpreterException
NATObject
createChild in class NATObjectInterpreterException
public NATText meta_print()
throws InterpreterException
ATObject
meta_print in interface ATObjectmeta_print in class NATObjectInterpreterException
public ATTable meta_getStripes()
throws InterpreterException
ATObject
meta_getStripes in interface ATObjectmeta_getStripes in class NATObjectInterpreterException
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||