Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/arranger/jarl/ant/GenerateDocletInfo.java


1   package com.arranger.jarl.ant;
2   
3   import com.arranger.jarl.util.doclet.JarlDoclet;
4   import com.arranger.jarl.util.doclet.JarlAttributeDef;
5   import com.sun.tools.javadoc.Main;
6   import org.apache.tools.ant.BuildException;
7   import org.apache.tools.ant.Task;
8   
9   import java.io.ByteArrayOutputStream;
10  import java.io.OutputStream;
11  import java.io.PrintWriter;
12  import java.util.Iterator;
13  import java.util.Map;
14  
15  /**
16   * GenerateDocletInfo created on Mar 14, 2003
17   */
18  public class GenerateDocletInfo extends Task {
19  
20      protected String m_widgetXML;
21      protected String m_strokeXML;
22      protected String m_traitXML;
23      protected String m_filterXML;
24      protected String m_commonXML;
25  
26      public void setWidgetXML(String widgetXML) {
27          m_widgetXML = widgetXML;
28      }
29  
30      public void setStrokeXML(String strokeXML) {
31          m_strokeXML = strokeXML;
32      }
33  
34      public void setTraitXML(String traitXML) {
35          m_traitXML = traitXML;
36      }
37  
38      public void setFilterXML(String filterXML) {
39          m_filterXML = filterXML;
40      }
41  
42      public void setCommonXML(String commonXML) {
43          m_commonXML = commonXML;
44      }
45  
46      public void execute() throws BuildException {
47          String[] args = {
48              "-d", "docs",
49              "-sourcepath", "src",
50              "com.arranger.jarl.base",
51              "com.arranger.jarl.trait.base",
52              "com.arranger.jarl.stroke.base",
53              "com.arranger.jarl.widget.base",
54              "com.arranger.jarl.widget.container",
55              "com.arranger.jarl.widget.filter",
56              "com.arranger.jarl.widget",
57              "com.arranger.jarl.filter.base",
58              "com.arranger.jarl.filter.paint",
59          };
60  
61          OutputStream os = new ByteArrayOutputStream();
62          Main.execute("jarlDoclet",
63              new PrintWriter(os),
64              new PrintWriter(os),
65              new PrintWriter(os),
66              JarlDoclet.class.getName(),
67              args);
68          JarlDoclet jarlDoclet = JarlDoclet.getJarlDoclet();
69          System.setProperty(m_widgetXML, dumpAttrs(jarlDoclet.getWidgetMap()));
70          System.setProperty(m_strokeXML, dumpAttrs(jarlDoclet.getStrokeMap()));
71          System.setProperty(m_traitXML, dumpAttrs(jarlDoclet.getTraitMap()));
72          System.setProperty(m_filterXML, dumpAttrs(jarlDoclet.getFilterMap()));
73          System.setProperty(m_commonXML, dumpAttrs(jarlDoclet.getCommonMap()));
74      }
75  
76      protected String dumpAttrs(Map attributeDefMap) {
77          StringBuffer buffer = new StringBuffer();
78          for (Iterator it = attributeDefMap.values().iterator(); it.hasNext();) {
79              JarlAttributeDef attributeDef = (JarlAttributeDef)it.next();
80  
81              buffer.append("<xs:attribute name=\"" + attributeDef.getName() +
82                   "\" type=\"" + attributeDef.getType() + "\" use=\"optional\" />");
83              //buffer.append("\r\n");
84          }
85  
86          return buffer.toString();
87      }
88  }