package org.magenta.example.generators; import java.util.List; import java.util.concurrent.TimeUnit; import org.magenta.DataSet; import org.magenta.annotations.InjectDataSet; import org.magenta.annotations.InjectDataSpecification; import org.magenta.annotations.InjectFluentRandom; import org.magenta.example.domain.Car; import org.magenta.example.domain.Trip; import org.magenta.random.FluentRandom; import com.google.common.base.Supplier; import com.google.inject.internal.Lists; public class TripGenerator implements Supplier<Iterable<Trip>> { @InjectFluentRandom private FluentRandom rnd; @InjectDataSpecification private TripSpecification spec; @InjectDataSet private DataSet<Car> cars; @Override public Iterable<Trip> get() { List<Trip> trips = Lists.newArrayList(); for(Car car:cars.list()){ Integer numberOfTrips = rnd.integers(spec.getNumberOfTripsByCar()).any(); for(int i = 0 ; i< numberOfTrips; i++){ Integer distanceInKm = rnd.integers(spec.getTripDistanceInKm()).any(); Trip trip = new Trip(); trip.setCar(car); trip.setDistanceInKm(distanceInKm); trip.setDate(rnd.dates().anyInThePast(30, TimeUnit.DAYS)); trips.add(trip); } } return trips; } }