package ch.rasc.wampspring.demo.various.scheduler; import java.time.LocalDateTime; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; public class CustomEventDb { private final static Map<Integer, CustomEvent> db = new ConcurrentHashMap<>(); private final static AtomicInteger lastId = new AtomicInteger(); static { db.put(1, new CustomEvent(1, 2, "Chase turkey", LocalDateTime.of(2013, 3, 1, 8, 0, 0), LocalDateTime.of(2013, 3, 1, 10, 0, 0), true)); db.put(2, new CustomEvent(2, 1, "Stuff turkey", LocalDateTime.of(2013, 3, 1, 10, 0, 0), LocalDateTime.of(2013, 3, 1, 12, 0, 0), true)); db.put(3, new CustomEvent(3, 3, "Cook turkey", LocalDateTime.of(2013, 3, 1, 12, 0, 0), LocalDateTime.of(2013, 3, 1, 15, 0, 0), true)); db.put(4, new CustomEvent(4, 5, "Set table", LocalDateTime.of(2013, 3, 1, 14, 0, 0), LocalDateTime.of(2013, 3, 1, 16, 0, 0), false)); db.put(5, new CustomEvent(5, 4, "Serve dinner", LocalDateTime.of(2013, 3, 1, 16, 0, 0), LocalDateTime.of(2013, 3, 1, 19, 0, 0), false)); db.put(6, new CustomEvent(6, 6, "Hack on Java/Springframework", LocalDateTime.of(2013, 3, 1, 16, 0, 0), LocalDateTime.of(2013, 3, 1, 18, 30, 0), false)); db.put(7, new CustomEvent(7, 7, "Clean up", LocalDateTime.of(2013, 3, 1, 19, 0, 0), LocalDateTime.of(2013, 3, 1, 20, 30, 0), false)); db.put(78, new CustomEvent(8, 8, "Do laundry", LocalDateTime.of(2013, 3, 1, 17, 0, 0), LocalDateTime.of(2013, 3, 1, 19, 0, 0), false)); lastId.set(8); } public static Collection<CustomEvent> list() { return Collections.unmodifiableCollection(db.values()); } public static void create(CustomEvent newEvent) { newEvent.setId(lastId.incrementAndGet()); db.put(newEvent.getId(), newEvent); } public static CustomEvent read(int id) { return db.get(id); } public static void update(CustomEvent updatedEvent) { db.put(updatedEvent.getId(), updatedEvent); } public static void delete(List<Integer> ids) { for (Integer id : ids) { db.remove(id); } } }