home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VCafe / main.bin / DescFileConverter.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-08-05  |  16.0 KB  |  670 lines

  1. package symantec.descfileconverter;
  2.  
  3. import java.io.BufferedWriter;
  4. import java.io.File;
  5. import java.io.FileReader;
  6. import java.io.FileWriter;
  7. import java.io.IOException;
  8. import java.io.StreamTokenizer;
  9. import java.io.Writer;
  10. import java.util.Enumeration;
  11. import java.util.Vector;
  12.  
  13. class DescFileConverter extends StreamTokenizer {
  14.    private IconFileToGifConverter iconConverter;
  15.    private Vector vComponentInfo = new Vector();
  16.    private ComponentInfo tempInfo;
  17.    private CConnection tempConnection;
  18.    private CProperty tempProperty;
  19.    private CIconsuite tempIconsuite;
  20.    private CSmallicon tempSmallicon;
  21.    private CWinhelp tempWinhelp;
  22.    private String descFile;
  23.  
  24.    DescFileConverter(FileReader var1, String var2) {
  25.       super(var1);
  26.       this.descFile = var2;
  27.    }
  28.  
  29.    void tokenize() throws IOException {
  30.       ((StreamTokenizer)this).commentChar(59);
  31.       ((StreamTokenizer)this).eolIsSignificant(false);
  32.       ((StreamTokenizer)this).lowerCaseMode(false);
  33.       ((StreamTokenizer)this).slashSlashComments(true);
  34.       ((StreamTokenizer)this).slashStarComments(true);
  35.       ((StreamTokenizer)this).whitespaceChars(61, 61);
  36.       ((StreamTokenizer)this).whitespaceChars(44, 44);
  37.       ((StreamTokenizer)this).wordChars(91, 93);
  38.  
  39.       while(((StreamTokenizer)this).nextToken() != -1) {
  40.          if (super.sval.equals("BASECLASS")) {
  41.             ((StreamTokenizer)this).nextToken();
  42.             if (this.tempInfo != null) {
  43.                this.vComponentInfo.addElement(this.tempInfo);
  44.             }
  45.  
  46.             this.tempInfo = new ComponentInfo();
  47.             this.tempInfo.setBaseclass(super.sval);
  48.          } else if (super.sval.equals("CLASS")) {
  49.             ((StreamTokenizer)this).nextToken();
  50.             if (this.tempInfo != null && this.tempInfo.getComponentClass() != null) {
  51.                this.vComponentInfo.addElement(this.tempInfo);
  52.                this.tempInfo = new ComponentInfo();
  53.                this.tempInfo.setComponentClass(super.sval);
  54.             } else if (this.tempInfo != null && this.tempInfo.getComponentClass() == null) {
  55.                this.tempInfo.setComponentClass(super.sval);
  56.             } else {
  57.                this.tempInfo = new ComponentInfo();
  58.                this.tempInfo.setComponentClass(super.sval);
  59.             }
  60.          } else if (super.sval.equals("AWTEVENT")) {
  61.             ((StreamTokenizer)this).nextToken();
  62.             this.tempInfo.setAwtevent(super.sval);
  63.          } else if (!super.sval.equals("CONNECTION") && !super.sval.equals("CONSTRAINEDCONNECTION")) {
  64.             if (!super.sval.equals("DEFPROPERTY") && !super.sval.equals("CONSTRAINEDDEFPROPERTY")) {
  65.                if (super.sval.equals("FLAGS")) {
  66.                   ((StreamTokenizer)this).nextToken();
  67.                   this.tempInfo.setFlags(super.sval);
  68.                } else if (super.sval.equals("FOLDER")) {
  69.                   ((StreamTokenizer)this).nextToken();
  70.                   this.tempInfo.setFolder(super.sval);
  71.                } else if (super.sval.equals("ICONSUITE")) {
  72.                   this.tempIconsuite = new CIconsuite();
  73.                   ((StreamTokenizer)this).nextToken();
  74.                   this.tempIconsuite.a = new String(super.sval);
  75.                   ((StreamTokenizer)this).nextToken();
  76.                   this.tempIconsuite.b = new String(super.sval);
  77.                   this.tempInfo.setIconsuite(this.tempIconsuite);
  78.                } else if (!super.sval.equals("PROPERTY") && !super.sval.equals("CONSTRAINEDPROPERTY")) {
  79.                   if (super.sval.equals("SMALLICON")) {
  80.                      this.tempSmallicon = new CSmallicon();
  81.                      ((StreamTokenizer)this).nextToken();
  82.                      this.tempSmallicon.a = new String(super.sval);
  83.                      ((StreamTokenizer)this).nextToken();
  84.                      this.tempSmallicon.b = new String(super.sval);
  85.                      this.tempInfo.setSmallicon(this.tempSmallicon);
  86.                   } else if (super.sval.equals("TOOLBAR")) {
  87.                      ((StreamTokenizer)this).nextToken();
  88.                      this.tempInfo.setToolbar(super.sval);
  89.                   } else if (super.sval.equals("WINHELP")) {
  90.                      this.tempWinhelp = new CWinhelp();
  91.                      ((StreamTokenizer)this).nextToken();
  92.                      if (super.sval == null) {
  93.                         ((StreamTokenizer)this).nextToken();
  94.                         this.tempWinhelp.help_id = "0" + new String(super.sval);
  95.                      } else {
  96.                         this.tempWinhelp.help_id = new String(super.sval);
  97.                      }
  98.  
  99.                      ((StreamTokenizer)this).nextToken();
  100.                      if (!super.sval.equals("BASECLASS") && !super.sval.equals("CLASS") && !super.sval.equals("AWTEVENT") && !super.sval.equals("CONNECTION") && !super.sval.equals("CONSTRAINEDCONNECTION") && !super.sval.equals("DEFPROPERTY") && !super.sval.equals("CONSTRAINEDDEFPROPERTY") && !super.sval.equals("FLAGS") && !super.sval.equals("FOLDER") && !super.sval.equals("ICONSUITE") && !super.sval.equals("PROPERTY") && !super.sval.equals("CONSTRAINEDPROPERTY") && !super.sval.equals("SMALLICON") && !super.sval.equals("TOOLBAR") && !super.sval.equals("WINHELP")) {
  101.                         this.tempWinhelp.help_file = new String(super.sval);
  102.                      } else {
  103.                         ((StreamTokenizer)this).pushBack();
  104.                      }
  105.  
  106.                      this.tempInfo.setWinhelp(this.tempWinhelp);
  107.                   } else {
  108.                      System.err.println(this.descFile + " :Huh? Shouldn't get here! sval = " + super.sval);
  109.                   }
  110.                } else {
  111.                   this.tempProperty = new CProperty();
  112.                   this.tempProperty.bound = true;
  113.                   if (super.sval.equals("CONSTRAINEDPROPERTY")) {
  114.                      this.tempProperty.constrained = true;
  115.                   }
  116.  
  117.                   ((StreamTokenizer)this).nextToken();
  118.                   this.tempProperty.type = new String(super.sval);
  119.                   ((StreamTokenizer)this).nextToken();
  120.                   this.tempProperty.description = new String(super.sval);
  121.                   ((StreamTokenizer)this).nextToken();
  122.                   this.tempProperty.method = new String(super.sval);
  123.                   ((StreamTokenizer)this).nextToken();
  124.                   this.tempProperty.def_val = new String(super.sval);
  125.                   if (this.tempProperty.type.equalsIgnoreCase("URL") || this.tempProperty.type.equalsIgnoreCase("URL[]") || this.tempProperty.type.equalsIgnoreCase("Enum")) {
  126.                      ((StreamTokenizer)this).nextToken();
  127.                      this.tempProperty.xtra_info = new String(super.sval);
  128.                   }
  129.  
  130.                   this.tempInfo.setProperty(this.tempProperty);
  131.                }
  132.             } else {
  133.                this.tempProperty = new CProperty();
  134.                this.tempProperty.bound = true;
  135.                if (super.sval.equals("CONSTRAINEDDEFPROPERTY")) {
  136.                   this.tempProperty.constrained = true;
  137.                }
  138.  
  139.                ((StreamTokenizer)this).nextToken();
  140.                this.tempProperty.type = new String(super.sval);
  141.                ((StreamTokenizer)this).nextToken();
  142.                this.tempProperty.description = new String(super.sval);
  143.                ((StreamTokenizer)this).nextToken();
  144.                this.tempProperty.method = new String(super.sval);
  145.                ((StreamTokenizer)this).nextToken();
  146.                this.tempProperty.def_val = new String(super.sval);
  147.                if (this.tempProperty.type.equalsIgnoreCase("URL") || this.tempProperty.type.equalsIgnoreCase("URL[]") || this.tempProperty.type.equalsIgnoreCase("Enum")) {
  148.                   ((StreamTokenizer)this).nextToken();
  149.                   this.tempProperty.xtra_info = new String(super.sval);
  150.                }
  151.  
  152.                this.tempInfo.setDefproperty(this.tempProperty);
  153.             }
  154.          } else {
  155.             this.tempConnection = new CConnection();
  156.             ((StreamTokenizer)this).nextToken();
  157.             this.tempConnection.form = new String(super.sval);
  158.             ((StreamTokenizer)this).nextToken();
  159.             this.tempConnection.type = new String(super.sval);
  160.             ((StreamTokenizer)this).nextToken();
  161.             this.tempConnection.init = new String(super.sval);
  162.             ((StreamTokenizer)this).nextToken();
  163.             this.tempConnection.expr = new String(super.sval);
  164.             ((StreamTokenizer)this).nextToken();
  165.             this.tempConnection.description = new String(super.sval);
  166.             this.tempConnection.setMethodName(this.tempInfo.getComponentClass());
  167.             this.tempInfo.setConnection(this.tempConnection);
  168.          }
  169.       }
  170.  
  171.       if (this.tempInfo != null) {
  172.          this.vComponentInfo.addElement(this.tempInfo);
  173.          this.tempInfo = null;
  174.       }
  175.  
  176.    }
  177.  
  178.    void write(String var1, String var2, boolean var3) throws IOException {
  179.       boolean var8 = false;
  180.  
  181.       for(int var9 = 0; var9 < this.vComponentInfo.size(); ++var9) {
  182.          ComponentInfo var4 = (ComponentInfo)this.vComponentInfo.elementAt(var9);
  183.          FileWriter var5;
  184.          String var7;
  185.          if (var3) {
  186.             File var10 = new File(var2 + File.separator + var4.getClassPath());
  187.             if (!var10.exists() && !var10.mkdirs()) {
  188.                throw new IOException("unable to create output directory " + var10.getPath());
  189.             }
  190.  
  191.             var7 = var10.getPath();
  192.             var5 = new FileWriter(var2 + File.separator + var4.getClassPath() + File.separator + var4.getAbbreviatedClass() + "BeanInfo.java");
  193.          } else {
  194.             File var19 = new File(var2);
  195.             if (!var19.exists() && !var19.mkdirs()) {
  196.                throw new IOException("unable to create output directory " + var19.getPath());
  197.             }
  198.  
  199.             var7 = var19.getPath();
  200.             var5 = new FileWriter(var2 + File.separator + var4.getAbbreviatedClass() + "BeanInfo.java");
  201.          }
  202.  
  203.          BufferedWriter var6 = new BufferedWriter(var5);
  204.          ((Writer)var6).write("package " + var4.getPackageName() + ";");
  205.          var6.newLine();
  206.          var6.newLine();
  207.          ((Writer)var6).write("import java.beans.*;");
  208.          var6.newLine();
  209.          ((Writer)var6).write("import symantec.itools.beans.*;");
  210.          var6.newLine();
  211.          var6.newLine();
  212.          ((Writer)var6).write("/**");
  213.          var6.newLine();
  214.          ((Writer)var6).write(" * BeanInfo for " + var4.getAbbreviatedClass());
  215.          var6.newLine();
  216.          ((Writer)var6).write(" *");
  217.          var6.newLine();
  218.          ((Writer)var6).write(" */");
  219.          var6.newLine();
  220.          var6.newLine();
  221.          ((Writer)var6).write("public class " + var4.getAbbreviatedClass() + "BeanInfo ");
  222.          ((Writer)var6).write("extends SimpleBeanInfo {");
  223.          var6.newLine();
  224.          var6.newLine();
  225.          ((Writer)var6).write("\tpublic BeanInfo[] getAdditionalBeanInfo() {");
  226.          var6.newLine();
  227.          ((Writer)var6).write("\t\ttry {");
  228.          var6.newLine();
  229.          ((Writer)var6).write("\t\t\tjava.util.Vector v = new java.util.Vector();");
  230.          var6.newLine();
  231.          ((Writer)var6).write("\t\t\tBeanInfo[] rv;");
  232.          var6.newLine();
  233.          ((Writer)var6).write("\t\t\tBeanInfo b;");
  234.          var6.newLine();
  235.          ((Writer)var6).write("\t\t\tClass c = beanClass.getSuperclass();");
  236.          var6.newLine();
  237.          var6.newLine();
  238.          ((Writer)var6).write("\t\t\twhile (c.isAssignableFrom(Object.class) != true) {");
  239.          var6.newLine();
  240.          ((Writer)var6).write("\t\t\t\tb = Introspector.getBeanInfo(c);");
  241.          var6.newLine();
  242.          ((Writer)var6).write("\t\t\t\tv.addElement(b);");
  243.          var6.newLine();
  244.          ((Writer)var6).write("\t\t\t\tc = c.getSuperclass();");
  245.          var6.newLine();
  246.          ((Writer)var6).write("\t\t\t}");
  247.          var6.newLine();
  248.          ((Writer)var6).write("\t\t\trv = new BeanInfo[v.size()];");
  249.          var6.newLine();
  250.          ((Writer)var6).write("\t\t\tv.copyInto(rv);");
  251.          var6.newLine();
  252.          var6.newLine();
  253.          ((Writer)var6).write("\t\t\treturn rv;");
  254.          var6.newLine();
  255.          ((Writer)var6).write("\t\t}");
  256.          var6.newLine();
  257.          ((Writer)var6).write("\t\tcatch (IntrospectionException e) { throw new Error(e.toString());}");
  258.          var6.newLine();
  259.          ((Writer)var6).write("\t}");
  260.          var6.newLine();
  261.          var6.newLine();
  262.          ((Writer)var6).write("\tpublic BeanDescriptor getBeanDescriptor() {");
  263.          var6.newLine();
  264.          ((Writer)var6).write("\t\tSymantecBeanDescriptor bd = new SymantecBeanDescriptor(beanClass);");
  265.          var6.newLine();
  266.          if (var4.getBaseclass() != null && var4.getBaseclass().equals("java.awt.Component")) {
  267.             ((Writer)var6).write("\t\tbd.setCanAddChild(false);");
  268.             var6.newLine();
  269.          }
  270.  
  271.          if (var4.getFlags() != null) {
  272.             ((Writer)var6).write("\t\tbd.setFlags(\"" + var4.getFlags() + "\");");
  273.             var6.newLine();
  274.          }
  275.  
  276.          if (var4.getFolder() != null) {
  277.             ((Writer)var6).write("\t\tbd.setFolder(\"" + var4.getFolder() + "\");");
  278.             var6.newLine();
  279.          }
  280.  
  281.          if (var4.getToolbar() != null) {
  282.             ((Writer)var6).write("\t\tbd.setToolbar(\"" + var4.getToolbar() + "\");");
  283.             var6.newLine();
  284.          }
  285.  
  286.          if (var4.getWinhelp() != null) {
  287.             ((Writer)var6).write("\t\tbd.setWinHelp(\"" + var4.getWinhelp().help_id);
  288.             if (var4.getWinhelp().help_file == null) {
  289.                ((Writer)var6).write("\");");
  290.                var6.newLine();
  291.             } else {
  292.                ((Writer)var6).write(", " + var4.getWinhelp().help_file + "\");");
  293.                var6.newLine();
  294.             }
  295.          }
  296.  
  297.          if (var4.getConnections() != null && var4.getConnections().containsKey("none")) {
  298.             Vector var20 = (Vector)var4.getConnections().get("none");
  299.             var6.newLine();
  300.  
  301.             for(int var11 = 0; var11 < var20.size(); ++var11) {
  302.                ((Writer)var6).write("\t\tbd.addConnectionDescriptor(new ConnectionDescriptor(");
  303.                ((Writer)var6).write("\"" + ((CConnection)var20.elementAt(var11)).form + "\", ");
  304.                ((Writer)var6).write("\"" + ((CConnection)var20.elementAt(var11)).type + "\", ");
  305.                ((Writer)var6).write("\"" + ((CConnection)var20.elementAt(var11)).init + "\",");
  306.                var6.newLine();
  307.                ((Writer)var6).write("\t\t\t\t\t\t\t\t\t\t\t\t\"" + ((CConnection)var20.elementAt(var11)).expr + "\",");
  308.                var6.newLine();
  309.                ((Writer)var6).write("\t\t\t\t\t\t\t\t\t\t\t\t\"" + ((CConnection)var20.elementAt(var11)).description + "\"));");
  310.                var6.newLine();
  311.                var6.newLine();
  312.             }
  313.  
  314.             var4.getConnections().remove("none");
  315.          }
  316.  
  317.          var6.newLine();
  318.          ((Writer)var6).write("\t\treturn (BeanDescriptor) bd;");
  319.          var6.newLine();
  320.          ((Writer)var6).write("\t}");
  321.          var6.newLine();
  322.          if (System.getProperty("os.name").startsWith("Windows")) {
  323.             if (var4.getSmallicon() != null) {
  324.                int var21 = var4.getSmallicon().a.lastIndexOf(92);
  325.                String var26 = var4.getSmallicon().a.substring(var21 + 1);
  326.                if (var4.getSmallicon().a.endsWith(".ico")) {
  327.                   this.iconConverter = new IconFileToGifConverter();
  328.                   var8 = this.iconConverter.icoToGif(var26, var1, var7);
  329.                   if (var8) {
  330.                      var6.newLine();
  331.                      ((Writer)var6).write("\tpublic java.awt.Image getIcon(int iconKind) {");
  332.                      var6.newLine();
  333.                      ((Writer)var6).write("\t\tif (iconKind == BeanInfo.ICON_MONO_16x16 ||");
  334.                      var6.newLine();
  335.                      ((Writer)var6).write("\t\t\ticonKind == BeanInfo.ICON_COLOR_16x16) {");
  336.                      var6.newLine();
  337.                      ((Writer)var6).write("\t\t\tjava.awt.Image img = loadImage(\"" + var4.getAbbreviatedClass() + "C16.gif\");");
  338.                      var6.newLine();
  339.                      ((Writer)var6).write("\t\t\treturn img;");
  340.                      var6.newLine();
  341.                      ((Writer)var6).write("\t\t}");
  342.                      var6.newLine();
  343.                      var6.newLine();
  344.                      ((Writer)var6).write("\t\tif (iconKind == BeanInfo.ICON_MONO_32x32 ||");
  345.                      var6.newLine();
  346.                      ((Writer)var6).write("\t\t\ticonKind == BeanInfo.ICON_COLOR_32x32) {");
  347.                      var6.newLine();
  348.                      ((Writer)var6).write("\t\t\tjava.awt.Image img = loadImage(\"" + var4.getAbbreviatedClass() + "C32.gif\");");
  349.                      var6.newLine();
  350.                      ((Writer)var6).write("\t\t\treturn img;");
  351.                      var6.newLine();
  352.                      ((Writer)var6).write("\t\t}");
  353.                      var6.newLine();
  354.                      var6.newLine();
  355.                      ((Writer)var6).write("\t\treturn null;");
  356.                      var6.newLine();
  357.                      ((Writer)var6).write("\t}");
  358.                      var6.newLine();
  359.                   } else {
  360.                      System.out.println("Unable to convert " + var26 + " to a GIF file.");
  361.                      var6.newLine();
  362.                      ((Writer)var6).write("/********************************************************");
  363.                      var6.newLine();
  364.                      ((Writer)var6).write(" *");
  365.                      var6.newLine();
  366.                      ((Writer)var6).write(" * WE WERE UNABLE TO CONVERT YOUR COMPONENT'S ICON");
  367.                      var6.newLine();
  368.                      ((Writer)var6).write(" * IMAGE TO GIF FORMAT.  PLEASE PROVIDE AN IMPLEMENTATION");
  369.                      var6.newLine();
  370.                      ((Writer)var6).write(" * OF GETICON() WITH GIF OR JPEG FORMATTED ICON IMAGES");
  371.                      var6.newLine();
  372.                      ((Writer)var6).write(" * FOR YOUR COMPONENT IN PLACE OF THIS COMMENT BLOCK.");
  373.                      var6.newLine();
  374.                      ((Writer)var6).write(" *");
  375.                      var6.newLine();
  376.                      ((Writer)var6).write(" ********************************************************/");
  377.                      var6.newLine();
  378.                   }
  379.                } else {
  380.                   var6.newLine();
  381.                   ((Writer)var6).write("/****************************************************");
  382.                   var6.newLine();
  383.                   ((Writer)var6).write(" *");
  384.                   var6.newLine();
  385.                   ((Writer)var6).write(" * YOUR COMPONENT'S ICON RESOURCE IS IN A DLL.");
  386.                   var6.newLine();
  387.                   ((Writer)var6).write(" * PLEASE PROVIDE AN IMPLEMENATION OF GETICON() WITH");
  388.                   var6.newLine();
  389.                   ((Writer)var6).write(" * GIF OR JPEG FORMATTED ICON IMAGES FOR YOUR");
  390.                   var6.newLine();
  391.                   ((Writer)var6).write(" * COMPONENT IN PLACE OF THIS COMMENT BLOCK.");
  392.                   var6.newLine();
  393.                   ((Writer)var6).write(" *");
  394.                   var6.newLine();
  395.                   ((Writer)var6).write(" ****************************************************/");
  396.                   var6.newLine();
  397.                }
  398.             }
  399.          } else if (var4.getIconsuite() != null) {
  400.             var6.newLine();
  401.             ((Writer)var6).write("/********************************************************");
  402.             var6.newLine();
  403.             ((Writer)var6).write(" *");
  404.             var6.newLine();
  405.             ((Writer)var6).write(" * PLEASE PROVIDE AN IMPLEMENTATION OF GETICON() WITH");
  406.             var6.newLine();
  407.             ((Writer)var6).write(" * GIF OR JPEG FORMATTED ICON IMAGES FOR YOUR COMPONENT");
  408.             var6.newLine();
  409.             ((Writer)var6).write(" * IN PLACE OF THIS COMMENT BLOCK.");
  410.             var6.newLine();
  411.             ((Writer)var6).write(" *");
  412.             var6.newLine();
  413.             ((Writer)var6).write(" ********************************************************/");
  414.             var6.newLine();
  415.          }
  416.  
  417.          if (var4.getConnections() != null && !var4.getConnections().isEmpty()) {
  418.             var6.newLine();
  419.             ((Writer)var6).write("\tpublic MethodDescriptor[] getMethodDescriptors() {");
  420.             var6.newLine();
  421.             ((Writer)var6).write("\t\tClass[] args;");
  422.             var6.newLine();
  423.             ((Writer)var6).write("\t\tConnectionDescriptor connection;");
  424.             var6.newLine();
  425.             ((Writer)var6).write("\t\tjava.util.Vector connections;");
  426.             var6.newLine();
  427.             ((Writer)var6).write("\t\tjava.util.Vector md = new java.util.Vector();");
  428.             var6.newLine();
  429.             var6.newLine();
  430.             Vector var22 = new Vector();
  431.             Enumeration var12 = var4.getConnections().elements();
  432.  
  433.             do {
  434.                Vector var27 = (Vector)var12.nextElement();
  435.                String var13 = ((CConnection)var27.firstElement()).method;
  436.                var22.addElement(var13);
  437.                String var14 = ((CConnection)var27.firstElement()).arg;
  438.                ((Writer)var6).write("\t\ttry{");
  439.                var6.newLine();
  440.                if (var14.equalsIgnoreCase("void")) {
  441.                   ((Writer)var6).write("\t\t\targs = null;");
  442.                } else {
  443.                   int var15;
  444.                   if ((var15 = var14.indexOf(44)) == -1) {
  445.                      ((Writer)var6).write("\t\t\targs = new Class[1];");
  446.                      var6.newLine();
  447.                      ((Writer)var6).write("\t\t\targs[0] = " + this.argToClass(var14, var13, var4.getComponentClass()) + " ;");
  448.                   } else {
  449.                      ((Writer)var6).write("\t\t\targs = new Class[2];");
  450.                      var6.newLine();
  451.                      ((Writer)var6).write("\t\t\targs[0] = " + this.argToClass(var14.substring(0, var15), var13, var4.getComponentClass()) + " ;");
  452.                      var6.newLine();
  453.                      ((Writer)var6).write("\t\t\targs[1] = " + this.argToClass(var14.substring(var15 + 1), var13, var4.getComponentClass()) + " ;");
  454.                   }
  455.                }
  456.  
  457.                var6.newLine();
  458.                ((Writer)var6).write("\t\t\tMethodDescriptor " + var13 + " = new MethodDescriptor(");
  459.                ((Writer)var6).write("beanClass.getMethod(\"" + var13 + "\", args));");
  460.                var6.newLine();
  461.                var6.newLine();
  462.                ((Writer)var6).write("\t\t\tconnections = new java.util.Vector();");
  463.                var6.newLine();
  464.  
  465.                for(int var17 = 0; var17 < var27.size(); ++var17) {
  466.                   CConnection var16 = (CConnection)var27.elementAt(var17);
  467.                   ((Writer)var6).write("\t\t\tconnection = new ConnectionDescriptor(");
  468.                   ((Writer)var6).write("\"" + var16.form + "\", ");
  469.                   ((Writer)var6).write("\"" + var16.type + "\", ");
  470.                   ((Writer)var6).write("\"" + var16.init + "\",");
  471.                   var6.newLine();
  472.                   ((Writer)var6).write("\t\t\t\t\t\t\t\t\t\"" + var16.expr + "\",");
  473.                   var6.newLine();
  474.                   ((Writer)var6).write("\t\t\t\t\t\t\t\t\t\"" + var16.description + "\");");
  475.                   var6.newLine();
  476.                   ((Writer)var6).write("\t\t\tconnections.addElement(connection);");
  477.                   var6.newLine();
  478.                   var6.newLine();
  479.                }
  480.  
  481.                ((Writer)var6).write("\t\t\t" + var13 + ".setValue(ConnectionDescriptor.CONNECTIONS, connections);");
  482.                var6.newLine();
  483.                ((Writer)var6).write("\t\t\tmd.addElement(" + var13 + ");");
  484.                var6.newLine();
  485.                ((Writer)var6).write("\t\t} catch (Exception e) { throw new Error(\"" + var13 + ":: \" + e.toString()); }");
  486.                var6.newLine();
  487.                var6.newLine();
  488.             } while(var12.hasMoreElements());
  489.  
  490.             ((Writer)var6).write("\t\tMethodDescriptor[] rv = new MethodDescriptor[md.size()];");
  491.             var6.newLine();
  492.             ((Writer)var6).write("\t\tmd.copyInto(rv);");
  493.             var6.newLine();
  494.             var6.newLine();
  495.             ((Writer)var6).write("\t\treturn rv;");
  496.             var6.newLine();
  497.             ((Writer)var6).write("\t}");
  498.             var6.newLine();
  499.          }
  500.  
  501.          if (var4.getProperty() != null || var4.getDefproperty() != null) {
  502.             var6.newLine();
  503.             ((Writer)var6).write("\tpublic PropertyDescriptor[] getPropertyDescriptors() {");
  504.             var6.newLine();
  505.             ((Writer)var6).write("\t\ttry{");
  506.             var6.newLine();
  507.             if (var4.getDefproperty() != null) {
  508.                ((Writer)var6).write("\t\tPropertyDescriptor defProperty = new PropertyDescriptor(\"");
  509.                ((Writer)var6).write(var4.getDefproperty().getPropertyName() + "\", beanClass);");
  510.                var6.newLine();
  511.                ((Writer)var6).write("\t\tdefProperty.setBound(true);");
  512.                var6.newLine();
  513.                if (var4.getDefproperty().constrained) {
  514.                   ((Writer)var6).write("\t\tdefProperty.setConstrained(true);");
  515.                   var6.newLine();
  516.                } else {
  517.                   ((Writer)var6).write("\t\tdefProperty.setConstrained(false);");
  518.                   var6.newLine();
  519.                }
  520.  
  521.                ((Writer)var6).write("\t\tdefProperty.setDisplayName(\"" + var4.getDefproperty().description + "\");");
  522.                if (var4.getDefproperty().xtra_info != null) {
  523.                   var6.newLine();
  524.                   if (!var4.getDefproperty().type.equalsIgnoreCase("URL") && !var4.getDefproperty().type.equalsIgnoreCase("URL[]")) {
  525.                      if (var4.getDefproperty().type.equalsIgnoreCase("Enum")) {
  526.                         ((Writer)var6).write("\t\tdefProperty.setValue(\"ENUMERATION\", \"" + var4.getDefproperty().xtra_info + "\");");
  527.                      }
  528.                   } else {
  529.                      ((Writer)var6).write("\t\tdefProperty.setValue(\"URLFILTER\", \"" + var4.getDefproperty().xtra_info + "\");");
  530.                   }
  531.                }
  532.  
  533.                var6.newLine();
  534.                var6.newLine();
  535.             }
  536.  
  537.             if (var4.getProperty() != null) {
  538.                for(int var23 = 0; var23 < var4.getProperty().size(); ++var23) {
  539.                   ((Writer)var6).write("\t\tPropertyDescriptor ");
  540.                   ((Writer)var6).write(((CProperty)var4.getProperty().elementAt(var23)).getPropertyName() + " = new PropertyDescriptor(\"");
  541.                   ((Writer)var6).write(((CProperty)var4.getProperty().elementAt(var23)).getPropertyName() + "\", beanClass);");
  542.                   var6.newLine();
  543.                   ((Writer)var6).write("\t\t" + ((CProperty)var4.getProperty().elementAt(var23)).getPropertyName() + ".setBound(true);");
  544.                   var6.newLine();
  545.                   if (((CProperty)var4.getProperty().elementAt(var23)).constrained) {
  546.                      ((Writer)var6).write("\t\t" + ((CProperty)var4.getProperty().elementAt(var23)).getPropertyName() + ".setConstrained(true);");
  547.                      var6.newLine();
  548.                   } else {
  549.                      ((Writer)var6).write("\t\t" + ((CProperty)var4.getProperty().elementAt(var23)).getPropertyName() + ".setConstrained(false);");
  550.                      var6.newLine();
  551.                   }
  552.  
  553.                   ((Writer)var6).write("\t\t" + ((CProperty)var4.getProperty().elementAt(var23)).getPropertyName());
  554.                   ((Writer)var6).write(".setDisplayName(\"" + ((CProperty)var4.getProperty().elementAt(var23)).description + "\");");
  555.                   if (((CProperty)var4.getProperty().elementAt(var23)).xtra_info != null) {
  556.                      var6.newLine();
  557.                      if (!((CProperty)var4.getProperty().elementAt(var23)).type.equalsIgnoreCase("URL") && !((CProperty)var4.getProperty().elementAt(var23)).type.equalsIgnoreCase("URL[]")) {
  558.                         if (((CProperty)var4.getProperty().elementAt(var23)).type.equalsIgnoreCase("Enum")) {
  559.                            ((Writer)var6).write("\t\t" + ((CProperty)var4.getProperty().elementAt(var23)).getPropertyName());
  560.                            ((Writer)var6).write(".setValue(\"ENUMERATION\", \"" + ((CProperty)var4.getProperty().elementAt(var23)).xtra_info + "\");");
  561.                         }
  562.                      } else {
  563.                         ((Writer)var6).write("\t\t" + ((CProperty)var4.getProperty().elementAt(var23)).getPropertyName());
  564.                         ((Writer)var6).write(".setValue(\"URLFILTER\", \"" + ((CProperty)var4.getProperty().elementAt(var23)).xtra_info + "\");");
  565.                      }
  566.                   }
  567.  
  568.                   var6.newLine();
  569.                   var6.newLine();
  570.                }
  571.             }
  572.  
  573.             ((Writer)var6).write("\t\tPropertyDescriptor[] rv = {");
  574.             var6.newLine();
  575.             if (var4.getDefproperty() != null && var4.getProperty() == null) {
  576.                ((Writer)var6).write("\t\t\tdefProperty};");
  577.                var6.newLine();
  578.             } else if (var4.getDefproperty() != null && var4.getProperty() != null) {
  579.                ((Writer)var6).write("\t\t\tdefProperty,");
  580.                var6.newLine();
  581.  
  582.                for(int var25 = 0; var25 < var4.getProperty().size() - 1; ++var25) {
  583.                   ((Writer)var6).write("\t\t\t" + ((CProperty)var4.getProperty().elementAt(var25)).getPropertyName() + ",");
  584.                   var6.newLine();
  585.                }
  586.  
  587.                ((Writer)var6).write("\t\t\t" + ((CProperty)var4.getProperty().lastElement()).getPropertyName());
  588.                ((Writer)var6).write("};");
  589.                var6.newLine();
  590.             } else {
  591.                for(int var24 = 0; var24 < var4.getProperty().size() - 1; ++var24) {
  592.                   ((Writer)var6).write("\t\t\t" + ((CProperty)var4.getProperty().elementAt(var24)).getPropertyName() + ",");
  593.                   var6.newLine();
  594.                }
  595.  
  596.                ((Writer)var6).write("\t\t\t" + ((CProperty)var4.getProperty().lastElement()).getPropertyName());
  597.                ((Writer)var6).write("};");
  598.                var6.newLine();
  599.             }
  600.  
  601.             ((Writer)var6).write("\t\treturn rv;");
  602.             var6.newLine();
  603.             ((Writer)var6).write("\t\t} catch (IntrospectionException e) { throw new Error(e.toString()); }");
  604.             var6.newLine();
  605.             ((Writer)var6).write("\t}");
  606.             var6.newLine();
  607.          }
  608.  
  609.          if (var4.getDefproperty() != null) {
  610.             var6.newLine();
  611.             ((Writer)var6).write("\tpublic int getDefaultPropertyIndex() {");
  612.             var6.newLine();
  613.             ((Writer)var6).write("\t\treturn 0;\t//  the index for our default property is always 0");
  614.             var6.newLine();
  615.             ((Writer)var6).write("\t}");
  616.             var6.newLine();
  617.          }
  618.  
  619.          var6.newLine();
  620.          ((Writer)var6).write("\tprivate final static Class beanClass = ");
  621.          ((Writer)var6).write(var4.getAbbreviatedClass() + ".class;");
  622.          var6.newLine();
  623.          var6.newLine();
  624.          ((Writer)var6).write("\t}\t//  end of class " + var4.getAbbreviatedClass());
  625.          ((Writer)var6).write("BeanInfo");
  626.          var6.close();
  627.       }
  628.  
  629.    }
  630.  
  631.    private String argToClass(String var1, String var2, String var3) {
  632.       if (var1.equals("boolean")) {
  633.          return "java.lang.Boolean.TYPE";
  634.       } else if (var1.equals("char")) {
  635.          return "java.lang.Character.TYPE";
  636.       } else if (var1.equals("byte")) {
  637.          return "java.lang.Byte.TYPE";
  638.       } else if (var1.equals("short")) {
  639.          return "java.lang.Short.TYPE";
  640.       } else if (var1.equals("int")) {
  641.          return "java.lang.Integer.TYPE";
  642.       } else if (var1.equals("long")) {
  643.          return "java.lang.Long.TYPE";
  644.       } else if (var1.equals("float")) {
  645.          return "java.lang.Float.TYPE";
  646.       } else if (var1.equals("double")) {
  647.          return "java.lang.Double.TYPE";
  648.       } else if (var1.equals("void")) {
  649.          return "java.lang.Void.TYPE";
  650.       } else if (var1.equals("String")) {
  651.          return "java.lang.String.class";
  652.       } else if (var1.equals("String[]")) {
  653.          return "java.lang.String[].class";
  654.       } else if (var1.equals("URL")) {
  655.          return "java.net.URL.class";
  656.       } else if (var1.equals("URL[]")) {
  657.          return "java.net.URL[].class";
  658.       } else if (var1.equals("Color")) {
  659.          return "java.awt.Color.class";
  660.       } else if (var1.equals("Font")) {
  661.          return "java.awt.Font.class";
  662.       } else if (var1.equals("Image")) {
  663.          return "java.awt.Image.class";
  664.       } else {
  665.          System.out.println("argToClass:: " + var1 + " not supported as arg type (" + var2 + " in " + var3 + ")");
  666.          return null;
  667.       }
  668.    }
  669. }
  670.