LoadAnalysis.java
/*
* This file is part of WattDepot.
*
* Copyright (C) 2015 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.extension.openeis.domainmodel;
import org.wattdepot.common.domainmodel.InterpolatedValue;
import java.util.ArrayList;
import java.util.Date;
/**
* LoadAnalysis - Represents several load analyses for a sensor over a period of days.
*
* @author Cam Moore
* Created by carletonmoore on 4/20/15.
*/
public class LoadAnalysis {
/**
* Start of the analysis period.
*/
private Date start;
/**
* End of the analysis period.
*/
private Date end;
/**
* Peak value during the period.
*/
private Double peak;
/**
* Average daily maximum.
*/
private Double aveDailyMax;
/**
* Average daily minimum.
*/
private Double aveDailyMin;
/**
* Average daily range.
*/
private Double aveDailyRange;
/**
* 5th percentile to 95th percentile ratio.
*/
private Double aveBaseToPeakRatio;
/**
* Any missing data.
*/
private ArrayList<InterpolatedValue> missingData;
/**
* Constructs a new LoadAnalysis with the given data.
*
* @param start The start of the period.
* @param end The end of the period.
* @param peak The peak value of the period.
* @param aveDailyMax The average daily maximum.
* @param aveDailyMin The average daily minimum.
* @param aveDailyRange The average daily range.
* @param aveBaseToPeakRatio The average base to peak ratio.
*/
public LoadAnalysis(Date start, Date end, Double peak, Double aveDailyMax, Double aveDailyMin, Double aveDailyRange, Double aveBaseToPeakRatio) {
this.start = new Date(start.getTime());
this.end = new Date(end.getTime());
this.peak = peak;
this.aveDailyMax = aveDailyMax;
this.aveDailyMin = aveDailyMin;
this.aveDailyRange = aveDailyRange;
this.aveBaseToPeakRatio = aveBaseToPeakRatio;
}
/**
* @return The start of the period.
*/
public Date getStart() {
return new Date(start.getTime());
}
/**
* Sets the start of the peiord.
*
* @param start The new start.
*/
public void setStart(Date start) {
this.start = new Date(start.getTime());
}
/**
* @return The end of the period.
*/
public Date getEnd() {
return new Date(end.getTime());
}
/**
* Sets the end of the period.
*
* @param end The new end.
*/
public void setEnd(Date end) {
this.end = new Date(end.getTime());
}
/**
* @return The Peak value over the period.
*/
public Double getPeak() {
return peak;
}
/**
* Sets the peak value for the period.
*
* @param peak The new peak value.
*/
public void setPeak(Double peak) {
this.peak = peak;
}
/**
* @return The average daily maximum for the period.
*/
public Double getAveDailyMax() {
return aveDailyMax;
}
/**
* Sets the average daily maximum for the peroid.
*
* @param aveDailyMax The new average daily maximum.
*/
public void setAveDailyMax(Double aveDailyMax) {
this.aveDailyMax = aveDailyMax;
}
/**
* @return The average daily minimum for the period.
*/
public Double getAveDailyMin() {
return aveDailyMin;
}
/**
* Sets the average daily minimum for the peroid.
*
* @param aveDailyMin The new average daily minimum.
*/
public void setAveDailyMin(Double aveDailyMin) {
this.aveDailyMin = aveDailyMin;
}
/**
* @return The average daily range over the period.
*/
public Double getAveDailyRange() {
return aveDailyRange;
}
/**
* Sets the average daily range over the period.
*
* @param aveDailyRange The new average daily range.
*/
public void setAveDailyRange(Double aveDailyRange) {
this.aveDailyRange = aveDailyRange;
}
/**
* @return The average base to peak ratio.
*/
public Double getAveBaseToPeakRatio() {
return aveBaseToPeakRatio;
}
/**
* Sets the average base to peak ratio.
*
* @param aveBaseToPeakRatio The new average base to peak ratio.
*/
public void setAveBaseToPeakRatio(Double aveBaseToPeakRatio) {
this.aveBaseToPeakRatio = aveBaseToPeakRatio;
}
/**
* @return Any missing data in the Analysis period.
*/
public ArrayList<InterpolatedValue> getMissingData() {
return missingData;
}
/**
* Sets the missing data for the analysis period.
*
* @param missingData The missing data.
*/
public void setMissingData(ArrayList<InterpolatedValue> missingData) {
this.missingData = missingData;
}
}