/**
* <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.Collection;
/**
* Interface that defines methods for creating attributes in order
* to generate or change Ecore models. Attributes are created
* using a Random object.
*
* @param <E> the attribute type of the attributes to create
*/
public interface IAttributeSetter<E> {
/**
* Creates one attribute of type <code>E</code>.
* The result is determined by <code>random</code>.
*
* @return the created attribute
*/
E createNewAttribute();
/**
* Creates a collection of attributes of type <code>E</code>.
* The result is determined by <code>random</code>.
*
* @param maxAmount the maximum amount of attributes to create
* @return all created attributes as a collection
*/
Collection<E> createNewAttributes(int maxAmount);
}