home *** CD-ROM | disk | FTP | other *** search
- package lotus.notes.internal;
-
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.lang.reflect.Modifier;
- import java.util.Hashtable;
- import java.util.Properties;
- import java.util.StringTokenizer;
- import java.util.zip.ZipEntry;
- import java.util.zip.ZipInputStream;
- import lotus.notes.JavaString;
-
- public class InfoPaneBuilder {
- static final String fileSep = System.getProperty("file.separator", "\\");
- static final char fileSepChar;
- static final String class_ext = ".class";
- // $FF: synthetic field
- static Class class$lotus$notes$internal$InfoPaneTopItem;
-
- InfoPaneBuilder() {
- }
-
- public static void main(String[] var0) {
- String var1 = null;
- String var2 = null;
- boolean var3 = false;
- String var4 = null;
- String var5 = null;
-
- try {
- for(int var6 = 0; var6 < var0.length; ++var6) {
- String var7 = var0[var6];
- if (var7.charAt(0) != '-') {
- throw new InfoPaneUsageException("Missing argument before " + var7);
- }
-
- if (var7.length() != 2) {
- throw new InfoPaneUsageException(var7 + " is unknown flag");
- }
-
- char var8 = var7.charAt(1);
- if (var8 == 'a') {
- var3 = true;
- } else {
- ++var6;
- if (var6 >= var0.length) {
- throw new InfoPaneUsageException("Missing name after -" + var8 + " flag");
- }
-
- String var9 = var0[var6];
- switch (var8) {
- case 'd':
- var5 = var9;
- case 'i':
- case 'x':
- break;
- case 'j':
- var4 = var9;
- break;
- case 'n':
- var1 = var9;
- break;
- case 'o':
- var2 = var9;
- break;
- default:
- throw new InfoPaneUsageException("-" + var8 + " is unknown flag");
- }
- }
- }
-
- if (var1 == null) {
- throw new InfoPaneUsageException("Must have a -n flag");
- }
-
- if (var2 == null) {
- throw new InfoPaneUsageException("Must have a -o flag");
- }
-
- if (var5 == null && var4 == null) {
- throw new InfoPaneUsageException("Must have either a -d flag or a -j flag");
- }
-
- if (var5 != null && var4 != null) {
- throw new InfoPaneUsageException("Cannot have both a -d and a -j flag");
- }
-
- String var12 = var2 + fileSep + "lotus/notes/internal/INFOPANE".replace('/', fileSepChar);
- InfoPaneVector var13 = new InfoPaneVector();
- new JavaString("lotus.notes.AgentResources");
- if (var3) {
- var13.Read(var12, class$lotus$notes$internal$InfoPaneTopItem != null ? class$lotus$notes$internal$InfoPaneTopItem : (class$lotus$notes$internal$InfoPaneTopItem = class$("lotus.notes.internal.InfoPaneTopItem")));
- }
-
- InfoPaneTopItem var14 = new InfoPaneTopItem(var1);
- Properties var10 = System.getProperties();
- ((Hashtable)var10).put("lotus.notes.internal.InfoPaneBuilder", "true");
- if (var5 != null) {
- ReadDir(var5, "lotus", var14);
- } else if (var4 != null) {
- ReadJar(var4, var14);
- }
-
- var13.Insert(var14);
- System.out.println(" -- adding " + var1 + " InfoPane display");
- var13.Write(var12, class$lotus$notes$internal$InfoPaneTopItem != null ? class$lotus$notes$internal$InfoPaneTopItem : (class$lotus$notes$internal$InfoPaneTopItem = class$("lotus.notes.internal.InfoPaneTopItem")));
- } catch (Exception var11) {
- System.out.println(var11);
- }
-
- System.exit(0);
- }
-
- static void ReadDir(String var0, String var1, InfoPaneTopItem var2) throws InfoPaneException {
- if (var1.equals("lotus")) {
- ReadDir(var0, var1 + ".domino", var2);
- } else if (!var1.equals("lotus.domino")) {
- System.out.println(" -- cannot add unauthorized package " + var1 + " from directory " + var0 + " to InfoPane display");
- } else {
- String var3 = var0 + fileSepChar + var1.replace('.', fileSepChar);
- InfoPanePackageItem var4 = var2.FindPackage(var1);
- if (var4 == null) {
- var4 = new InfoPanePackageItem(var1);
- }
-
- File var5 = new File(var3);
- if (!var5.isDirectory()) {
- System.out.println(" -- cannot read " + var1 + " classes, because " + var3 + " is not a directory");
- } else {
- String[] var6 = var5.list();
-
- try {
- for(int var9 = 0; var6[var9] != null; ++var9) {
- String var10 = var6[var9];
- File var11 = new File(var5, var10);
- if (var11.isFile() && var10.endsWith(".class") && !var10.startsWith("AgentInfo.") && !var10.startsWith("AgentLauncher.") && !var10.startsWith("AgentLoader.") && !var10.startsWith("AgentSecurityContext.") && !var10.startsWith("AgentSecurityManager.") && !var10.startsWith("AgentThreadGroup.") && !var10.startsWith("AppletBase.") && !var10.startsWith("JAppletBase.") && !var10.startsWith("JavaString.") && !var10.startsWith("OS400JavaThread.") && !var10.startsWith("OS400RunJava.") && !var10.startsWith("PVTConstants.")) {
- ReadClass(var10, var4);
- }
- }
- } catch (ArrayIndexOutOfBoundsException var14) {
- } finally {
- if (var4.HasSubCategory()) {
- var2.AddPackage(var4);
- } else {
- System.out.println(" -- cannot add empty package " + var1 + " from directory " + var3 + " to InfoPane display");
- }
-
- }
-
- }
- }
- }
-
- static void ReadJar(String var0, InfoPaneTopItem var1) throws InfoPaneException, IOException {
- FileInputStream var2 = new FileInputStream(var0);
- ZipInputStream var3 = new ZipInputStream(var2);
-
- ZipEntry var11;
- for(Object var4 = null; (var11 = var3.getNextEntry()) != null; var3.closeEntry()) {
- String var5 = var11.getName();
- if (!var11.isDirectory() && var5.startsWith("java")) {
- StringTokenizer var6 = new StringTokenizer(var5, "/");
- String var7 = var6.nextToken();
- String var8 = null;
-
- while(var6.hasMoreTokens()) {
- var8 = var6.nextToken();
- if (var6.hasMoreTokens()) {
- var7 = var7 + "." + var8;
- }
- }
-
- InfoPanePackageItem var10 = var1.FindPackage(var7);
- if (var10 == null) {
- var10 = new InfoPanePackageItem(var7);
- }
-
- ReadClass(var8, var10);
- if (var10.HasSubCategory() && var1.FindPackage(var7) == null) {
- var1.AddPackage(var10);
- }
- }
- }
-
- var2.close();
- }
-
- static void ReadClass(String var0, InfoPanePackageItem var1) {
- if (var0.endsWith(".class") && var0.indexOf(36) == -1) {
- int var2 = var0.length() - ".class".length();
- String var3 = var1.GetName() + "." + var0.substring(0, var2);
-
- try {
- Class var4 = Class.forName(var3);
- if (Modifier.isPublic(var4.getModifiers())) {
- if (var4.isInterface()) {
- var1.AddInterface(var3, var4.toString());
- return;
- }
-
- var1.AddClass(var3, var4.toString());
- return;
- }
- } catch (ClassNotFoundException var5) {
- System.out.println("InfoPaneBuilder.ReadClass: " + var5 + " -- could not load " + var3);
- ((Throwable)var5).printStackTrace();
- return;
- } catch (LinkageError var6) {
- System.out.println("InfoPaneBuilder.ReadClass: " + var6 + " -- could not load " + var3);
- ((Throwable)var6).printStackTrace();
- return;
- } catch (InfoPaneException var7) {
- System.out.println("InfoPaneBuilder.ReadClass: " + var7 + " -- could not load " + var3);
- ((Throwable)var7).printStackTrace();
- return;
- }
- }
-
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- static {
- fileSepChar = fileSep.charAt(0);
- }
- }
-