Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Execution Context Implementation Details

As was mentioned in the main design document, the Execution Context has two roles: it is a container for frequently used objects, and it keeps track of the execution path.

The ExecutionContext interface:

Code Block
java
java
public interface ExecutionContext {

    // ----- Object Container Methods ----- //

    void clearUserData();

    String getCurrencyUom();

    Delegator getDelegator();

    LocalDispatcher getDispatcher();

    Locale getLocale();

    Object getProperty(String key);

    AuthorizationManager getSecurity();

    TimeZone getTimeZone();

    GenericValue getUserLogin();

    void initializeContext(Map<String, ? extends Object> params);

    void setCurrencyUom(String currencyUom);

    void setDelegator(Delegator delegator);

    void setDispatcher(LocalDispatcher dispatcher);

    void setLocale(Locale locale);

    Object setProperty(String key, Object value);

    void setSecurity(AuthorizationManager security);

    void setTimeZone(TimeZone timeZone);

    void setUserLogin(GenericValue userLogin);

    // ----- Execution Path Methods ----- //

    void endRunUnprotected();

    AccessController getAccessController();

    ArtifactPath getExecutionPath();

    String getExecutionPathAsString();

    String[] getExecutionPathAsArray();

    Map<String, ? extends Object> getParameters();

    void popExecutionArtifact();

    void pushExecutionArtifact(ExecutionArtifact artifact);

    void reset();

    void runExecutionArtifact(ExecutionArtifact artifact) throws Throwable;

    void runUnprotected();

}