1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  package org.apache.commons.jelly;
18  
19  /***
20   * <p><code>Script</code> represents a Jelly script.
21   * A Script <b>must</b> be thread safe so care should be taken on the
22   * implementations of Scripts. However Tags are only used in a single thread
23   * (each thread will have create its own Tags for the Script it is running)
24   * so multi threading is not a concern for Tag developers.</p>
25   *
26   * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
27   * @version $Revision: 155420 $
28   */
29  public interface Script {
30  
31      /*** Called by the parser to allow a more efficient
32       * representation of the script to be used.
33       */
34      public Script compile() throws JellyException;
35  
36      /*** Evaluates the body of a tag */
37      public void run(JellyContext context, XMLOutput output) throws JellyTagException;
38  
39  }