Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| research:software:reflex:documentation:metaobject_definitions [2007/07/30 21:32] – created admin | research:software:reflex:documentation:metaobject_definitions [2007/08/24 22:09] (current) – rtoledo | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Metaobject Definitions ====== | ||
| + | Metaobject definitions are a standard way to describe how Reflex will obtain a reference to a behavioral metaobject at runtime. | ||
| + | |||
| + | |||
| + | The base (abstract) class for all metaobject definitions is [[http:// | ||
| + | |||
| + | <code java> | ||
| + | public abstract class MODefinition{ | ||
| + | public abstract String getCode(BLink aBLink, Operation aOperation); | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | As you can see, it defines just one method that should return the code to obtain a behavioral metaobject reference. As implemeting this method is not a trivial task, Reflex provides four subclasses that meet almost any requirement: | ||
| + | * [[http:// | ||
| + | <code java> | ||
| + | MODefinition theMODef = new MODefinition.SharedMO(< | ||
| + | </ | ||
| + | * [[http:// | ||
| + | <code java> | ||
| + | MODefinition theMODef = new MODefinition.SharedFactory(< | ||
| + | </ | ||
| + | (The second parameter is a call descriptor object that are reviewed in detaill in this [[call_descriptors_parameters|section]]). | ||
| + | * [[http:// | ||
| + | <code java> | ||
| + | MODefinition theMODef = new MODefinition.MOClass(< | ||
| + | </ | ||
| + | (The second parameter is a parameter object that is reviewed in detaill in this [[call_descriptors_parameters|section]]). | ||
| + | * [[http:// | ||
| + | <code java> | ||
| + | MODefinition theMODef = new MODefinition.FactoryClass(< | ||
| + | </ | ||
| + | (The second parameter is a call descriptor object that are reviewed in detaill in this [[call_descriptors_parameters|section]]). | ||

