package com.deepnighttwo.aircondition.acsum.dao; import java.util.Calendar; import java.util.Collection; import java.util.List; import javax.jdo.PersistenceManager; import javax.jdo.Query; import com.deepnighttwo.aircondition.dao.util.PMF; import com.deepnighttwo.aircondition.util.CalendarUtil; public class ACSumDAOManager { public static boolean checkAndAddCondition(Collection<AirConditionSum> acs) { PersistenceManager pm = PMF.get().getPersistenceManager(); try { pm.makePersistentAll(acs); } finally { pm.close(); } return true; } public static boolean checkAndAddCondition(AirConditionSum acSum) { PersistenceManager pm = PMF.get().getPersistenceManager(); try { pm.makePersistent(acSum); } finally { pm.close(); } return true; } @SuppressWarnings("unchecked") public static AirConditionSum getAirCondition(int year, int month, int day) { Calendar date = CalendarUtil.getCalendar(year, month, day); String query = "select from " + AirConditionSum.class.getName() + " where millionSec == " + date.getTimeInMillis(); PersistenceManager pm = PMF.get().getPersistenceManager(); List<AirConditionSum> condition = (List<AirConditionSum>) pm.newQuery( query).execute(); if (condition != null && condition.size() > 0) { AirConditionSum ac = condition.get(0); ac.init(); return ac; } return null; } @SuppressWarnings("unchecked") public static List<AirConditionSum> getAirConditions() { String query = "select from " + AirConditionSum.class.getName(); PersistenceManager pm = PMF.get().getPersistenceManager(); List<AirConditionSum> conditions = (List<AirConditionSum>) pm.newQuery( query).execute(); initAirConditionSums(conditions); return conditions; } @SuppressWarnings("unchecked") public static List<AirConditionSum> getTopConditions(int count) { PersistenceManager pm = PMF.get().getPersistenceManager(); Query query = pm.newQuery(AirConditionSum.class); query.setOrdering("millionSec desc"); query.setRange(0, count); List<AirConditionSum> results = (List<AirConditionSum>) query.execute(); initAirConditionSums(results); return results; } public static AirConditionSum getToppestCondition() { List<AirConditionSum> results = getTopConditions(1); if (results == null || results.size() == 0) { return null; } return results.get(0); } private static void initAirConditionSums(Collection<AirConditionSum> acs) { for (AirConditionSum ac : acs) { ac.init(); } } }