leosutic    2003/08/10 14:47:44

  Modified:    attributes/compiler/src/java/org/apache/avalon/attributes/compiler
                        AttributeCompiler.java
  Log:
  1. Moved all build stuff into Maven.
  2. Wrote a proper test case.
  3. Included support for attributes attached to fields and constructors.
  4. Slight code cleanups.
  
  Revision  Changes    Path
  1.2       +40 -31    
avalon-sandbox/attributes/compiler/src/java/org/apache/avalon/attributes/compiler/AttributeCompiler.java
  
  Index: AttributeCompiler.java
  ===================================================================
  RCS file: 
/home/cvs/avalon-sandbox/attributes/compiler/src/java/org/apache/avalon/attributes/compiler/AttributeCompiler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AttributeCompiler.java    10 Aug 2003 13:46:08 -0000      1.1
  +++ AttributeCompiler.java    10 Aug 2003 21:47:44 -0000      1.2
  @@ -49,6 +49,9 @@
               XTag tag = (XTag) iter.next ();
               
               String expression = tag.getName () + " " + tag.getValue ();
  +            if (!expression.endsWith (")")) {
  +                expression = expression + "()";
  +            }
               
               if (Character.isUpperCase (expression.charAt (0))) {
                   pw.println ("        " + collectionName + ".add (\n" +
  @@ -90,7 +93,7 @@
           
           String name = xClass.getQualifiedName ();
           File sourceFile = getSourceFile (name);
  -        File destFile = new File (destDir, name.replace ('.', '/') + 
"$Attributes.java");
  +        File destFile = new File (destDir, name.replace ('.', '/') + 
"$__org_apache_avalon_Attributes.java");
           
           if (destFile.exists () && destFile.lastModified () >= 
sourceFile.lastModified ()) {
               return;
  @@ -108,7 +111,7 @@
           
           copyImports (sourceFile, pw);
           
  -        pw.println ("public class " + className + "$Attributes implements 
org.apache.avalon.attributes.AttributeRepositoryClass {");
  +        pw.println ("public class " + className + "$__org_apache_avalon_Attributes 
implements org.apache.avalon.attributes.AttributeRepositoryClass {");
           {
               pw.println ("    private static final java.util.Set classAttributes = 
new java.util.HashSet ();");
               pw.println ("    private static final java.util.Map fieldAttributes = 
new java.util.HashMap ();");
  @@ -141,13 +144,15 @@
               pw.println ("        java.util.Set attrs = null;");
               for (Iterator iter = xClass.getFields ().iterator (); iter.hasNext ();) 
{
                   XField member = (XField) iter.next ();
  -                String key = member.getName ();
  -                
  -                pw.println ("        attrs = new java.util.HashSet ();");
  -                addExpressions (member.getDoc ().getTags (), pw, "attrs", 
sourceFile.getPath ());
  -                pw.println ("        fieldAttributes.put (\"" + key + "\", 
attrs);");
  -                pw.println ("        attrs = null;");
  -                pw.println ();
  +                if (member.getDoc ().getTags ().size () > 0) {
  +                    String key = member.getName ();
  +                    
  +                    pw.println ("        attrs = new java.util.HashSet ();");
  +                    addExpressions (member.getDoc ().getTags (), pw, "attrs", 
sourceFile.getPath ());
  +                    pw.println ("        fieldAttributes.put (\"" + key + "\", 
attrs);");
  +                    pw.println ("        attrs = null;");
  +                    pw.println ();
  +                }
               }
               pw.println ("    }");
               
  @@ -157,17 +162,19 @@
               pw.println ("        java.util.Set attrs = null;");
               for (Iterator iter = xClass.getMethods ().iterator (); iter.hasNext 
();) {
                   XMethod member = (XMethod) iter.next ();
  -                StringBuffer sb = new StringBuffer ();
  -                sb.append (member.getName ()).append ("(");
  -                sb.append (getParameterTypes (member.getParameters ()));
  -                sb.append (")");
  -                String key = sb.toString ();
  -                
  -                pw.println ("        attrs = new java.util.HashSet ();");
  -                addExpressions (member.getDoc ().getTags (), pw, "attrs", 
sourceFile.getPath ());
  -                pw.println ("        methodAttributes.put (\"" + key + "\", 
attrs);");
  -                pw.println ("        attrs = null;");
  -                pw.println ();
  +                if (member.getDoc ().getTags ().size () > 0) {
  +                    StringBuffer sb = new StringBuffer ();
  +                    sb.append (member.getName ()).append ("(");
  +                    sb.append (getParameterTypes (member.getParameters ()));
  +                    sb.append (")");
  +                    String key = sb.toString ();
  +                    
  +                    pw.println ("        attrs = new java.util.HashSet ();");
  +                    addExpressions (member.getDoc ().getTags (), pw, "attrs", 
sourceFile.getPath ());
  +                    pw.println ("        methodAttributes.put (\"" + key + "\", 
attrs);");
  +                    pw.println ("        attrs = null;");
  +                    pw.println ();
  +                }                
               }
               pw.println ("    }");
               
  @@ -178,17 +185,19 @@
               pw.println ("        java.util.Set attrs = null;");
               for (Iterator iter = xClass.getConstructors ().iterator (); 
iter.hasNext ();) {
                   XConstructor member = (XConstructor) iter.next ();
  -                StringBuffer sb = new StringBuffer ();
  -                sb.append ("(");
  -                sb.append (getParameterTypes (member.getParameters ()));
  -                sb.append (")");
  -                String key = sb.toString ();
  -                
  -                pw.println ("        attrs = new java.util.HashSet ();");
  -                addExpressions (member.getDoc ().getTags (), pw, "attrs", 
sourceFile.getPath ());
  -                pw.println ("        constructorAttributes.put (\"" + key + "\", 
attrs);");
  -                pw.println ("        attrs = null;");
  -                pw.println ();
  +                if (member.getDoc ().getTags ().size () > 0) {
  +                    StringBuffer sb = new StringBuffer ();
  +                    sb.append ("(");
  +                    sb.append (getParameterTypes (member.getParameters ()));
  +                    sb.append (")");
  +                    String key = sb.toString ();
  +                    
  +                    pw.println ("        attrs = new java.util.HashSet ();");
  +                    addExpressions (member.getDoc ().getTags (), pw, "attrs", 
sourceFile.getPath ());
  +                    pw.println ("        constructorAttributes.put (\"" + key + 
"\", attrs);");
  +                    pw.println ("        attrs = null;");
  +                    pw.println ();
  +                }
               }
               pw.println ("    }");            
           }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to