You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ma...@apache.org on 2008/02/18 15:00:53 UTC

svn commit: r628747 - in /myfaces/trinidad-maven/trunk: maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/ maven-tagdoc-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/tagdoc/

Author: matzew
Date: Mon Feb 18 06:00:51 2008
New Revision: 628747

URL: http://svn.apache.org/viewvc?rev=628747&view=rev
Log:
TRINIDAD-953

Added:
    myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/ExampleBean.java
Modified:
    myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/AbstractTagBean.java
    myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/ComponentBean.java
    myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/FacesConfigParser.java
    myfaces/trinidad-maven/trunk/maven-tagdoc-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/tagdoc/TagdocReport.java

Modified: myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/AbstractTagBean.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/AbstractTagBean.java?rev=628747&r1=628746&r2=628747&view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/AbstractTagBean.java (original)
+++ myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/AbstractTagBean.java Mon Feb 18 06:00:51 2008
@@ -29,11 +29,27 @@
   private String  _longDescription;
   private QName   _tagName;
   private String  _tagClass;
-  protected Map _properties;
+  protected Map   _properties;
   private int     _tagClassModifiers;
+  private Map     _examples;
+  private int     _exampleIdx = 0;
 
-  public AbstractTagBean() {
-    _properties = new LinkedHashMap();
+  public AbstractTagBean() 
+  {
+    this(false);
+  }
+
+  public AbstractTagBean(boolean isComponentBean) 
+  {
+    // Component Bean does its own thing
+    // with properties.  The other bean
+    // types, i.e. Converters and Validators
+    // use the same properties.
+    if (!isComponentBean)
+    {
+      _properties = new LinkedHashMap();
+    }
+    _examples   = new LinkedHashMap();      
   }
 
   /**
@@ -164,6 +180,51 @@
     return _properties.values().iterator();
   }
 
+  /**
+   * Adds a Example to this component.
+   *
+   * @param example  the example to add
+   */
+  public void addExample(
+    ExampleBean example)
+  {
+    String key = _generateExampleKey();
+    example.setKey(key);
+    _examples.put(key, example);
+  }
+
+  /**
+   * Returns true if this component has any examples.
+   *
+   * @return  true   if this component has any examples,
+   *          false  otherwise
+   */
+  public boolean hasExamples()
+  {
+    return !_examples.isEmpty();
+  }
+
+  /**
+   * Returns the example for this example key.
+   *
+   * @param key  the hashmap example key
+   */
+  public ExampleBean findExample(
+    String key)
+  {
+    return (ExampleBean)_examples.get(key);
+  }
+
+  /**
+   * Returns an iterator for all examples on this component only.
+   *
+   * @return  the example iterator
+   */
+  public Iterator examples()
+  {
+    return _examples.values().iterator();
+  }
+
   public void parseTagClassModifier(
     String modifier)
   {
@@ -225,5 +286,15 @@
   public int propertiesSize()
   {
     return _properties.size();
+  }
+ 
+  /* Get a generated key to use in storing
+   * this example bean in its hashmap.
+   */
+  private String _generateExampleKey()
+  {
+    String key = "Example" + Integer.toString(_exampleIdx);
+    _exampleIdx++;
+    return key;
   }
 }

Modified: myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/ComponentBean.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/ComponentBean.java?rev=628747&r1=628746&r2=628747&view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/ComponentBean.java (original)
+++ myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/ComponentBean.java Mon Feb 18 06:00:51 2008
@@ -20,7 +20,6 @@
 
 import org.apache.myfaces.trinidadbuild.plugin.faces.util.CompoundIterator;
 
-import javax.xml.namespace.QName;
 import java.lang.reflect.Modifier;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
@@ -31,13 +30,14 @@
  * ComponentBean is a Java representation of the faces-config component
  * XML element.
  */
-public class ComponentBean extends ObjectBean
+public class ComponentBean extends AbstractTagBean
 {
   /**
    * Creates a new ComponentBean.
    */
   public ComponentBean()
   {
+    super(true);
     _properties = new LinkedHashMap();
     _facets = new LinkedHashMap();
     _events = new LinkedHashMap();
@@ -206,17 +206,6 @@
   }
 
   /**
-   * Sets the JSP tag handler class for this component.
-   *
-   * @param tagClass  the JSP tag handler class
-   */
-  public void setTagClass(
-    String tagClass)
-  {
-    _tagClass = tagClass;
-  }
-
-  /**
    * Sets the unsupported agents for this component.
    *
    * @param unsupportedAgents  the unsupported agents
@@ -240,17 +229,6 @@
     return _unsupportedAgents;
   }
 
-
-  /**
-   * Returns the JSP tag handler class for this component.
-   *
-   * @return  the JSP tag handler class
-   */
-  public String getTagClass()
-  {
-    return _tagClass;
-  }
-
    /**
    * Sets the JSP tag handler superclass for this component.
    *
@@ -294,27 +272,6 @@
  }
 
   /**
-   * Returns the JSP tag name for this component.
-   *
-   * @return  the JSP tag name
-   */
-  public QName getTagName()
-  {
-    return _tagName;
-  }
-
-  /**
-   * Sets the JSP tag name for this component.
-   *
-   * @param tagName  the JSP tag name
-   */
-  public void setTagName(
-    QName tagName)
-  {
-    _tagName = tagName;
-  }
-
-  /**
    * Sets the namingContainer flag of this property.
    *
    * @param namingContainer  the component namingContainer flag
@@ -419,7 +376,6 @@
     _implementationType = implementationType;
   }
 
-
   /**
    * Adds a property to this component.
    *
@@ -652,7 +608,6 @@
     _children = children;
   }
 
-
   /**
    * Returns true if the component can have children.
    *
@@ -707,23 +662,6 @@
     addTagClassModifier(_parseModifier(modifier));
   }
 
-  private int _parseModifier(
-    String text)
-  {
-    if ("public".equals(text))
-      return Modifier.PUBLIC;
-    else if ("protected".equals(text))
-      return Modifier.PROTECTED;
-    else if ("private".equals(text))
-      return Modifier.PRIVATE;
-    else if ("abstract".equals(text))
-      return Modifier.ABSTRACT;
-    else if ("final".equals(text))
-      return Modifier.FINAL;
-
-    throw new IllegalArgumentException("Unrecognized modifier: " + text);
-  }
-
   /**
    * Parses the unsupported agents for this component into a String array
    * using space as the separator between values.
@@ -1018,8 +956,9 @@
    */
   protected String findJspTagClass()
   {
-    if (_tagClass != null)
-      return _tagClass;
+    String tagClass = getTagClass();
+    if (tagClass != null)
+      return tagClass;
 
     ComponentBean parent = resolveSupertype();
     return (parent != null) ? parent.findJspTagClass() : null;
@@ -1051,8 +990,6 @@
   private String  _componentSuperclass;
   private String  _rendererType;
   private String  _implementationType;
-  private QName   _tagName;
-  private String  _tagClass;
   private String  _tagHandler;
   private String  _tagSuperclass;
   private String  _localName;
@@ -1065,7 +1002,7 @@
   private int     _componentClassModifiers;
   private int     _tagClassModifiers;
   private String[] _unsupportedAgents = new String[0];
-
+  
   static private final String _TRINIDAD_COMPONENT_BASE =
                          "org.apache.myfaces.trinidad.component.UIXComponentBase";
 

Added: myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/ExampleBean.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/ExampleBean.java?rev=628747&view=auto
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/ExampleBean.java (added)
+++ myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/ExampleBean.java Mon Feb 18 06:00:51 2008
@@ -0,0 +1,91 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.myfaces.trinidadbuild.plugin.faces.parse;
+
+/**
+ * ExampleBean is a Java representation of the faces-config component or
+ * renderer Example XML element.
+ */
+public class ExampleBean extends ObjectBean
+{
+  /**
+   * Get source Example Description Text
+   * 
+   * @return source Example Description Text
+   */
+  public String getSourceDescription()
+  {
+    return _sourceDescription;
+  }
+
+  /**
+   * Set source example Description Text.
+   *
+   * @param sourceDescription  source example Description Text.
+   */
+  public void setSourceDescription( String sourceDescription )
+  {
+    _sourceDescription = sourceDescription;
+  }
+
+  /**
+   * Returns source Example.
+   *
+   * @return source Example
+   */
+  public String getSourceCode()
+  {
+    return _source;
+  }
+
+  /**
+   * Set source example.
+   *
+   * @param source  source example to be added to the list.
+   */
+  public void setSourceCode( String source )
+  {
+    _source = source;
+  }
+
+  /**
+   * Returns Example hashmap key.
+   *
+   * @return Example hashmap key
+   */
+  public String getKey()
+  {
+    return _key;
+  }
+
+  /**
+   * Set source example.
+   *
+   * @param key Set key for this example put in 
+   *        ComponentBean _examples hashmap.
+   */
+  protected void setKey( String key )
+  {
+    _key = key;
+  }
+
+  private String _sourceDescription = null;
+  private String _source            = null;
+  private String _key               = null;
+}

Modified: myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/FacesConfigParser.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/FacesConfigParser.java?rev=628747&r1=628746&r2=628747&view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/FacesConfigParser.java (original)
+++ myfaces/trinidad-maven/trunk/maven-faces-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/faces/parse/FacesConfigParser.java Mon Feb 18 06:00:51 2008
@@ -6,9 +6,9 @@
  *  to you under the Apache License, Version 2.0 (the
  *  "License"); you may not use this file except in compliance
  *  with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  *  Unless required by applicable law or agreed to in writing,
  *  software distributed under the License is distributed on an
  *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -83,7 +83,7 @@
     // spf.setXIncludeAware(true);
     Digester digester = new Digester(spf.newSAXParser());
     digester.setNamespaceAware(true);
-    
+
     return digester;
   }
 
@@ -118,7 +118,7 @@
                                    "defaultValue");
     digester.addSetNext("faces-config/component/property", "addProperty",
                         PropertyBean.class.getName());
-    
+
 
     // faces-config/component/facet
     digester.addObjectCreate("faces-config/component/facet", FacetBean.class);
@@ -131,6 +131,16 @@
     // Maven Faces Plugin
     digester.setRuleNamespaceURI("http://myfaces.apache.org/maven-faces-plugin");
 
+    // faces-config/component/facet/example
+    digester.addObjectCreate("faces-config/component/facet/example",
+                             ExampleBean.class);
+    digester.addBeanPropertySetter("faces-config/component/facet/example/source-description",
+                                   "sourceDescription");
+    digester.addBeanPropertySetter("faces-config/component/facet/example/source-code",
+                                   "sourceCode");
+    digester.addSetNext("faces-config/component/facet/example",
+                        "addExample", ExampleBean.class.getName());
+
     // faces-config/component/component-extension
     digester.addBeanPropertySetter("faces-config/component/component-extension/long-description",
                                    "longDescription");
@@ -171,6 +181,16 @@
     digester.addBeanPropertySetter("faces-config/component/component-extension/uix2-node-class",
                                    "nodeClass");
 
+    // faces-config/component/component-extension/example
+    digester.addObjectCreate("faces-config/component/component-extension/example",
+                             ExampleBean.class);
+    digester.addBeanPropertySetter("faces-config/component/component-extension/example/source-description",
+                                   "sourceDescription");
+    digester.addBeanPropertySetter("faces-config/component/component-extension/example/source-code",
+                                   "sourceCode");
+    digester.addSetNext("faces-config/component/component-extension/example",
+                        "addExample", ExampleBean.class.getName());
+
     // faces-config/component/component-extension/event
     digester.addObjectCreate("faces-config/component/component-extension/event", EventRefBean.class);
     digester.addBeanPropertySetter("faces-config/component/component-extension/event/event-type",
@@ -224,7 +244,7 @@
                         MethodSignatureBean.class.getName());
     // faces-config/component/property/property-extension/property-metada
     digester.addBeanPropertySetter("faces-config/component/property/property-extension/property-metadata/use-max-time",
-                                   "useMaxTime");        
+                                   "useMaxTime");
 
 
     // XInclude rules
