Overview

Datamixer tries to do the same things as a program written from scratch, to generate mock data, perhaps mix it with real values, and present it to some form of output. Here are a list of requirements, that describe datamixer's goals. Here are examples.

Diagrams in this manual were produced with MagicDraw UML Community Edition 10.5 (http://www.magicdraw.com/).

overview

A collection contains a virtual or real collection of objects. A list is an ordered collection. An iterator returns values from a collection. An iterator can return the next value in the collection, or it can return the current one. A collection can have many iterators. A constants iterator returns the same value each time.

A value wraps a value, and provides useful functionality. It can format the object, and convert it to a variety of datatypes. A Value can be given a name, and if the value contains nested values, it can located a nested value by name.

A value list contains value objects. A value can be located by name in the list.

A container is a list of either collections or iterators. A container iterator is an iterator over a container.

A function is a container iterator. With each generation, it applies an operator (a function strategy) to its arguments, which are the values generated by its nested iterators. It returns its result as a Value object. Custom functions can be created.

The presentation layer reads and writes values from and to data sources such as a filesystem or relational database. A formatter encodes elements and attributes in formats such as XML or CSV. A values list can listen to an attribute, and populate itself with each value read into the attribute. An element or attribute can listen to an iterator, to write the next value from the iterator. Elements and attributes can also get values directly from iterators.

Datamixer objects can be configured in XML. There is an configuration element for each datamixer object.