package org.test4j.tools.datagen; import java.util.Map; public abstract class AbastractDataGenerator { private Map<String, Object> dataMap; /** * 生成第n个数据<br> * index计数从0开始 * * @param index * @return */ public abstract Object generate(int index); /** * 获取已经设置好字段的对应值 * * @param field * @return */ public Object value(String field) { if (this.dataMap == null) { throw new RuntimeException("the data map can't be null."); } if (this.dataMap.containsKey(field) == false) { throw new RuntimeException("unexist the key[" + field + "] of data map."); } return this.dataMap.get(field); } public void setDataMap(Map<String, Object> dataMap) { this.dataMap = dataMap; } /** * 循环遍历objects对象列表 * * @param objects * @return */ public static AbastractDataGenerator repeat(Object... objects) { return new RepeatDataGenerator(objects); } /** * 生成随机对象 * * @param type * @return */ @SuppressWarnings("rawtypes") public static AbastractDataGenerator random(Class type) { return new RandomDataGenerator(type); } /** * 步进生成数据 * * @param from * @param step * @return */ public static AbastractDataGenerator increase(Number from, Number step) { return new IncreaseDataGenerator(from, step); } }