@@ -233,15 +253,9 @@
                               ComponentIncludeFactory.class);
   }
 
-  protected Digester createDigester() throws ParserConfigurationException, SAXException
+  protected static void addConverterDigesterRules(Digester digester)
   {
-    Digester digester = createEmptyDigester();
-
-    addComponentDigesterRules(digester, true);
-    
-    // Java Enterprise 5.0
     digester.setRuleNamespaceURI("http://java.sun.com/xml/ns/javaee");
-    //digester.addObjectCreate("faces-config", FacesConfigBean.class);
 
     // faces-config/converter
     digester.addObjectCreate("faces-config/converter", ConverterBean.class);
@@ -265,6 +279,40 @@
     digester.addSetNext("faces-config/converter/property", "addProperty",
                         PropertyBean.class.getName());
 
+    // Maven Faces Plugin
+    digester.setRuleNamespaceURI("http://myfaces.apache.org/maven-faces-plugin");
+
+    // faces-config/converter/converter-extension
+    digester.addBeanPropertySetter("faces-config/converter/converter-extension/long-description",
+                                   "longDescription");
+    digester.addBeanPropertySetter("faces-config/converter/converter-extension/tag-class",
+                                   "tagClass");
+    digester.addRule("faces-config/converter/converter-extension/tag-name",
+                     new BeanPropertySetterRule("tagName"));
+    digester.addCallMethod("faces-config/converter/converter-extension/tag-class-modifier",
+                           "parseTagClassModifier", 1);
+    digester.addCallParam("faces-config/converter/converter-extension/tag-class-modifier", 0);
+
+    // faces-config/converter/converter-extension/example
+    digester.addObjectCreate("faces-config/converter/converter-extension/example",
+                             ExampleBean.class);
+    digester.addBeanPropertySetter("faces-config/converter/converter-extension/example/source-description",
+                                   "sourceDescription");
+    digester.addBeanPropertySetter("faces-config/converter/converter-extension/example/source-code",
+                                   "sourceCode");
+    digester.addSetNext("faces-config/converter/converter-extension/example",
+                        "addExample", ExampleBean.class.getName());
+
+    // faces-config/converter/property/property-extension
+    digester.addBeanPropertySetter("faces-config/converter/property/property-extension/tag-attribute-excluded",
+                                   "tagAttributeExcluded");
+  }
+
+  protected static void addValidatorDigesterRules(Digester digester)
+  {
+    // Java Enterprise 5.0
+    digester.setRuleNamespaceURI("http://java.sun.com/xml/ns/javaee");
+
     // faces-config/validator
     digester.addObjectCreate("faces-config/validator", ValidatorBean.class);
     digester.addBeanPropertySetter("faces-config/validator/validator-id",
@@ -287,6 +335,42 @@
     digester.addSetNext("faces-config/validator/property", "addProperty",
                         PropertyBean.class.getName());
 
+    // Maven Faces Plugin
+    digester.setRuleNamespaceURI("http://myfaces.apache.org/maven-faces-plugin");
+
+    // faces-config/validator/validator-extension
+    digester.addBeanPropertySetter("faces-config/validator/validator-extension/long-description",
+                                   "longDescription");
+    digester.addBeanPropertySetter("faces-config/validator/validator-extension/tag-class",
+                                   "tagClass");
+    digester.addRule("faces-config/validator/validator-extension/tag-name",
+                     new BeanPropertySetterRule("tagName"));
+    digester.addCallMethod("faces-config/validator/validator-extension/tag-class-modifier",
+                           "parseTagClassModifier", 1);
+    digester.addCallParam("faces-config/validator/validator-extension/tag-class-modifier", 0);
+
+    // faces-config/validator/validator-extension/example
+    digester.addObjectCreate("faces-config/validator/validator-extension/example",
+                             ExampleBean.class);
+    digester.addBeanPropertySetter("faces-config/validator/validator-extension/example/source-description",
+                                   "sourceDescription");
+    digester.addBeanPropertySetter("faces-config/validator/validator-extension/example/source-code",
+                                   "sourceCode");
+    digester.addSetNext("faces-config/validator/validator-extension/example",
+                        "addExample", ExampleBean.class.getName());
+
+    // faces-config/validator/property/property-extension
+    digester.addBeanPropertySetter("faces-config/validator/property/property-extension/tag-attribute-excluded",
+                                   "tagAttributeExcluded");
+    // faces-config/validator/property/property-extension/property-metada
+    digester.addBeanPropertySetter("faces-config/validator/property/property-extension/property-metadata/use-max-time",
+                                 "useMaxTime");
+  }
+
+  protected static void addRenderKitDigesterRules(Digester digester)
+  {
+    // Java Enterprise 5.0
+    digester.setRuleNamespaceURI("http://java.sun.com/xml/ns/javaee");
 
     // faces-config/render-kit
     digester.addObjectCreate("faces-config/render-kit", RenderKitBean.class);
@@ -307,9 +391,20 @@
     digester.addSetNext("faces-config/render-kit/renderer", "addRenderer",
                         RendererBean.class.getName());
 
+    // Maven Faces Plugin
+    digester.setRuleNamespaceURI("http://myfaces.apache.org/maven-faces-plugin");
 
-    // TBD: JSR-276 metadata (ask Jeff Stephenson)
+    // faces-config/render-kit/renderer/renderer-extension
+    digester.addBeanPropertySetter("faces-config/render-kit/renderer/renderer-extension/component-type",
+                                   "componentType");
+    digester.addBeanPropertySetter("faces-config/render-kit/renderer/renderer-extension/renderer-superclass",
+                                   "rendererSuperclass");
+  }
 
+  protected static void addEventDigesterRules(Digester digester)
+  {
+    // Java Enterprise 5.0
+    // digester.setRuleNamespaceURI("http://java.sun.com/xml/ns/javaee");
 
     // Maven Faces Plugin
     digester.setRuleNamespaceURI("http://myfaces.apache.org/maven-faces-plugin");
@@ -327,45 +422,22 @@
                                    "eventSourceInterface");
     digester.addSetNext("faces-config/faces-config-extension/event", "addEvent",
                         EventBean.class.getName());
+  }
 
