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>