avalon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From craft...@apache.org
Subject cvs commit: jakarta-avalon-excalibur/xfc/src/java/org/apache/excalibur/xfc/modules Fortress.java
Date Tue, 08 Oct 2002 10:42:32 GMT
crafterm    2002/10/08 03:42:32

  Modified:    xfc/src/java/org/apache/excalibur/xfc/modules Fortress.java
  Log:
  Fixed RoleRef generation to work correctly for single definition
  components, in particular how shorthands are treated.
  
  Revision  Changes    Path
  1.4       +46 -4     jakarta-avalon-excalibur/xfc/src/java/org/apache/excalibur/xfc/modules/Fortress.java
  
  Index: Fortress.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/xfc/src/java/org/apache/excalibur/xfc/modules/Fortress.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Fortress.java	7 Oct 2002 17:13:17 -0000	1.3
  +++ Fortress.java	8 Oct 2002 10:42:32 -0000	1.4
  @@ -126,6 +126,27 @@
           throws Exception
       {
           Configuration[] hints = role.getChildren( "component" );
  +
  +        if ( hints.length > 1 )
  +        {
  +            return buildMultipleComponentRoleRef( role );
  +        }
  +
  +        return buildSingleComponentRoleRef( role );
  +    }
  +
  +    /**
  +     * Method to construct a {@link RoleRef} object from a Configuration
  +     * definition that defines a multiple component based role.
  +     *
  +     * @param role a <code>Configuration</code> definition of a role
  +     * @return a {@link RoleRef} instance
  +     * @exception Exception if an error occurs
  +     */
  +    private RoleRef buildMultipleComponentRoleRef( final Configuration role )
  +        throws Exception
  +    {
  +        Configuration[] hints = role.getChildren( "component" );
           Definition[] definitions = new Definition[ hints.length ];
   
           for ( int i = 0; i < hints.length; ++i )
  @@ -134,11 +155,33 @@
                   new Definition(
                       getHintClass( hints[i] ),
                       getShorthand( hints[i] ),
  -                    getHandler( getHintClass( hints[i] ) )
  +                    getHandler( hints[i] )
                   );
           }
   
  -        return new RoleRef( getRole( role ), getShorthand( role ), definitions );
  +        return new RoleRef( getRole( role ), "UNKNOWN-REVISIT", definitions );
  +    }
  +
  +    /**
  +     * Method to create a {@link RoleRef} object for a Configuration 
  +     * definition that defines a single component based role.
  +     *
  +     * @param role a <code>Configuration</code> definition of a role
  +     * @return a {@link RoleRef} instance
  +     * @exception Exception if an error occurs
  +     */
  +    private RoleRef buildSingleComponentRoleRef( final Configuration role )
  +        throws Exception
  +    {
  +        Configuration config = role.getChild( "component" );
  +        Definition definition =
  +            new Definition(
  +                getHintClass( config ),
  +                getShorthand( config ),
  +                getHandler( config )
  +            );
  +
  +        return new RoleRef( getRole( role ), getShorthand( config ), definition );
       }
   
       /**
  @@ -240,7 +283,6 @@
           }
   
           role.setAttribute( "name", ref.getRole() );
  -        role.setAttribute( "shorthand", ref.getShorthand() );
   
           return role;
       }
  
  
  

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


Mime
View raw message