-    // faces-config/converter/converter-extension
-    digester.addBeanPropertySetter("faces-config/converter/converter-extension/long-description",
-                                   "longDescription");
-    digester.addBeanPropertySetter("faces-config/converter/converter-extension/tag-class",
-                                   "tagClass");
-    digester.addRule("faces-config/converter/converter-extension/tag-name",
-                     new BeanPropertySetterRule("tagName"));
-    digester.addCallMethod("faces-config/converter/converter-extension/tag-class-modifier",
-                           "parseTagClassModifier", 1);
-    digester.addCallParam("faces-config/converter/converter-extension/tag-class-modifier", 0);
+  protected Digester createDigester() throws ParserConfigurationException, SAXException
+  {
+    Digester digester = createEmptyDigester();
 
-    // faces-config/converter/property/property-extension
-    digester.addBeanPropertySetter("faces-config/converter/property/property-extension/tag-attribute-excluded",
-                                   "tagAttributeExcluded");
+    addComponentDigesterRules(digester, true);
 
-    // faces-config/validator/validator-extension
-    digester.addBeanPropertySetter("faces-config/validator/validator-extension/long-description",
-                                   "longDescription");
-    digester.addBeanPropertySetter("faces-config/validator/validator-extension/tag-class",
-                                   "tagClass");
-    digester.addRule("faces-config/validator/validator-extension/tag-name",
-                     new BeanPropertySetterRule("tagName"));
-    digester.addCallMethod("faces-config/validator/validator-extension/tag-class-modifier",
-                           "parseTagClassModifier", 1);
-    digester.addCallParam("faces-config/validator/validator-extension/tag-class-modifier", 0);
+   //digester.addObjectCreate("faces-config", FacesConfigBean.class);
 
-    // faces-config/validator/property/property-extension
-    digester.addBeanPropertySetter("faces-config/validator/property/property-extension/tag-attribute-excluded",
-                                   "tagAttributeExcluded");
-    // faces-config/validator/property/property-extension/property-metada
-    digester.addBeanPropertySetter("faces-config/validator/property/property-extension/property-metadata/use-max-time",
-                                 "useMaxTime");
+    addConverterDigesterRules(digester);
+    addValidatorDigesterRules(digester);
+    addRenderKitDigesterRules(digester);
+    addEventDigesterRules(digester);
 
-    // faces-config/render-kit/renderer/renderer-extension
-    digester.addBeanPropertySetter("faces-config/render-kit/renderer/renderer-extension/component-type",
-                                   "componentType");
-    digester.addBeanPropertySetter("faces-config/render-kit/renderer/renderer-extension/renderer-superclass",
-                                   "rendererSuperclass");
+    // TBD: JSR-276 metadata (ask Jeff Stephenson)
 
     return digester;
   }

