TimeInterval.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;
/**
* TimeInterval - Standard time intervals for doing OpenEIS analyses.
*
* @author Cam Moore
* Created by carletonmoore on 4/16/15.
*/
public enum TimeInterval {
/**
* One week.
*/
ONE_WEEK(7, "1w"),
/**
* Two weeks.
*/
TWO_WEEKS(14, "2w"),
/**
* Three weeks.
*/
THREE_WEEKS(21, "3w"),
/**
* Four weeks.
*/
FOUR_WEEKS(28, "4w"),
/**
* One month .
*/
ONE_MONTH(31, "1m"),
/**
* Two months.
*/
TWO_MONTHS(62, "2m"),
/**
* Three months.
*/
THREE_MONTHS(93, "3m"),
/**
* Four months.
*/
FOUR_MONTHS(124, "4m"),
/**
* Five months.
*/
FIVE_MONTHS(155, "5m"),
/**
* Six months.
*/
SIX_MONTHS(186, "6m"),
/**
* One year.
*/
ONE_YEAR(365, "1y");
private final int numDays;
private final String parameter;
/**
* Creates a TimeInterval with a given number of days.
*
* @param days the number of days.
* @param param the String encoding for this TimeInterval.
*/
TimeInterval(int days, String param) {
this.numDays = days;
this.parameter = param;
}
/**
* @return the number of days associated with this TimeInterval.
*/
public int getNumDays() {
return numDays;
}
/**
* @return the string parameter associated with this TimeInterval.
*/
public String getParameter() {
return parameter;
}
/**
* Returns the defined TimeInterval for the given parameter, defaults to ONE_MONTH for
* unknown strings.
*
* @param parameter the pramamter.
* @return the defined TimeInterval for the given parameter, defaults to ONE_MONTH for
* unknown strings.
*/
public static TimeInterval fromParameter(String parameter) {
TimeInterval interval = null;
switch (parameter) {
case "1w":
interval = TimeInterval.ONE_WEEK;
break;
case "2w":
interval = TimeInterval.TWO_WEEKS;
break;
case "3w":
interval = TimeInterval.THREE_WEEKS;
break;
case "4w":
interval = TimeInterval.FOUR_WEEKS;
break;
case "1m":
interval = TimeInterval.ONE_MONTH;
break;
case "2m":
interval = TimeInterval.TWO_MONTHS;
break;
case "3m":
interval = TimeInterval.THREE_MONTHS;
break;
case "4m":
interval = TimeInterval.FOUR_MONTHS;
break;
case "5m":
interval = TimeInterval.FIVE_MONTHS;
break;
case "6m":
interval = TimeInterval.SIX_MONTHS;
break;
case "1y":
interval = TimeInterval.ONE_YEAR;
break;
default:
interval = TimeInterval.ONE_MONTH;
}
return interval;
}
}