package org.epics.css.dal.simulation.data; import java.util.Random; import org.csstudio.dal.DataExchangeException; import org.epics.css.dal.simulation.ValueProvider; /** * * <code>RandomLongGenerator</code> generates random long values. * * @author <a href="mailto:jaka.bobnar@cosylab.com">Jaka Bobnar</a> * */ public class RandomLongGenerator implements ValueProvider<Long>{ private long min; private long max; private Random random; /** * Constructor. * * @param options (min,max) */ public RandomLongGenerator(String[] options) { init(options); random = new Random(System.currentTimeMillis()); } protected void init(String[] options) { try { min = Long.parseLong(options[0]); } catch (NumberFormatException nfe) { min = 0; } try { max = Long.parseLong(options[1]); } catch (NumberFormatException nfe) { max = 1; } if (min > max) { long tmp = min; min = max; max = tmp; } } /* * (non-Javadoc) * @see org.epics.css.dal.simulation.ValueProvider#get() */ @Override public Long get() throws DataExchangeException { return min + ((max - min) * random.nextLong()); } /* * (non-Javadoc) * @see org.epics.css.dal.simulation.ValueProvider#set(java.lang.Object) */ @Override public void set(Long value) throws DataExchangeException { //ignore; this is random number generator } }