Modified: myfaces/trinidad-maven/trunk/maven-tagdoc-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/tagdoc/TagdocReport.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad-maven/trunk/maven-tagdoc-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/tagdoc/TagdocReport.java?rev=628747&r1=628746&r2=628747&view=diff
==============================================================================
--- myfaces/trinidad-maven/trunk/maven-tagdoc-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/tagdoc/TagdocReport.java (original)
+++ myfaces/trinidad-maven/trunk/maven-tagdoc-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/tagdoc/TagdocReport.java Mon Feb 18 06:00:51 2008
@@ -52,10 +52,12 @@
 import org.apache.maven.reporting.AbstractMavenMultiPageReport;
 import org.apache.maven.reporting.MavenReportException;
 import org.apache.maven.reporting.sink.SinkFactory;
+import org.apache.myfaces.trinidadbuild.plugin.faces.parse.AbstractTagBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.ComponentBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.ConverterBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.EventBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.EventRefBean;
+import org.apache.myfaces.trinidadbuild.plugin.faces.parse.ExampleBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.FacesConfigBean;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.FacesConfigParser;
 import org.apache.myfaces.trinidadbuild.plugin.faces.parse.FacetBean;
@@ -399,6 +401,9 @@
       out.write(" <p>\n");
       _writeComponentSummary(out, component);
       out.write(" </p>\n");
