home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / bsfengines.jar / com / ibm / bsf / engines / jacl / JaclEngine.class (.txt) < prev   
Encoding:
Java Class File  |  1999-12-09  |  2.2 KB  |  58 lines

  1. package com.ibm.bsf.engines.jacl;
  2.  
  3. import com.ibm.bsf.BSFDeclaredBean;
  4. import com.ibm.bsf.BSFException;
  5. import com.ibm.bsf.BSFManager;
  6. import com.ibm.bsf.util.BSFEngineImpl;
  7. import java.util.Vector;
  8. import tcl.lang.Interp;
  9. import tcl.lang.TclException;
  10.  
  11. public class JaclEngine extends BSFEngineImpl {
  12.    private Interp interp;
  13.  
  14.    public void initialize(BSFManager var1, String var2, Vector var3) throws BSFException {
  15.       super.initialize(var1, var2, var3);
  16.       this.interp = new Interp();
  17.       this.interp.createCommand("bsf", new BSFCommand(var1, this));
  18.       int var4 = var3.size();
  19.  
  20.       for(int var5 = 0; var5 < var4; ++var5) {
  21.          this.declareBean((BSFDeclaredBean)var3.elementAt(var5));
  22.       }
  23.  
  24.    }
  25.  
  26.    public Object eval(String var1, int var2, int var3, Object var4) throws BSFException {
  27.       String var5 = var4.toString();
  28.  
  29.       try {
  30.          this.interp.eval(var5);
  31.          return this.interp.getResult();
  32.       } catch (TclException var7) {
  33.          throw new BSFException(BSFException.REASON_EXECUTION_ERROR, "error while eval'ing Jacl expression: " + this.interp.getResult(), var7);
  34.       }
  35.    }
  36.  
  37.    public Object call(Object var1, String var2, Object[] var3) throws BSFException {
  38.       StringBuffer var4 = new StringBuffer(var2);
  39.       if (var3 != null) {
  40.          for(int var5 = 0; var5 < var3.length; ++var5) {
  41.             var4.append(" ");
  42.             var4.append(var3[var5].toString());
  43.          }
  44.       }
  45.  
  46.       return this.eval("<function call>", 0, 0, var4.toString());
  47.    }
  48.  
  49.    public void declareBean(BSFDeclaredBean var1) throws BSFException {
  50.       String var2 = "set " + var1.name + " [bsf lookupBean \"" + var1.name + "\"]";
  51.       this.eval("<declare bean>", 0, 0, var2);
  52.    }
  53.  
  54.    public void undeclareBean(BSFDeclaredBean var1) throws BSFException {
  55.       this.eval("<undeclare bean>", 0, 0, "set " + var1.name + " \"\"");
  56.    }
  57. }
  58.