CVS: jcontainer/loom/engine/src/java/org/jcontainer/loom/components/configuration/merger ConfigurationMerger.java,1.4,1.5
Peter Donald <pdonald-yCVjj/[email protected]> Mon, 26 Jan 2004 20:46:23 -0600
| Newsgroups | gmane.comp.java.jcontainer.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/jcontainer/jcontainer/loom/engine/src/java/org/jcontainer/loom/components/configuration/merger
In directory hogshead.codehaus.org:/tmp/cvs-serv7964/loom/engine/src/java/org/jcontainer/loom/components/configuration/merger
Modified Files:
ConfigurationMerger.java
Log Message:
Make sure children are added in the correct order
Index: ConfigurationMerger.java
===================================================================
RCS file: /cvsroot/jcontainer/jcontainer/loom/engine/src/java/org/jcontainer/loom/components/configuration/merger/ConfigurationMerger.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- ConfigurationMerger.java 3 Dec 2003 10:44:40 -0000 1.4
+++ ConfigurationMerger.java 27 Jan 2004 02:42:51 -0000 1.5
@@ -88,6 +88,7 @@
import java.util.ArrayList;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import org.jcontainer.dna.Configuration;
import org.jcontainer.dna.ConfigurationException;
@@ -154,21 +155,20 @@
final Configuration[] lc = layer.getChildren();
final Configuration[] bc = base.getChildren();
final Set baseUsed = new HashSet();
+ final List toMergeUsed = new ArrayList();
for( int i = 0; i < lc.length; i++ )
{
- final Configuration mergeWith = getMergePartner( lc[ i ],
- layer,
- base );
+ final Configuration mergeWith =
+ getMergePartner( lc[ i ], layer, base );
if( null == mergeWith )
{
- merged.addChild( lc[ i ] );
+ toMergeUsed.add( lc[ i ] );
}
else
{
- merged.addChild( merge( lc[ i ], mergeWith ) );
-
+ toMergeUsed.add( merge( lc[ i ], mergeWith ) );
baseUsed.add( mergeWith );
}
}
@@ -180,6 +180,12 @@
merged.addChild( bc[ i ] );
}
}
+
+ final int count = toMergeUsed.size();
+ for( int i = 0; i < count; i++ )
+ {
+ merged.addChild( (Configuration)toMergeUsed.get( i ) );
+ }
}
private static Configuration getMergePartner( final Configuration toMerge,
@@ -300,11 +306,12 @@
}
else
{
- String v = children[ i ].getAttribute( attribute, null );
+ final String v =
+ children[ i ].getAttribute( attribute, null );
if( v != null )
{
- if( ( value == null ) || v.equals( value ) )
+ if( (value == null) || v.equals( value ) )
{
// it's a match
list.add( children[ i ] );