home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / Notes.jar / lotus / notes / internal / IDEHelper.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-15  |  4.7 KB  |  173 lines

  1. package lotus.notes.internal;
  2.  
  3. import java.io.BufferedInputStream;
  4. import java.io.BufferedOutputStream;
  5. import java.io.File;
  6. import java.io.FileInputStream;
  7. import java.io.FileOutputStream;
  8. import java.io.IOException;
  9. import java.io.InputStream;
  10. import java.io.OutputStream;
  11. import java.io.PrintStream;
  12. import java.util.Vector;
  13. import java.util.zip.ZipEntry;
  14. import java.util.zip.ZipException;
  15. import java.util.zip.ZipInputStream;
  16. import java.util.zip.ZipOutputStream;
  17. import sun.tools.javac.Main;
  18.  
  19. class IDEHelper {
  20.    static String[] listJar(String var0) throws IOException {
  21.       Vector var1 = new Vector();
  22.       FileInputStream var2 = new FileInputStream(var0);
  23.       ZipInputStream var3 = new ZipInputStream(var2);
  24.  
  25.       ZipEntry var4;
  26.       while((var4 = var3.getNextEntry()) != null) {
  27.          String var5 = var4.getName();
  28.          var3.closeEntry();
  29.          if (!var4.isDirectory() && !var5.startsWith("META-INF/")) {
  30.             var1.addElement(var5);
  31.          }
  32.       }
  33.  
  34.       var3.close();
  35.       String[] var6 = new String[var1.size()];
  36.       var1.copyInto(var6);
  37.       return var6;
  38.    }
  39.  
  40.    static boolean extractJar(String var0, String var1) throws IOException {
  41.       FileInputStream var2 = new FileInputStream(var0);
  42.  
  43.       ZipInputStream var3;
  44.       ZipEntry var4;
  45.       for(var3 = new ZipInputStream(var2); (var4 = var3.getNextEntry()) != null; var3.closeEntry()) {
  46.          String var5 = var4.getName();
  47.          if (!var4.isDirectory() && !var5.startsWith("META-INF/")) {
  48.             File var6 = new File(var1, var5.replace('/', File.separatorChar));
  49.             if (var6.getParent() != null) {
  50.                File var7 = new File(var6.getParent());
  51.                if (!var7.exists() && !var7.mkdirs() || !var7.isDirectory()) {
  52.                   throw new IOException(var7 + ": could not create directory");
  53.                }
  54.             }
  55.  
  56.             FileOutputStream var10 = new FileOutputStream(var6);
  57.             byte[] var8 = new byte[4096];
  58.  
  59.             int var9;
  60.             while((var9 = var3.read(var8, 0, var8.length)) != -1) {
  61.                ((OutputStream)var10).write(var8, 0, var9);
  62.             }
  63.  
  64.             ((OutputStream)var10).close();
  65.          }
  66.       }
  67.  
  68.       var3.close();
  69.       return true;
  70.    }
  71.  
  72.    private static void addFiles(String var0, String var1, ZipOutputStream var2) throws IOException {
  73.       File var3 = new File(var0, var1);
  74.       if (var3.isFile()) {
  75.          String var9 = var1.replace(File.separatorChar, '/');
  76.          ZipEntry var10 = new ZipEntry(var9);
  77.          var10.setTime(var3.lastModified());
  78.          if (var3.length() == 0L) {
  79.             var10.setMethod(0);
  80.             var10.setSize(0L);
  81.             var10.setCrc(0L);
  82.             var2.putNextEntry(var10);
  83.          } else {
  84.             var2.putNextEntry(var10);
  85.             byte[] var6 = new byte[4096];
  86.             BufferedInputStream var8 = new BufferedInputStream(new FileInputStream(var3), var6.length);
  87.  
  88.             int var7;
  89.             while((var7 = ((InputStream)var8).read(var6, 0, var6.length)) != -1) {
  90.                var2.write(var6, 0, var7);
  91.             }
  92.  
  93.             ((InputStream)var8).close();
  94.          }
  95.  
  96.          var2.closeEntry();
  97.       } else {
  98.          if (var3.isDirectory()) {
  99.             if (var1.length() > 0) {
  100.                var1 = var1 + File.separatorChar;
  101.             }
  102.  
  103.             String[] var4 = var3.list();
  104.  
  105.             for(int var5 = 0; var5 < var4.length; ++var5) {
  106.                addFiles(var0, var1 + var4[var5], var2);
  107.             }
  108.          }
  109.  
  110.       }
  111.    }
  112.  
  113.    static boolean createJar(String var0, String var1) throws IOException {
  114.       FileOutputStream var2 = new FileOutputStream(var0);
  115.       BufferedOutputStream var3 = new BufferedOutputStream(var2);
  116.       ZipOutputStream var4 = new ZipOutputStream(var3);
  117.       addFiles(var1, "", var4);
  118.  
  119.       try {
  120.          var4.close();
  121.          return true;
  122.       } catch (ZipException var5) {
  123.          return false;
  124.       }
  125.    }
  126.  
  127.    static boolean compile(String var0, String[] var1, String var2, int var3) {
  128.       String var5 = System.getProperty("file.encoding");
  129.  
  130.       PrintStream var16;
  131.       try {
  132.          System.getProperties().put("file.encoding", "UTF8");
  133.          AgentOutputStream var4 = new AgentOutputStream((long)var3, 4);
  134.          var16 = new PrintStream(var4);
  135.       } catch (Throwable var14) {
  136.          System.err.println("Exception in AgentIDEHelper.compile(): " + var14);
  137.          var14.printStackTrace(System.err);
  138.          return false;
  139.       }
  140.  
  141.       System.getProperties().put("file.encoding", var5);
  142.       Main var6 = new Main(var16, "Javac");
  143.       String var7 = System.getProperty("path.separator", ";");
  144.       String var8 = System.getProperty("java.class.path");
  145.       var2 = "." + var7 + var2;
  146.       if (var8 != null) {
  147.          var2 = var2 + var7 + var8;
  148.       }
  149.  
  150.       String[] var9 = new String[5 + var1.length];
  151.       var9[0] = "-classpath";
  152.       var9[1] = var2;
  153.       var9[2] = "-d";
  154.       var9[3] = var0;
  155.       var9[4] = "-deprecation";
  156.  
  157.       for(int var10 = 0; var10 < var1.length; ++var10) {
  158.          var9[var10 + 5] = var1[var10].replace('/', File.separatorChar);
  159.       }
  160.  
  161.       boolean var11 = var6.compile(var9);
  162.  
  163.       try {
  164.          ((OutputStream)var16).flush();
  165.       } catch (Throwable var13) {
  166.          System.err.println("Exception in AgentIDEHelper.compile() flush: " + var13);
  167.          var13.printStackTrace(System.err);
  168.       }
  169.  
  170.       return var11;
  171.    }
  172. }
  173.