Author: hlship
Date: Tue Jun 7 01:23:01 2011
New Revision: 1132851
URL: http://svn.apache.org/viewvc?rev=1132851&view=rev
Log:
TAP5-1528: Show parameters & events inherited from base classes
Modified:
tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/ClassDescription.java
tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/TapestryDocTaglet.java
Modified:
tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/ClassDescription.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/ClassDescription.java?rev=1132851&r1=1132850&r2=1132851&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/ClassDescription.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/ClassDescription.java
Tue Jun 7 01:23:01 2011
@@ -43,12 +43,27 @@ public class ClassDescription
*/
public final Map<String, String> events =
CollectionFactory.newCaseInsensitiveMap();
+ public ClassDescription()
+ {
+ this.classDoc = null;
+ }
+
public ClassDescription(ClassDoc classDoc, ClassDescriptionSource source)
{
this.classDoc = classDoc;
loadEvents();
loadParameters(source);
+
+ ClassDoc parentDoc = classDoc.superclass();
+
+ if (parentDoc != null)
+ {
+ ClassDescription parentDescription =
source.getDescription(classDoc.superclass().qualifiedName());
+
+ mergeInto(events, parentDescription.events);
+ mergeInto(parameters, parentDescription.parameters);
+ }
}
private void loadEvents()
@@ -78,6 +93,18 @@ public class ClassDescription
}
}
+ private static <K, V> void mergeInto(Map<K, V> target, Map<K, V> source)
+ {
+ for (K key : source.keySet())
+ {
+ if (!target.containsKey(key))
+ {
+ V value = source.get(key);
+ target.put(key, value);
+ }
+ }
+ }
+
private void loadParameters(ClassDescriptionSource source)
{
for (FieldDoc fd : classDoc.fields(false))
@@ -136,6 +163,10 @@ public class ClassDescription
{
ClassDescription componentCD =
source.getDescription(currentClassName);
+ if (componentCD.classDoc == null)
+ throw new IllegalArgumentException(String.format("Published
parameter '%s' from %s not found.", name,
+ fd.qualifiedName()));
+
if (componentCD.parameters.containsKey(name)) { return
componentCD.parameters.get(name); }
currentClassName = componentCD.classDoc.superclass().typeName();
Modified:
tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/TapestryDocTaglet.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/TapestryDocTaglet.java?rev=1132851&r1=1132850&r2=1132851&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/TapestryDocTaglet.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-javadoc/src/main/java/org/apache/tapestry5/javadoc/TapestryDocTaglet.java
Tue Jun 7 01:23:01 2011
@@ -94,8 +94,14 @@ public class TapestryDocTaglet implement
if (result == null)
{
+ // System.err.printf("*** Search for CD %s ...\n", className);
+
ClassDoc cd = firstSeen.findClass(className);
- result = new ClassDescription(cd, this);
+
+ // System.err.printf("CD %s ... %s\n", className, cd == null ?
"NOT found" : "found");
+
+ result = cd == null ? new ClassDescription() : new
ClassDescription(cd, this);
+
classDescriptions.put(className, result);
}