ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dona...@apache.org
Subject cvs commit: jakarta-ant-myrmidon/container/src/java/org/apache/myrmidon/components/builder ConvertingModelBuilder.java ConvertingProjectBuilder.java
Date Thu, 13 Jun 2002 06:40:29 GMT
donaldp     2002/06/12 23:40:29

  Modified:    container/src/java/org/apache/myrmidon/components/builder
                        ConvertingProjectBuilder.java
  Added:       container/src/java/org/apache/myrmidon/components/builder
                        ConvertingModelBuilder.java
  Log:
  Extract the ant1 -> myrmidon converting behaviour into ModelBuilder.
  
  Now all the ProjectBuilders are almost identical except for the ModelBuilder they use. We
should probably try to reog so there is only one Project Builder and looks up specified ModelBuilder
  
  Revision  Changes    Path
  1.14      +4 -42     jakarta-ant-myrmidon/container/src/java/org/apache/myrmidon/components/builder/ConvertingProjectBuilder.java
  
  Index: ConvertingProjectBuilder.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant-myrmidon/container/src/java/org/apache/myrmidon/components/builder/ConvertingProjectBuilder.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- ConvertingProjectBuilder.java	11 Jun 2002 05:30:47 -0000	1.13
  +++ ConvertingProjectBuilder.java	13 Jun 2002 06:40:29 -0000	1.14
  @@ -7,7 +7,7 @@
    */
   package org.apache.myrmidon.components.builder;
   
  -import org.apache.myrmidon.api.metadata.ModelElement;
  +import org.apache.myrmidon.interfaces.builder.ModelBuilder;
   
   /**
    * A simple ProjectBuilder, which programmatically converts an Ant1 Project
  @@ -23,46 +23,8 @@
   public class ConvertingProjectBuilder
       extends DefaultProjectBuilder
   {
  -    /**
  -     * Transforms the project model.  This implementation does nothing.
  -     */
  -    protected void transformProject( final ModelElement model )
  -        throws Exception
  +    protected ModelBuilder getModelBuilder( final String systemID )
       {
  -        // Check the version, if it's present, just use this config.
  -        // TODO: check for version < 2.0
  -        if( model.getAttribute( VERSION_ATTRIBUTE ) != null )
  -        {
  -            return;
  -        }
  -
  -        // Put a new version attribute.
  -        model.setAttribute( VERSION_ATTRIBUTE, "2.0" );
  -
  -        // Move all the non <target> elements (implicit target) to before
  -        // any <target> elements.
  -        final ModelElement[] children = model.getChildren();
  -        int insertPos = 0;
  -        for( int i = 0; i < children.length; i++ )
  -        {
  -            final ModelElement child = children[ i ];
  -
  -            if( ! child.getName().equals( "target" ) )
  -            {
  -                if( i > insertPos )
  -                {
  -                    model.removeChild( child );
  -                    model.addChild( insertPos, child );
  -                }
  -                insertPos++;
  -            }
  -        }
  -
  -        // Add an "import" task for the ant1 tasks - this is the first
  -        // Task in the implicit target.
  -        final ModelElement typelibDeclaration =
  -            new ModelElement( "import", model.getLocation() );
  -        typelibDeclaration.setAttribute( "library", "ant1" );
  -        model.addChild( 0, typelibDeclaration );
  +        return new ConvertingModelBuilder();
       }
   }
  
  
  
  1.1                  jakarta-ant-myrmidon/container/src/java/org/apache/myrmidon/components/builder/ConvertingModelBuilder.java
  
  Index: ConvertingModelBuilder.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included  with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.myrmidon.components.builder;
  
  import org.apache.myrmidon.api.metadata.ModelElement;
  import org.apache.myrmidon.api.metadata.ModelException;
  
  /**
   * A simple ModelBuilder, which programmatically converts an Ant1 Project
   * configuration into a Myrmidon one.
   *
   * @author <a href="mailto:peter@apache.org">Peter Donald</a>
   * @author <a href="mailto:darrell@apache.org">Darrell DeBoer</a>
   * @version $Revision: 1.1 $ $Date: 2002/06/13 06:40:29 $
   *
   * @ant.type type="model-builder" name="xml"
   * @ant.type type="model-builder" name="ant"
   * @ant.type type="model-builder" name="default"
   */
  public class ConvertingModelBuilder
      extends DefaultModelBuilder
  {
      public ModelElement build( final String source )
          throws ModelException
      {
          final ModelElement model = super.build( source );
  
          // Check the version, if it's present, just use this config.
          // TODO: check for version < 2.0
          if( model.getAttribute( DefaultProjectBuilder.VERSION_ATTRIBUTE ) != null )
          {
              return model;
          }
  
          // Put a new version attribute.
          model.setAttribute( DefaultProjectBuilder.VERSION_ATTRIBUTE, "2.0" );
  
          // Move all the non <target> elements (implicit target) to before
          // any <target> elements.
          final ModelElement[] children = model.getChildren();
          int insertPos = 0;
          for( int i = 0; i < children.length; i++ )
          {
              final ModelElement child = children[ i ];
  
              if( !child.getName().equals( "target" ) )
              {
                  if( i > insertPos )
                  {
                      model.removeChild( child );
                      model.addChild( insertPos, child );
                  }
                  insertPos++;
              }
          }
  
          // Add an "import" task for the ant1 tasks - this is the first
          // Task in the implicit target.
          final ModelElement typelibDeclaration =
              new ModelElement( "import", model.getLocation() );
          typelibDeclaration.setAttribute( "library", "ant1" );
          model.addChild( 0, typelibDeclaration );
  
          return model;
      }
  }
  
  
  

--
To unsubscribe, e-mail:   <mailto:ant-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-dev-help@jakarta.apache.org>


Mime
View raw message