package org.myLazyClock.model.repository;
import com.google.appengine.api.datastore.Key;
import org.myLazyClock.model.model.AlarmClock;
import org.myLazyClock.model.model.Calendar;
import javax.jdo.JDOHelper;
import javax.jdo.JDOObjectNotFoundException;
import javax.jdo.PersistenceManager;
import java.util.Collection;
import java.util.List;
/**
* Created on 26/11/14.
*
* @author dralagen
*/
public class CalendarRepository {
private static CalendarRepository repo = null;
private CalendarRepository() {}
public static CalendarRepository getInstance() {
if (repo == null) {
repo = new CalendarRepository();
}
return repo;
}
public Collection<Calendar> findAll(AlarmClock alarm) {
return alarm.getCalendars();
}
public Calendar add(Calendar calendar, AlarmClock alarm) {
List<Calendar> calendars = alarm.getCalendars();
calendars.add(calendar);
AlarmClockRepository.getInstance().save(alarm);
return calendar;
}
public Calendar save(Calendar calendar) {
PersistenceManager pm;
if (calendar.getKey() == null) {
pm = PMF.get().getPersistenceManager();
} else {
pm = JDOHelper.getPersistenceManager(calendar);
}
try {
pm.makePersistent(calendar);
} finally {
pm.close();
}
return calendar;
}
public Calendar findOne(Key calendarKey) {
PersistenceManager pm = PMF.get().getPersistenceManager();
try {
return pm.getObjectById(Calendar.class, calendarKey);
} catch (JDOObjectNotFoundException e) {
return null;
}
}
public void delete(Calendar calendar) {
PersistenceManager pm = JDOHelper.getPersistenceManager(calendar);
try {
pm.deletePersistent(calendar);
} finally {
pm.close();
}
}
}