org.jfree.layouting.util

Class ChainingComponent

public abstract class ChainingComponent extends Object

A chaining component accepts calls from outside, forwards them to its wrapped object, and records all calls to the next chain element. Only after the initial call has been fully completed (and thus the wrapped object is back in a consistent state) all generated sub-calls will be forwarded to the next chain element. Of course, the whole architecture assumes, that the execution flow is a one-way street and that the execution and computation of the n-th step does not rely on results and/or the current state of the n+1-th step. It is guaranteed, that all calls are executed in the same order they have been recorded.

Author: Thomas Morgner

Nested Class Summary
static classChainingComponent.RecordedCall
Field Summary
static intSTATE_DONE
static intSTATE_ERROR
static intSTATE_FRESH
Constructor Summary
ChainingComponent()
Method Summary
voidaddCall(ChainingComponent.RecordedCall c)
voidclear()
protected abstract voidinvoke(Object target, int methodId, Object parameters)
voidreplay(Object target)
protected ChainingComponent.RecordedCall[]retrieveRecordedCalls()
voidsetRecordedCalls(ChainingComponent.RecordedCall[] recordedCalls)

Field Detail

STATE_DONE

public static final int STATE_DONE

STATE_ERROR

public static final int STATE_ERROR

STATE_FRESH

public static final int STATE_FRESH

Constructor Detail

ChainingComponent

public ChainingComponent()

Method Detail

addCall

public void addCall(ChainingComponent.RecordedCall c)

clear

public void clear()

invoke

protected abstract void invoke(Object target, int methodId, Object parameters)

replay

public void replay(Object target)

retrieveRecordedCalls

protected ChainingComponent.RecordedCall[] retrieveRecordedCalls()

setRecordedCalls

public void setRecordedCalls(ChainingComponent.RecordedCall[] recordedCalls)