public ParticipantGenerator(int numberOfEntriesToGenerate, int numhet, int dimhet, int numhom, int dimhom, IValueGenerator valueGenerator, IRule aRuel, IParticipantReaderWriter methodHowToWriteEntriesOut, string filename)
        {
            ruel   = aRuel;
            writer = methodHowToWriteEntriesOut;
            this.valueGenerator = valueGenerator;
            //create list of entries with random values between 0 and 1
            loParticipants = DummyEntries(valueGenerator, numberOfEntriesToGenerate, numhet, dimhet, numhom, dimhom);

            //adjust entries by using ruel e.g. DefaultRuel map value form 0-1 to minValue-maxvalue array
            foreach (Participant e in loParticipants)
            {
                ruel.AdjustParticipant(e);
            }


            //write them to an XML/textfile
            writer.WriteParticipantsToFile(loParticipants, filename);
        }
 /// <summary>
 /// generates a file with some entries
 /// </summary>
 /// <param name="numberOfEntriesToGenerate">how many entries should be created</param>
 /// <param name="ruel">which ruel should restrict the randomnes e.g. default ruel not lower than 0 and not higher than 1</param>
 /// <param name="methodHowToWriteEntriesOut">Which writer is going to write the entries out, e.g. XMLWriter  </param>
 public ParticipantGenerator(int numberOfEntriesToGenerate, IRule aRuel, IParticipantReaderWriter methodHowToWriteEntriesOut, string filename)
     : this(numberOfEntriesToGenerate, 2, 4, 2, 4, new UniformValueGenerator(), aRuel, methodHowToWriteEntriesOut, filename)
 {
 }