public JsonNode sample() {
ArrayNode r = nodeFactory.arrayNode();
double t = start;
double averageInterval = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS) / transactionsPerDay.nextDouble();
Exponential interval = new Exponential(1 / averageInterval, gen);
Date date = new Date();
boolean compromised = false;
while (t < end) {
ObjectNode transaction = new ObjectNode(nodeFactory);
t += interval.nextDouble();
date.setTime((long) t);
transaction.set("timestamp", new LongNode((long) (t / 1000)));
transaction.set("date", new TextNode(df.format(date)));
Integer merchantId = merchant.sample();
transaction.set("merchant", new IntNode(merchantId));