package lab.art; import java.util.Random; /** * This utility class provides methods to create expressions. * * @author Franck van Breugel */ public class Expressions { private Expressions() {} /** * Returns a random expression. * * @param random a Random object. * @pre. random != null * @return a random expression. */ public static Expression getRandom(Random random) { final int TYPES = 6; final int PRODUCT = 0; final int AVERAGE = 1; final int SINE = 2; final int COSINE = 3; final int VARIABLE_X = 4; final int VARIABLE_Y = 5; Expression expression; switch (random.nextInt(TYPES)) { case PRODUCT : expression = new Product(Expressions.getRandom(random), Expressions.getRandom(random)); break; case AVERAGE : expression = new Average(Expressions.getRandom(random), Expressions.getRandom(random)); break; case SINE : expression = new Sine(Expressions.getRandom(random)); break; case COSINE : expression = new Cosine(Expressions.getRandom(random)); break; case VARIABLE_X : expression = new VariableX(); break; case VARIABLE_Y : expression = new VariableY(); break; default : expression = null; } return expression; } }