[all packages]
[package BR.unicamp.Guarana.SequentialComposerAlgorithms]
[class hierarchy]
[index]
java.lang.Object
|
+----BR.unicamp.Guarana.MetaObject
|
+----BR.unicamp.Guarana.Composer
|
+----BR.unicamp.Guarana.SequentialComposerAlgorithms.WithArrayAndRange
|
+----BR.unicamp.Guarana.SequentialComposerAlgorithms.WithArray
public abstract class WithArray extends WithArrayAndRange
For each method of MetaObject, this class implements a method that takes the additional argument metaObjects, the array of MetaObjects to which it should delegate the requests. Each such method invokes the corresponding method with the additional arguments begin, increment and range, implemented in the class WithArrayAndRange. Begin and end are such that the full array is iterated on, and increment is -1 for handleResult and release, and +1 for all other methods.
All algorithms are final, to avoid exposing the metaObjects array of its main subclass, SequentialComposer. This could have been avoided differently (with final implementations of these methods in class SequentialComposer itself), but it probably wasn't worth the trouble, since there's little point in specializing these methods. They used to be static within SequentialComposer, after all.

WithArray()

composerForArray(MetaObject[])
composerForArrayWithPolicies(MetaObject[], boolean, boolean, boolean)
composerForConfigure(Object, Object, MetaObject[])
composerForReconfigure(Object, MetaObject, MetaObject, MetaObject[])
configure(Object, Object, MetaObject[])
configureArray(Object, Object, MetaObject[])
getMetaObjects(MetaObject[])
handleMessage(Message, Object, MetaObject[])
handleOperation(Operation, Object, MetaObject[])
handleResult(Result, Object, MetaObject[])
initialize(OperationFactory, Object, MetaObject[])
newComposer(MetaObject[])
reconfigure(Object, MetaObject, MetaObject, MetaObject[])
reconfigureArray(Object, MetaObject, MetaObject, MetaObject[])
release(Object, MetaObject[])

WithArraypublic WithArray();

getMetaObjectsprotected final Enumeration getMetaObjects(MetaObject[] metaObjects);
protected final Result handleOperation(Operation operation,
Object object,
MetaObject[] metaObjects);
protected final Result handleResult(Result res,
Object object,
MetaObject[] metaObjects);
protected final void handleMessage(Message message,
Object object,
MetaObject[] metaObjects);
protected final MetaObject[] configureArray(Object newObject,
Object object,
MetaObject[] metaObjects);
protected MetaObject configure(Object newObject,
Object object,
MetaObject[] metaObjects);
protected final MetaObject[] reconfigureArray(Object object,
MetaObject oldMetaObject,
MetaObject newMetaObject,
MetaObject[] metaObjects);
protected synchronized MetaObject reconfigure(Object object,
MetaObject oldMetaObject,
MetaObject newMetaObject,
MetaObject[] metaObjects);
It is worth noting that this implementation disregards requests to reconfigure itself, i.e., with oldMetaObject == this or null, blindly passing them on to components. Subclasses should take care of such reconfigurations, if appropriate.
protected final void initialize(OperationFactory factory,
Object object,
MetaObject[] metaObjects);
protected final void release(Object object,
MetaObject[] metaObjects);
protected MetaObject composerForConfigure(Object newObject,
Object object,
MetaObject[] metaObjects);
Overriders of this method may invoke composerForArrayWithPolicies directly, with policies different from the default.
protected MetaObject composerForReconfigure(Object object,
MetaObject oldMetaObject,
MetaObject newMetaObject,
MetaObject[] metaObjects);
Overriders of this method may invoke composerForArrayWithPolicies directly, with policies different from the default.
protected MetaObject composerForArray(MetaObject[] metaObjects);
Overriders of this method may invoke composerForArrayWithPolicies directly, with policies different from the default.
protected MetaObject composerForArrayWithPolicies(MetaObject[] metaObjects,
boolean may_propagate_itself,
boolean may_leave_when_empty,
boolean may_leave_when_unitary);
protected abstract MetaObject newComposer(MetaObject[] metaObjects);
[all packages]
[package BR.unicamp.Guarana.SequentialComposerAlgorithms]
[class hierarchy]
[index]