/**
* <copyright> Copyright (c) 2008-2009 Jonas Helming, Maximilian Koegel. All rights reserved. This program and the
* accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this
* distribution, and is available at http://www.eclipse.org/legal/epl-v10.html </copyright>
*/
package fr.inria.diverse.k3.benchVM.synthesis.generic.common.attribute;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Random;
/**
* Class for creating random Byte[] values.
*
* @see IAttributeSetter
*/
class AttributeSetterEByteArray implements IAttributeSetter<byte[]> {
/**
* Random object that is used to determine values for attributes created
* by {@link #createNewAttribute()} and {@link #createNewAttributes()}.
*/
private Random random;
/**
* Length of the Byte-array that is randomly filled.
*/
private int bytesize;
/**
* Creates a new AttributeSetter for Byte[] attributes.
*
* @param random Random object used to create attribute values
* @param bytesize length of the Byte-array
*/
AttributeSetterEByteArray(Random random, int bytesize) {
this.random = random;
this.bytesize = bytesize;
}
/**
* {@inheritDoc}
*/
public byte[] createNewAttribute() {
byte[] bytes = new byte[bytesize];
random.nextBytes(bytes);
return bytes;
}
/**
* {@inheritDoc}
*/
public Collection<byte[]> createNewAttributes(int maxAmount) {
List<byte[]> result = new ArrayList<byte[]>(maxAmount);
for (int i=0; i<maxAmount; i++) {
result.add(createNewAttribute());
}
return result;
}
}