package com.bahadirakin.service; import java.util.ArrayList; import java.util.List; import java.util.UUID; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.bahadirakin.model.Car; public class RandomCarService implements ICarService { private static final Logger logger = LoggerFactory .getLogger(RandomCarService.class); private static final int RANDOM_LIST_SIZE = 25; private static final String[] COLORS = new String[] { "Black", "White", "Green", "Red", "Blue", "Orange", "Silver", "Yellow", "Brown", "Maroon" }; private static final String[] BRANDS = new String[] { "BMW", "Mercedes", "Volvo", "Audi", "Renault", "Fiat", "Volkswagen", "Honda", "Jaguar", "Ford" }; private List<Car> savedCars; public RandomCarService() { savedCars = new ArrayList<>(); } @Override public List<Car> getAllCars() { final List<Car> list = new ArrayList<Car>(); list.addAll(savedCars); for (int i = 0; i < RANDOM_LIST_SIZE; i++) { list.add(new Car(getRandomId(), getRandomBrand(), getRandomYear(), getRandomColor(), getRandomPrice())); } logger.info("Returning all the cars with size {}", list.size()); return list; } @Override public void saveCar(Car car) { car.setId(getRandomId()); savedCars.add(car); logger.info("Car is saved: {}", car); } private String getRandomId() { return UUID.randomUUID().toString().substring(0, 8); } private int getRandomYear() { return (int) (Math.random() * 50 + 1960); } private String getRandomColor() { return COLORS[(int) (Math.random() * COLORS.length)]; } private String getRandomBrand() { return BRANDS[(int) (Math.random() * BRANDS.length)]; } private int getRandomPrice() { return (int) (Math.random() * 100000); } }