/** * Returns all Weight Reading objects that fall within the time range specified (inclusive) * * @param leftBound The Date object specifying the earliest date boundary * @param rightBound The Date object specifying the latest date boundary * @param c The application context * @note Recreates only the new objects, since Identity Map is no longer applied: the reason for * this is because whenever data is fetched, we know its usage right away and will not need to * keep it in proximity for later usage, but rather direct usage * @return The ArrayList of all weighteReading in the database that fall within range * @throws MapperException Thrown when there is either a problem with mapping or if the * Persistence layer returns an error */ public static ArrayList<WeightReading> findAllWithinRangeInclusive( Date iLeftBound, Date iRightBound, Context iC) throws MapperException { try { ArrayList<ArrayList<String>> resultTable = WeightTDG.selectBetweenDatesInclusive( String.valueOf(iLeftBound.getTime()), String.valueOf(iRightBound.getTime()), iC); ArrayList<WeightReading> resultReadings = new ArrayList<WeightReading>(resultTable.size()); for (int i = 0; i < resultTable.size(); ++i) { ArrayList<String> values = resultTable.get(i); WeightReading r; Long id = Long.valueOf(values.get(0)); Date date = new Date(Long.valueOf(values.get(1))); /** Converts from Unix time to Java Date */ int sourceInt = Integer.valueOf(values.get(2)); ReadingSource source = sourceFromInt(sourceInt); float weight = Float.valueOf(values.get(3)); r = new WeightReading(id, date, source, weight); resultReadings.add(r); } return resultReadings; } catch (PersistenceException iE) { throw new MapperException( "The Mapper failed to obtain the Weight Readings from the persistence layer. The TDG returned the following error: " + iE.getMessage()); } catch (Exception iE) { throw new MapperException( "The mapper failed to complete an operation for the following unforeseen reason: " + iE.getMessage()); } }
/** * Stores the new WeightReading * * @param r The WeightReading object * @param c The application context * @throws MapperException Thrown if there is a problem mapping or if the persistence returns an * error */ public static void insert(WeightReading iR, Context iC) throws MapperException { try { ArrayList<String> values = new ArrayList<String>(10); values.add(iR.getId().toString()); values.add(String.valueOf(iR.getDateTaken().getTime())); values.add(String.valueOf(intFromSource(iR.getMeasurementSource()))); values.add(String.valueOf(iR.getWeight())); WeightTDG.insert(values, iC); WeightTDG.removeRedundantEntries(values, iC); } catch (PersistenceException iE) { throw new MapperException( "The mapper failed to complete an operation because the persistence layer returned the following error: " + iE.getMessage()); } catch (Exception iE) { throw new MapperException( "The mapper failed to complete an operation for the following unforeseen reason: " + iE.getMessage()); } }
/** * Finds the next ID available for using in Weight Reading initialization * * @param c The application context * @return The next available Id * @throws MapperException Thrown if there is a problem mapping or if the persistence returns an * error */ public static Long getNextAvailableId(Context iC) throws MapperException { try { Long id = WeightTDG.getNextAvailableId(iC); return id; } catch (PersistenceException iE) { throw new MapperException( "The mapper failed to complete an operation because the persistence layer returned the following error: " + iE.getMessage()); } catch (Exception iE) { throw new MapperException( "The mapper failed to complete an operation for the following unforeseen reason: " + iE.getMessage()); } }