diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/datasource/GeneratorXMLDatabaseConnection.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/datasource/GeneratorXMLDatabaseConnection.java | 50 |
1 files changed, 36 insertions, 14 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/datasource/GeneratorXMLDatabaseConnection.java b/src/de/lmu/ifi/dbs/elki/datasource/GeneratorXMLDatabaseConnection.java index 5d3dbbf9..faf557f0 100644 --- a/src/de/lmu/ifi/dbs/elki/datasource/GeneratorXMLDatabaseConnection.java +++ b/src/de/lmu/ifi/dbs/elki/datasource/GeneratorXMLDatabaseConnection.java @@ -52,7 +52,7 @@ import de.lmu.ifi.dbs.elki.data.synthetic.bymodel.GeneratorStatic; import de.lmu.ifi.dbs.elki.datasource.bundle.MultipleObjectsBundle; import de.lmu.ifi.dbs.elki.logging.Logging; import de.lmu.ifi.dbs.elki.math.linearalgebra.Vector; -import de.lmu.ifi.dbs.elki.math.statistics.distribution.Distribution; +import de.lmu.ifi.dbs.elki.math.statistics.distribution.DistributionWithRandom; import de.lmu.ifi.dbs.elki.math.statistics.distribution.GammaDistribution; import de.lmu.ifi.dbs.elki.math.statistics.distribution.NormalDistribution; import de.lmu.ifi.dbs.elki.math.statistics.distribution.UniformDistribution; @@ -73,6 +73,8 @@ import de.lmu.ifi.dbs.elki.utilities.xml.XMLNodeIterator; * supported) data sets that satisfy a given specification file. * * @author Erich Schubert + * + * @apiviz.composedOf GeneratorMain */ public class GeneratorXMLDatabaseConnection implements DatabaseConnection { /** @@ -237,7 +239,9 @@ public class GeneratorXMLDatabaseConnection implements DatabaseConnection { testAgainstModel = (Integer.valueOf(testmod) != 0); } // TODO: check for unknown attributes. - for(Node child : new XMLNodeIterator(cur.getFirstChild())) { + XMLNodeIterator iter = new XMLNodeIterator(cur.getFirstChild()); + while(iter.hasNext()) { + Node child = iter.next(); if(child.getNodeName() == "cluster") { processElementCluster(gen, child); } @@ -285,7 +289,9 @@ public class GeneratorXMLDatabaseConnection implements DatabaseConnection { GeneratorSingleCluster cluster = new GeneratorSingleCluster(name, size, overweight, newRand); // TODO: check for unknown attributes. - for(Node child : new XMLNodeIterator(cur.getFirstChild())) { + XMLNodeIterator iter = new XMLNodeIterator(cur.getFirstChild()); + while(iter.hasNext()) { + Node child = iter.next(); if(child.getNodeName() == "uniform") { processElementUniform(cluster, child); } @@ -334,11 +340,13 @@ public class GeneratorXMLDatabaseConnection implements DatabaseConnection { // *** new uniform generator Random random = cluster.getNewRandomGenerator(); - Distribution generator = new UniformDistribution(min, max, random); + DistributionWithRandom generator = new UniformDistribution(min, max, random); cluster.addGenerator(generator); // TODO: check for unknown attributes. - for(Node child : new XMLNodeIterator(cur.getFirstChild())) { + XMLNodeIterator iter = new XMLNodeIterator(cur.getFirstChild()); + while(iter.hasNext()) { + Node child = iter.next(); if(child.getNodeType() == Node.ELEMENT_NODE) { logger.warning("Unknown element in XML specification file: " + child.getNodeName()); } @@ -366,11 +374,13 @@ public class GeneratorXMLDatabaseConnection implements DatabaseConnection { // *** New normal distribution generator Random random = cluster.getNewRandomGenerator(); - Distribution generator = new NormalDistribution(mean, stddev, random); + DistributionWithRandom generator = new NormalDistribution(mean, stddev, random); cluster.addGenerator(generator); // TODO: check for unknown attributes. - for(Node child : new XMLNodeIterator(cur.getFirstChild())) { + XMLNodeIterator iter = new XMLNodeIterator(cur.getFirstChild()); + while(iter.hasNext()) { + Node child = iter.next(); if(child.getNodeType() == Node.ELEMENT_NODE) { logger.warning("Unknown element in XML specification file: " + child.getNodeName()); } @@ -398,11 +408,13 @@ public class GeneratorXMLDatabaseConnection implements DatabaseConnection { // *** New normal distribution generator Random random = cluster.getNewRandomGenerator(); - Distribution generator = new GammaDistribution(k, theta, random); + DistributionWithRandom generator = new GammaDistribution(k, theta, random); cluster.addGenerator(generator); // TODO: check for unknown attributes. - for(Node child : new XMLNodeIterator(cur.getFirstChild())) { + XMLNodeIterator iter = new XMLNodeIterator(cur.getFirstChild()); + while(iter.hasNext()) { + Node child = iter.next(); if(child.getNodeType() == Node.ELEMENT_NODE) { logger.warning("Unknown element in XML specification file: " + child.getNodeName()); } @@ -447,7 +459,9 @@ public class GeneratorXMLDatabaseConnection implements DatabaseConnection { cluster.addRotation(axis1 - 1, axis2 - 1, Math.toRadians(angle)); // TODO: check for unknown attributes. - for(Node child : new XMLNodeIterator(cur.getFirstChild())) { + XMLNodeIterator iter = new XMLNodeIterator(cur.getFirstChild()); + while(iter.hasNext()) { + Node child = iter.next(); if(child.getNodeType() == Node.ELEMENT_NODE) { logger.warning("Unknown element in XML specification file: " + child.getNodeName()); } @@ -475,7 +489,9 @@ public class GeneratorXMLDatabaseConnection implements DatabaseConnection { cluster.addTranslation(offset); // TODO: check for unknown attributes. - for(Node child : new XMLNodeIterator(cur.getFirstChild())) { + XMLNodeIterator iter = new XMLNodeIterator(cur.getFirstChild()); + while(iter.hasNext()) { + Node child = iter.next(); if(child.getNodeType() == Node.ELEMENT_NODE) { logger.warning("Unknown element in XML specification file: " + child.getNodeName()); } @@ -509,7 +525,9 @@ public class GeneratorXMLDatabaseConnection implements DatabaseConnection { cluster.setClipping(cmin, cmax); // TODO: check for unknown attributes. - for(Node child : new XMLNodeIterator(cur.getFirstChild())) { + XMLNodeIterator iter = new XMLNodeIterator(cur.getFirstChild()); + while(iter.hasNext()) { + Node child = iter.next(); if(child.getNodeType() == Node.ELEMENT_NODE) { logger.warning("Unknown element in XML specification file: " + child.getNodeName()); } @@ -531,7 +549,9 @@ public class GeneratorXMLDatabaseConnection implements DatabaseConnection { ArrayList<Vector> points = new ArrayList<Vector>(); // TODO: check for unknown attributes. - for(Node child : new XMLNodeIterator(cur.getFirstChild())) { + XMLNodeIterator iter = new XMLNodeIterator(cur.getFirstChild()); + while(iter.hasNext()) { + Node child = iter.next(); if(child.getNodeName() == "point") { processElementPoint(points, child); } @@ -569,7 +589,9 @@ public class GeneratorXMLDatabaseConnection implements DatabaseConnection { points.add(point); // TODO: check for unknown attributes. - for(Node child : new XMLNodeIterator(cur.getFirstChild())) { + XMLNodeIterator iter = new XMLNodeIterator(cur.getFirstChild()); + while(iter.hasNext()) { + Node child = iter.next(); if(child.getNodeType() == Node.ELEMENT_NODE) { logger.warning("Unknown element in XML specification file: " + child.getNodeName()); } |