MeasurementCachePair.java
/*
* This file is part of WattDepot.
*
* Copyright (C) 2014 Cam Moore
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.wattdepot.server.depository.impl.hibernate;
import org.wattdepot.common.domainmodel.InterpolatedValue;
/**
* Represents the earliest and latest measurements for a sensor in a depository.
* Created by Cam Moore on 12/3/14.
* @author Cam Moore.
*/
public class MeasurementCachePair {
private InterpolatedValue earliest;
private InterpolatedValue latest;
/**
* Creates a new MeasurementCachePair from the given InterpolatedValue.
* @param meas The InterpolatedValue.
*/
public MeasurementCachePair(InterpolatedValue meas) {
this.earliest = meas;
this.latest = meas;
}
/**
* Returns the earliest Measurement.
* @return The earliest Measurement.
*/
public InterpolatedValue getEarliest() {
return earliest;
}
/**
* Returns the latest Measurement.
* @return The latest Measurement.
*/
public InterpolatedValue getLatest() {
return latest;
}
/**
* Updates the earliest and latest measurements based upon the given measurement.
* @param m the measurement to check.
*/
public void update(InterpolatedValue m) {
if (earliest == null) {
earliest = m;
}
else if (earliest.getStart().after(m.getStart())) {
earliest = m;
}
if (latest == null) {
latest = m;
}
else if (latest.getEnd().before(m.getEnd())) {
latest = m;
}
}
}