home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / bsf.jar / com / ibm / bsf / Main.class (.txt) < prev   
Encoding:
Java Class File  |  1999-11-05  |  3.9 KB  |  97 lines

  1. package com.ibm.bsf;
  2.  
  3. import com.ibm.cs.util.CodeBuffer;
  4. import com.ibm.cs.util.IOUtils;
  5. import java.io.FileReader;
  6. import java.io.FileWriter;
  7. import java.io.IOException;
  8. import java.io.InputStreamReader;
  9. import java.io.OutputStreamWriter;
  10. import java.io.PrintWriter;
  11. import java.io.Reader;
  12. import java.util.Hashtable;
  13.  
  14. public class Main {
  15.    private static String DEFAULT_IN_FILE_NAME = "<STDIN>";
  16.    private static String DEFAULT_COMPILE_FLAG = "off";
  17.    private static String DEFAULT_CLASS_NAME = "Test";
  18.    // $FF: synthetic field
  19.    static Class class$com$ibm$bsf$BSFManager;
  20.  
  21.    private static void printHelp() {
  22.       System.err.println("Usage:");
  23.       System.err.println();
  24.       System.err.println("  java " + (class$com$ibm$bsf$BSFManager != null ? class$com$ibm$bsf$BSFManager : (class$com$ibm$bsf$BSFManager = class$("com.ibm.bsf.BSFManager"))).getName() + " [args]");
  25.       System.err.println();
  26.       System.err.println("    args:");
  27.       System.err.println();
  28.       System.err.println("      [-in            fileName]   default: " + DEFAULT_IN_FILE_NAME);
  29.       System.err.println("      [-language  languageName]   default: <If -in is specified and -language ");
  30.       System.err.println("                                            is not, attempt to determine ");
  31.       System.err.println("                                            language from file extension; ");
  32.       System.err.println("                                            otherwise, -language is required.>");
  33.       System.err.println("      [-compile       (on|off)]   default: " + DEFAULT_COMPILE_FLAG);
  34.       System.err.println();
  35.       System.err.println("    Additional args used only if -compile flag is set to \"on\":");
  36.       System.err.println();
  37.       System.err.println("      [-out          className]   default: " + DEFAULT_CLASS_NAME);
  38.    }
  39.  
  40.    public static void main(String[] var0) throws BSFException, IOException {
  41.       if (var0.length == 0 || var0.length % 2 != 0) {
  42.          printHelp();
  43.          System.exit(1);
  44.       }
  45.  
  46.       Hashtable var1 = new Hashtable();
  47.       var1.put("-compile", DEFAULT_COMPILE_FLAG);
  48.       var1.put("-out", DEFAULT_CLASS_NAME);
  49.  
  50.       for(int var2 = 0; var2 < var0.length; var2 += 2) {
  51.          var1.put(var0[var2], var0[var2 + 1]);
  52.       }
  53.  
  54.       String var3 = (String)var1.get("-in");
  55.       String var4 = (String)var1.get("-language");
  56.       if (var4 == null) {
  57.          if (var3 == null) {
  58.             throw new BSFException(BSFException.REASON_OTHER_ERROR, "unable to determine language");
  59.          }
  60.  
  61.          var4 = BSFManager.getLangFromFilename(var3);
  62.       }
  63.  
  64.       Object var5;
  65.       if (var3 != null) {
  66.          var5 = new FileReader(var3);
  67.       } else {
  68.          var5 = new InputStreamReader(System.in);
  69.          var3 = "<STDIN>";
  70.       }
  71.  
  72.       BSFManager var6 = new BSFManager();
  73.       String var7 = (String)var1.get("-compile");
  74.       if (var7 != null && var7.equals("on")) {
  75.          String var8 = (String)var1.get("-out");
  76.          FileWriter var9 = new FileWriter(var8 + ".java");
  77.          PrintWriter var10 = new PrintWriter(var9);
  78.          CodeBuffer var11 = new CodeBuffer();
  79.          var11.setClassName(var8);
  80.          var6.compileScript(var4, var3, 0, 0, IOUtils.getStringFromReader((Reader)var5), var11);
  81.          var11.print(var10, true);
  82.          ((OutputStreamWriter)var9).close();
  83.       } else {
  84.          var6.exec(var4, var3, 0, 0, IOUtils.getStringFromReader((Reader)var5));
  85.       }
  86.    }
  87.  
  88.    // $FF: synthetic method
  89.    static Class class$(String var0) {
  90.       try {
  91.          return Class.forName(var0);
  92.       } catch (ClassNotFoundException var2) {
  93.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  94.       }
  95.    }
  96. }
  97.