TreeMapGenerator.java
/*
* Copyright 2000-2014 Namics AG. All rights reserved.
*/
package com.namics.commons.random.generator.basic;
import com.namics.commons.random.RandomData;
import com.namics.commons.random.generator.InformedRandomGenerator;
import com.namics.commons.random.generator.RandomGenerator;
import com.namics.commons.random.support.Utils;
import java.lang.reflect.Type;
import java.util.*;
/**
* TreeMapGenerator.
*
* @author aschaefer
* @since 20.02.14 16:58
*/
public class TreeMapGenerator implements RandomGenerator, InformedRandomGenerator {
@Override
public TreeMap random() {
return new TreeMap();
}
@Override
public Object random(Object... information) {
TreeMap result = random();
Type[] generics = Utils.objectsOfType(Type.class, information);
String[] fields = Utils.objectsOfType(String.class, information);
if (generics.length == 2) {
Type keyClass = generics[0];
Type valueClass = generics[1];
for (int count = 0; count < RandomData.randomInteger(1, 10); count++) {
Object key = RandomData.random(keyClass, fields);
Object value = RandomData.random(valueClass, fields);
result.put(key, value);
}
}
return result;
}
@Override
public Iterable<Class> supportedTypes() {
return Arrays.<Class>asList(TreeMap.class, SortedMap.class, NavigableMap.class);
}
}