XYInterpolatedValue.java
package org.wattdepot.common.domainmodel;
import java.util.Date;
/**
* Two value InterpolatedValue.
* @author Cam Moore.
*/
public class XYInterpolatedValue extends InterpolatedValue {
/** The id of the sensor making the measurement. */
private String ySensorId;
/** The value of the measurement. */
private Double yValue;
/** The type of the measurement. */
private MeasurementType yMeasurementType;
/**
* Default constructor.
*/
public XYInterpolatedValue() {
super();
}
/**
* Creates a new XYInterpolatedValue.
* @param xSensorId The x SensorId.
* @param xValue The x value.
* @param xMeasurementType The x measurement type.
* @param date The time of both values.
* @param ySensorId The y SensorId.
* @param yValue The y value.
* @param yMeasurementType The y measurement type.
*/
public XYInterpolatedValue(String xSensorId, Double xValue, MeasurementType xMeasurementType, Date date,
String ySensorId, Double yValue, MeasurementType yMeasurementType) {
super(xSensorId, xValue, xMeasurementType, date);
this.ySensorId = ySensorId;
this.yValue = yValue;
this.yMeasurementType = yMeasurementType;
}
/**
* Creates a new XYInterpolatedValue.
* @param xSensorId The x SensorId.
* @param xValue The x value.
* @param xMeasurementType The x measurement type.
* @param startDate The start time of both values.
* @param endDate The end time of both values.
* @param ySensorId The y SensorId.
* @param yValue The y value.
* @param yMeasurementType The y measurement type.
*/
public XYInterpolatedValue(String xSensorId, Double xValue, MeasurementType xMeasurementType, Date startDate,
Date endDate, String ySensorId, Double yValue, MeasurementType yMeasurementType) {
super(xSensorId, xValue, xMeasurementType, startDate, endDate);
this.ySensorId = ySensorId;
this.yValue = yValue;
this.yMeasurementType = yMeasurementType;
}
/**
* Create a new XYInterpolatedValue from the two Interpolated values.
* @param x The X value.
* @param y The Y value.
*/
public XYInterpolatedValue(InterpolatedValue x, InterpolatedValue y) {
super(x.getSensorId(), x.getValue(), x.getMeasurementType(), x.getStart(), x.getEnd());
if (!x.getStart().equals(y.getStart()) ||
!x.getEnd().equals(y.getEnd())) {
throw new IllegalArgumentException("X and Y don't have the same start and end times.");
}
this.ySensorId = y.getSensorId();
this.yValue = y.getValue();
this.yMeasurementType = y.getMeasurementType();
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
if (!super.equals(o)) {
return false;
}
XYInterpolatedValue that = (XYInterpolatedValue) o;
if (ySensorId != null ? !ySensorId.equals(that.ySensorId) : that.ySensorId != null) {
return false;
}
if (yValue != null ? !yValue.equals(that.yValue) : that.yValue != null) {
return false;
}
return !(yMeasurementType != null ? !yMeasurementType.equals(that.yMeasurementType) : that.yMeasurementType != null);
}
@Override
public int hashCode() {
int result = super.hashCode();
result = 31 * result + (ySensorId != null ? ySensorId.hashCode() : 0);
result = 31 * result + (yValue != null ? yValue.hashCode() : 0);
result = 31 * result + (yMeasurementType != null ? yMeasurementType.hashCode() : 0);
return result;
}
/**
* @return The Y SensorId.
*/
public String getYSensorId() {
return ySensorId;
}
/**
* Sets the Y SensorID.
* @param ySensorId The new Y SensorId.
*/
public void setYSensorId(String ySensorId) {
this.ySensorId = ySensorId;
}
/**
* @return The Y value.
*/
public Double getYValue() {
return yValue;
}
/**
* Sets the Y value.
* @param yValue The new Y value.
*/
public void setYValue(Double yValue) {
this.yValue = yValue;
}
/**
* @return The Y MeasurementType.
*/
public MeasurementType getYMeasurementType() {
return yMeasurementType;
}
/**
* Sets the Y MeasurementType.
* @param yMeasurementType The new Y MeasurementType.
*/
public void setYMeasurementType(MeasurementType yMeasurementType) {
this.yMeasurementType = yMeasurementType;
}
/**
* @return The X SensorId.
*/
public String getXSensorId() {
return getSensorId();
}
/**
* Sets the X SensorId.
* @param xSensorId The new X SensorId.
*/
public void setXSensorId(String xSensorId) {
this.setSensorId(xSensorId);
}
/**
* @return The X value.
*/
public Double getXValue() {
return getValue();
}
/**
* Sets the X value.
* @param xValue The new X value.
*/
public void setXValue(Double xValue) {
this.setValue(xValue);
}
/**
* @return The X MeasurementType.
*/
public MeasurementType getXMeasurementType() {
return getMeasurementType();
}
/**
* Sets the X MeasurementType.
* @param xMeasurementType The new X MeasurementType.
*/
public void setXMeasurementType(MeasurementType xMeasurementType) {
this.setMeasurementType(xMeasurementType);
}
}