package no.java.incogito.ems.server;
import no.java.ems.server.EmsServices;
import no.java.ems.domain.Event;
import no.java.ems.domain.Session;
import no.java.ems.dao.*;
import fj.data.List;
import fj.data.Stream;
/**
* @author <a href="mailto:trygve.laugstol@arktekk.no">Trygve Laugstøl</a>
* @version $Id$
*/
public class DataGenerator {
private final EventDao eventDao;
private final SessionDao sessionDao;
public DataGenerator(EmsServices services) {
this.eventDao = services.getEventDao();
this.sessionDao = services.getSessionDao();
}
public DataSet1 generate1() {
for (Event event : eventDao.getEvents()) {
for (String sessionId : sessionDao.getSessionIdsByEventId(event.getId())) {
System.out.println("Deleting session #" + sessionId);
sessionDao.deleteSession(sessionId);
}
System.out.println("Deleting event #" + event.getId());
eventDao.deleteEvent(event.getId());
}
return new DataSet1();
}
public class DataSet1 {
public final Event javaZone2006;
public final Event javaZone2007;
public final Event javaZone2008;
public final Event javaZone2009;
public final List<Session> javaZone2006Sessions;
public final List<Session> javaZone2007Sessions;
public final List<Session> javaZone2008Sessions;
public final List<Session> javaZone2009Sessions;
private DataSet1() {
javaZone2006 = generateEvent("JavaZone 2006");
javaZone2006Sessions = generateSessions(javaZone2006);
javaZone2007 = generateEvent("JavaZone 2007");
javaZone2007Sessions = generateSessions(javaZone2007);
javaZone2008 = generateEvent("JavaZone 2008");
javaZone2008Sessions = generateSessions(javaZone2008);
javaZone2009 = generateEvent("JavaZone 2009");
javaZone2009Sessions = generateSessions(javaZone2009);
}
private Event generateEvent(String name) {
Event e = new Event();
e.setName(name);
eventDao.saveEvent(e);
return e;
}
private List<Session> generateSessions(Event event) {
List<Session> sessions = List.nil();
for (Integer integer : Stream.range(0, 10)) {
Session session = new Session();
session.setTitle(event.getName() + ", Session #" + integer);
session.setEventId(event.getId());
sessionDao.saveSession(session);
}
return sessions;
}
}
}