donaldp 2002/11/10 17:51:11 Modified: src/java/org/apache/avalon/framework/configuration DefaultConfiguration.java Log: Add in some helper methods to make it easier to manipulate the modifiable trees Revision Changes Path 1.24 +52 -0 jakarta-avalon/src/java/org/apache/avalon/framework/configuration/DefaultConfiguration.java Index: DefaultConfiguration.java =================================================================== RCS file: /home/cvs/jakarta-avalon/src/java/org/apache/avalon/framework/configuration/DefaultConfiguration.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- DefaultConfiguration.java 7 Nov 2002 08:35:27 -0000 1.23 +++ DefaultConfiguration.java 11 Nov 2002 01:51:11 -0000 1.24 @@ -434,6 +434,58 @@ } /** + * Add all the attributes, children and value + * from specified configuration element to current + * configuration element. + * + * @param other the {@link Configuration} element + */ + public void addAll( final Configuration other ) + { + checkWriteable(); + + setValue( other.getValue( null ) ); + addAllAttributes( other ); + addAllChildren( other ); + } + + /** + * Add all attributes from specified configuration + * element to current configuration element. + * + * @param other the {@link Configuration} element + */ + public void addAllAttributes( final Configuration other ) + { + checkWriteable(); + + final String[] attributes = other.getAttributeNames(); + for( int i = 0; i < attributes.length; i++ ) + { + final String name = attributes[ i ]; + final String value = other.getAttribute( name ); + setAttribute( name, value ); + } + } + + /** + * Add all child <code>Configuration</code> objects from specified + * configuration element to current configuration element. + * + * @param other the other {@link Configuration} value + */ + public void addAllChildren( final Configuration other ) + { + checkWriteable(); + + final Configuration[] children = other.getChildren(); + for( int i = 0; i < children.length; i++ ) + { + addChild( children[ i ] ); + } + } + + /** * Remove a child <code>Configuration</code> to this configuration element. * @param configuration a <code>Configuration</code> value */
-- To unsubscribe, e-mail: <mailto:avalon-cvs-unsubscribe@;jakarta.apache.org> For additional commands, e-mail: <mailto:avalon-cvs-help@;jakarta.apache.org>