svn commit: rev 22400 - avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks

[email protected]
Newsgroups gmane.comp.jakarta.avalon.cvs
Message-ID <[email protected]>
Author: mcconnell
Date: Wed Jun 30 22:05:40 2004
New Revision: 22400

Modified:
   avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/BlockTask.java
   avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/PropertyTask.java
Log:
Add the "spec" feature to the property task and update the block task to handle the declaration of imports.

Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/BlockTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/BlockTask.java	(original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/BlockTask.java	Wed Jun 30 22:05:40 2004
@@ -48,20 +48,25 @@
     private static final String MAIN = "main";
     private static final String TEST = "test";
 
-    public static class Component
+    public static class Identifiable
     {
         private String m_name;
-        private String m_classname;
-        private String m_profile;
 
-        public Component()
+        public void setName( final String name )
         {
+            m_name = name;
         }
 
-        public void setName( final String name )
+        public String getName()
         {
-            m_name = name;
+            return m_name;
         }
+    }
+
+    public static class Component extends Identifiable
+    {
+        private String m_classname;
+        private String m_profile;
 
         public void setClass( final String classname )
         {
@@ -73,11 +78,6 @@
             m_profile = profile;
         }
 
-        public String getName()
-        {
-            return m_name;
-        }
-
         public String getClassname()
         {
             return m_classname;
@@ -89,9 +89,24 @@
         }
     }
 
+    public static class Include extends Identifiable
+    {
+        private String m_artifact;
+
+        public void setArtifact( final String spec )
+        {
+            m_artifact = spec;
+        }
+
+        public String getArtifact()
+        {
+            return m_artifact;
+        }
+    }
+
     private String m_target;
     private String m_container;
-    private List m_components = new ArrayList();
+    private List m_content = new ArrayList();
     private boolean m_standalone = true;
 
     public void setName( final String name )
@@ -173,10 +188,17 @@
     public Component createComponent()
     {
         final Component component = new Component();
-        m_components.add( component );
+        m_content.add( component );
         return component;
     }
 
+    public Include createInclude()
+    {
+        final Include include = new Include();
+        m_content.add( include );
+        return include;
+    }
+
     public void init()
     {
         super.init();
@@ -208,12 +230,19 @@
         writer.write( "\n  </classloader>" );
         writer.write( "\n" );
 
-        Component[] components = 
-          (Component[]) m_components.toArray( new Component[0] );
+        Identifiable[] components = 
+          (Identifiable[]) m_content.toArray( new Identifiable[0] );
         for( int i=0; i<components.length; i++ )
         {
-            Component component = components[i];
-            writeComponent( writer, component );
+            Identifiable identifiable = components[i];
+            if( identifiable instanceof Component )
+            {
+                writeComponent( writer, (Component) identifiable );
+            }
+            else if( identifiable instanceof Include )
+            {
+                writeInclude( writer, (Include) identifiable );
+            }
         }
 
         writer.write( "\n</container>\n" );
@@ -235,5 +264,14 @@
               + component.getProfile() + "\"\n    class=\""
               + component.getClassname() + "\"/>\n" );
         }
+    }
+
+    private void writeInclude( final Writer writer, final Include include )
+        throws IOException
+    {
+        writer.write( 
+          "\n  <include name=\"" 
+          + include.getName() + "\" artifact=\"" 
+          + include.getArtifact() + "\"/>\n" );
     }
 }

Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/PropertyTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/PropertyTask.java	(original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/PropertyTask.java	Wed Jun 30 22:05:40 2004
@@ -114,6 +114,10 @@
         {
             return resource.getInfo().getURI();
         }
+        else if( m_feature.equals( "spec" ) )
+        {
+            return resource.getInfo().getSpec();
+        }
         else if( resource instanceof Definition )
         {
             final Definition def = (Definition) resource;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.