+      out.write(" <p>\n");
+      _writeExamples(out, component);
+      out.write(" </p>\n");
       out.write(" </section>\n");
       
       if (component.hasEvents(true))
@@ -464,6 +469,9 @@
       out.write(" <p>\n");
       _writeConverterSummary(out, converter);
       out.write(" </p>\n");
+      out.write(" <p>\n");
+      _writeExamples(out, converter);
+      out.write(" </p>\n");
       out.write(" </section>\n");
             
       out.write(" <section name=\"Attributes\">\n");
@@ -511,6 +519,9 @@
       out.write(" <p>\n");
       _writeValidatorSummary(out, validator);
       out.write(" </p>\n");
+      out.write(" <p>\n");
+      _writeExamples(out, validator);
+      out.write(" </p>\n");
       out.write(" </section>\n");
             
       out.write(" <section name=\"Attributes\">\n");
@@ -629,7 +640,7 @@
 
     return in;
   }
-  
+
   static private final String _platformAgnosticPath(String path) {
       return path.replace('/', File.separatorChar);
   }
@@ -968,7 +979,7 @@
       {
         if (i > 0)
           out.write(",<br/>");
-        out.write((String) phases[i]);
+        out.write(phases[i]);
       }
 
       out.write("</td>");
@@ -980,9 +991,6 @@
   }
 
 
