de.lmu.ifi.dbs.elki.datasource
Class GeneratorXMLDatabaseConnection

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.datasource.GeneratorXMLDatabaseConnection
All Implemented Interfaces:
DatabaseConnection, InspectionUtilFrequentlyScanned, Parameterizable

public class GeneratorXMLDatabaseConnection
extends Object
implements DatabaseConnection


Nested Class Summary
static class GeneratorXMLDatabaseConnection.Parameterizer
          Parameterization class.
 
Field Summary
private  Random clusterRandom
          Random generator used for initializing cluster generators.
static OptionID CONFIGFILE_ID
          Parameter to give the configuration file
 GeneratorMain gen
          The actual generator class
private static String GENERATOR_SCHEMA_FILE
          File name of the generators XML Schema file.
private static Logging logger
          Logger
static OptionID RANDOMSEED_ID
          Parameter to give the configuration file
static OptionID SIZE_SCALE_ID
          Parameter to give the configuration file
(package private)  double sizescale
          Parameter for scaling the cluster sizes.
(package private)  File specfile
          The configuration file.
private  boolean testAgainstModel
          Set testAgainstModel flag
static Pattern WHITESPACE_PATTERN
          A pattern defining whitespace.
 
Constructor Summary
GeneratorXMLDatabaseConnection(File specfile, double sizescale, Random clusterRandom)
          Constructor.
 
Method Summary
 MultipleObjectsBundle loadData()
          Returns the initial data for a database.
private  void loadXMLSpecification()
          Load the XML configuration file.
private  Vector parseVector(String s)
          Parse a string into a vector.
private  void processElementClipping(GeneratorSingleCluster cluster, Node cur)
          Process a 'clipping' Element in the XML stream.
private  void processElementCluster(Node cur)
          Process a 'cluster' Element in the XML stream.
private  void processElementDataset(Node cur)
          Process a 'dataset' Element in the XML stream.
private  void processElementGamma(GeneratorSingleCluster cluster, Node cur)
          Process a 'gamma' Element in the XML stream.
private  void processElementNormal(GeneratorSingleCluster cluster, Node cur)
          Process a 'normal' Element in the XML stream.
private  void processElementPoint(LinkedList<Vector> points, Node cur)
          Parse a 'point' element (point vector for a static cluster)
private  void processElementRotate(GeneratorSingleCluster cluster, Node cur)
          Process a 'rotate' Element in the XML stream.
private  void processElementStatic(Node cur)
          Process a 'static' cluster Element in the XML stream.
private  void processElementTranslate(GeneratorSingleCluster cluster, Node cur)
          Process a 'translate' Element in the XML stream.
private  void processElementUniform(GeneratorSingleCluster cluster, Node cur)
          Process a 'uniform' Element in the XML stream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

private static Logging logger
Logger


WHITESPACE_PATTERN

public static final Pattern WHITESPACE_PATTERN
A pattern defining whitespace.


CONFIGFILE_ID

public static final OptionID CONFIGFILE_ID
Parameter to give the configuration file


RANDOMSEED_ID

public static final OptionID RANDOMSEED_ID
Parameter to give the configuration file


SIZE_SCALE_ID

public static final OptionID SIZE_SCALE_ID
Parameter to give the configuration file


GENERATOR_SCHEMA_FILE

private static final String GENERATOR_SCHEMA_FILE
File name of the generators XML Schema file.


specfile

File specfile
The configuration file.


sizescale

double sizescale
Parameter for scaling the cluster sizes.


gen

public GeneratorMain gen
The actual generator class


clusterRandom

private Random clusterRandom
Random generator used for initializing cluster generators.


testAgainstModel

private boolean testAgainstModel
Set testAgainstModel flag

Constructor Detail

GeneratorXMLDatabaseConnection

public GeneratorXMLDatabaseConnection(File specfile,
                                      double sizescale,
                                      Random clusterRandom)
Constructor.

Parameters:
specfile - Specification file
sizescale - Size scaling
clusterRandom - Random number generator
Method Detail

loadData

public MultipleObjectsBundle loadData()
Description copied from interface: DatabaseConnection
Returns the initial data for a database.

Specified by:
loadData in interface DatabaseConnection
Returns:
a database object bundle

loadXMLSpecification

private void loadXMLSpecification()
                           throws UnableToComplyException
Load the XML configuration file.

Throws:
UnableToComplyException

processElementDataset

private void processElementDataset(Node cur)
                            throws UnableToComplyException
Process a 'dataset' Element in the XML stream.

Parameters:
cur - Current document nod
Throws:
UnableToComplyException

processElementCluster

private void processElementCluster(Node cur)
                            throws UnableToComplyException
Process a 'cluster' Element in the XML stream.

Parameters:
cur - Current document nod
Throws:
UnableToComplyException

processElementUniform

private void processElementUniform(GeneratorSingleCluster cluster,
                                   Node cur)
                            throws UnableToComplyException
Process a 'uniform' Element in the XML stream.

Parameters:
cluster -
cur - Current document nod
Throws:
UnableToComplyException

processElementNormal

private void processElementNormal(GeneratorSingleCluster cluster,
                                  Node cur)
                           throws UnableToComplyException
Process a 'normal' Element in the XML stream.

Parameters:
cluster -
cur - Current document nod
Throws:
UnableToComplyException

processElementGamma

private void processElementGamma(GeneratorSingleCluster cluster,
                                 Node cur)
                          throws UnableToComplyException
Process a 'gamma' Element in the XML stream.

Parameters:
cluster -
cur - Current document nod
Throws:
UnableToComplyException

processElementRotate

private void processElementRotate(GeneratorSingleCluster cluster,
                                  Node cur)
                           throws UnableToComplyException
Process a 'rotate' Element in the XML stream.

Parameters:
cluster -
cur - Current document nod
Throws:
UnableToComplyException

processElementTranslate

private void processElementTranslate(GeneratorSingleCluster cluster,
                                     Node cur)
                              throws UnableToComplyException
Process a 'translate' Element in the XML stream.

Parameters:
cluster -
cur - Current document nod
Throws:
UnableToComplyException

processElementClipping

private void processElementClipping(GeneratorSingleCluster cluster,
                                    Node cur)
                             throws UnableToComplyException
Process a 'clipping' Element in the XML stream.

Parameters:
cluster -
cur - Current document nod
Throws:
UnableToComplyException

processElementStatic

private void processElementStatic(Node cur)
                           throws UnableToComplyException
Process a 'static' cluster Element in the XML stream.

Parameters:
cur - Current document nod
Throws:
UnableToComplyException

processElementPoint

private void processElementPoint(LinkedList<Vector> points,
                                 Node cur)
                          throws UnableToComplyException
Parse a 'point' element (point vector for a static cluster)

Parameters:
points - current list of points (to append to)
cur - Current document nod
Throws:
UnableToComplyException

parseVector

private Vector parseVector(String s)
                    throws UnableToComplyException
Parse a string into a vector. TODO: move this into utility package?

Parameters:
s - String to parse
Returns:
Vector
Throws:
UnableToComplyException

Release 0.4.0 (2011-09-20_1324)