You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by mc...@apache.org on 2002/06/13 08:54:57 UTC

cvs commit: jakarta-avalon-excalibur/merlin/src/java/org/apache/excalibur/configuration ConfigurationUtil.java

mcconnell    2002/06/12 23:54:57

  Modified:    merlin/src/java/org/apache/excalibur/configuration
                        ConfigurationUtil.java
  Log:
  addition of configuration child selection based on attribute name and attribute value
  
  Revision  Changes    Path
  1.2       +31 -0     jakarta-avalon-excalibur/merlin/src/java/org/apache/excalibur/configuration/ConfigurationUtil.java
  
  Index: ConfigurationUtil.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/merlin/src/java/org/apache/excalibur/configuration/ConfigurationUtil.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ConfigurationUtil.java	11 Jun 2002 03:26:55 -0000	1.1
  +++ ConfigurationUtil.java	13 Jun 2002 06:54:57 -0000	1.2
  @@ -10,6 +10,8 @@
   
   package org.apache.excalibur.configuration;
   
  +import java.util.Vector;
  +
   import org.apache.avalon.framework.configuration.Configuration;
   
   /**
  @@ -19,6 +21,8 @@
    */
   public class ConfigurationUtil
   {
  +     private static final Configuration[] EMPTY_CONFS = new Configuration[0];
  +
       /**
        * Returns a simple string representation of the the supplied configuration.
        * @param config a configuration
  @@ -68,6 +72,33 @@
                   buffer.append( "/>" );
               }
           }
  +    }
  +
  +   /**
  +    * Return all occurance of a a configuration child containing the supplied attribute name.
  +    * @param config the configuration
  +    * @param element the name of child elements to select from the configuration
  +    * @param attribute the attribute name to filter
  +    * @param value the attribute value to match (null will match any attribute value)
  +    * @return an array of configuration instances matching the query
  +    */
  +    public Configuration[] match( Configuration config, String element, String attribute, String value )
  +    {
  +        Vector vector = new Vector();
  +        Configuration[] children = config.getChildren( element );
  +        for( int i=0; i<children.length; i++ )
  +        {
  +            String v = children[i].getAttribute( attribute, null );
  +            if( v != null )
  +            {
  +                if(( value == null ) || v.equals( value ))
  +                {
  +                    // it's a match
  +                    vector.add( children[i] );
  +                }
  +            }
  +        }
  +        return (Configuration[]) vector.toArray( EMPTY_CONFS );
       }
   }
   
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>