org.apache.cocoon.components.flow.java
Class JavaInterpreter

java.lang.Object
  extended byorg.apache.avalon.framework.logger.AbstractLogEnabled
      extended byorg.apache.cocoon.components.flow.AbstractInterpreter
          extended byorg.apache.cocoon.components.flow.java.JavaInterpreter
All Implemented Interfaces:
Configurable, Contextualizable, Disposable, Interpreter, LogEnabled, Serviceable, SingleThreaded

public final class JavaInterpreter
extends AbstractInterpreter

Implementation of the java flow interpreter.

Version:
CVS $Id: JavaInterpreter.java 306557 2005-10-06 09:06:11Z tcurdt $
Author:
Stephan Michels, Torsten Curdt

Nested Class Summary
 
Nested classes inherited from class org.apache.cocoon.components.flow.Interpreter
Interpreter.Argument
 
Field Summary
 
Fields inherited from class org.apache.cocoon.components.flow.AbstractInterpreter
avalonContext, checkTime, context, continuationsMgr, manager, needResolve, reloadScripts
 
Fields inherited from interface org.apache.cocoon.components.flow.Interpreter
ROLE
 
Constructor Summary
JavaInterpreter()
           
 
Method Summary
 void callFunction(String methodName, List params, Redirector redirector)
          This method is called from the sitemap, using the syntax <map:call function="..."
 void handleContinuation(String id, List params, Redirector redirector)
          Continues a previously started processing.
 
Methods inherited from class org.apache.cocoon.components.flow.AbstractInterpreter
configure, contextualize, dispose, forwardTo, getInterpreterID, process, register, service, setInterpreterID
 
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JavaInterpreter

public JavaInterpreter()
Method Detail

callFunction

public void callFunction(String methodName,
                         List params,
                         Redirector redirector)
                  throws Exception
Description copied from interface: Interpreter
This method is called from the sitemap, using the syntax
   <map:call function="..."/>
 
The method will execute the named function, which must be defined in the given language. There is no assumption made on how various arguments are passed to the function.

The params argument is a List object that contains Interpreter.Argument instances, representing the parameters to be passed to the called function. An Argument instance is a key-value pair, where the key is the name of the parameter, and the value is its desired value. Most languages will ignore the name value and simply pass to the function, in a positional order, the values of the argument. Some languages however can pass the arguments in a different order than the original prototype of the function. For these languages the ability to associate the actual argument with a formal parameter using its name is essential.

A particular language implementation may decide to put the environment, request, response etc. objects in the dynamic scope available to the function at the time of the call. Other implementations may decide to pass these as arguments to the called function.

The current implementation assumes the sitemap implementation is TreeProcessor.

Parameters:
methodName - a String value, the name of the function to call
params - a List object whose components are CallFunctionNode.Argument instances. The interpretation of the parameters is left to the actual implementation of the interpreter.
redirector - a Redirector used to call views
Throws:
Exception

handleContinuation

public void handleContinuation(String id,
                               List params,
                               Redirector redirector)
                        throws Exception
Description copied from interface: Interpreter
Continues a previously started processing. The continuation object where the processing should start from is indicated by the continuationId string.

Parameters:
id - a String value
params - a List value, containing the parameters to be passed when invoking the continuation. As opposed to the parameters passed by callFunction, these parameters will only become available in the language's environment, if at all.
redirector - a Redirector used to call views
Throws:
Exception - if an error occurs


Copyright ? 1999-2005 The Apache Software Foundation. All Rights Reserved.