/* * 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; } }