/* * Copyright (c) 2017 OBiBa. All rights reserved. * * This program and the accompanying materials * are made available under the terms of the GNU Public License v3.0. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.obiba.magma.datasource.generated; import java.util.concurrent.ConcurrentMap; import org.apache.commons.math3.random.JDKRandomGenerator; import org.apache.commons.math3.random.RandomDataGenerator; import org.apache.commons.math3.random.RandomGenerator; import org.obiba.magma.Value; import org.obiba.magma.ValueTable; import org.obiba.magma.VariableEntity; import org.obiba.magma.support.ValueSetBean; import com.google.common.collect.MapMaker; /** * Allows generating random data for this */ class GeneratedValueSet extends ValueSetBean { final RandomGenerator valueGenerator; final RandomDataGenerator dataGenerator; final ConcurrentMap<String, Value> generatedValues = new MapMaker().makeMap(); GeneratedValueSet(ValueTable table, VariableEntity entity) { super(table, entity); valueGenerator = new JDKRandomGenerator(); valueGenerator.setSeed(Long.parseLong(entity.getIdentifier())); dataGenerator = new RandomDataGenerator(valueGenerator); } boolean hasValue(String name) { return generatedValues.containsKey(name); } Value put(String name, Value value) { generatedValues.put(name, value); return value; } Value getExistingValue(String name) { return generatedValues.get(name); } }