KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sapia > gumby > script > EngineFactory


1 package org.sapia.gumby.script;
2
3 import java.util.HashMap JavaDoc;
4 import java.util.Map JavaDoc;
5
6 import org.sapia.gumby.script.bsh.BeanshellEngine;
7 import org.sapia.gumby.script.pnuts.PnutsEngine;
8
9 /**
10  * @author Yanick Duchesne
11  *
12  * <dl>
13  * <dt><b>Copyright: </b>
14  * <dd>Copyright &#169; 2002-2005 <a HREF="http://www.sapia-oss.org">Sapia Open
15  * Source Software </a>. All Rights Reserved.</dd>
16  * </dt>
17  * <dt><b>License: </b>
18  * <dd>Read the license.txt file of the jar or visit the <a
19  * HREF="http://www.sapia-oss.org/license.html">license page </a> at the Sapia
20  * OSS web site</dd>
21  * </dt>
22  * </dl>
23  */

24 public class EngineFactory {
25
26   private static final String JavaDoc DEFAULT_ENGINE_KEY = "bsh";
27
28   private static Map JavaDoc _engines = new HashMap JavaDoc();
29
30   static {
31     _engines.put(DEFAULT_ENGINE_KEY, new BeanshellEngine());
32     _engines.put("pnuts", new PnutsEngine());
33   }
34
35   public static Engine getEngineFor(String JavaDoc name) {
36     if(name == null) {
37       return getDefaultEngine();
38     }
39     Engine eg = (Engine) _engines.get(name);
40     if(eg == null) {
41       throw new IllegalArgumentException JavaDoc("No scripting engine found for: "
42           + name);
43     }
44     return eg;
45   }
46
47   public static Engine getDefaultEngine() {
48     return getEngineFor(DEFAULT_ENGINE_KEY);
49   }
50 }
51
Popular Tags