-
-
-
   private void _writeComponentFacets(Writer out, ComponentBean bean) throws IOException
   {
     // Sort the facets
@@ -1017,6 +1025,50 @@
 
 
 
+  private void _writeExamples(Writer out, AbstractTagBean bean) throws IOException
+  {
+    if (!bean.hasExamples())
+      return;
+    
+    ExampleBean exBean = null;
+
+    // Write header
+    out.write("   <b>Example(s):</b> ");
+    out.write("   <br/>\n");
+    out.write("   <html>\n");
+    
+    // Go through each example, write its description
+    // followed by the example source code.
+    Iterator iter = bean.examples();
+    while (iter.hasNext())
+    {
+      exBean = (ExampleBean) iter.next();
+      String desc   = exBean.getSourceDescription();
+      String source = exBean.getSourceCode();
+      
+      if (desc != null)
+      {
+        desc = desc.replaceAll("<", "&lt;");
+        desc = desc.replaceAll(">", "&gt;");
+        
+        if (!"".equals(desc))
+          out.write("   <p>" + desc + "</p>");
+      }
+
+      if (source != null)
+      {
+        source = source.replaceAll("<", "&lt;");
+        source = source.replaceAll(">", "&gt;");
+        if (!"".equals(source))
+        {
+          out.write("    <div class=\'source\'>\n");
+          out.write("      <pre>\n" + source + "</pre>\n");
+          out.write("    </div>\n");
+        }
+      }
+    }
+    out.write("   </html>\n");
+  }
 
   protected MavenProject getProject()
   {
@@ -1178,7 +1230,7 @@
       List classpathElements = project.getCompileClasspathElements();
       if (!classpathElements.isEmpty())
       {
-        String[] entries = (String[])classpathElements.toArray(new String[0]);
+        String[] entries = (String[]) classpathElements.toArray(new String[0]);
         URL[] urls = new URL[entries.length];
         for (int i=0; i < urls.length; i++)
         {
@@ -1376,4 +1428,4 @@
   static private final String _DOC_SUBDIRECTORY = "tagdoc";
   static private final String[] _NON_DOCUMENTED_AGENTS = {"phone", "voice"};
 
-}
\ No newline at end of file
+}