/** * Copyright (C) 2001-2017 by RapidMiner and the contributors * * Complete list of developers available at our web site: * * http://rapidminer.com * * This program is free software: you can redistribute it and/or modify it under the terms of the * GNU Affero 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 * Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License along with this program. * If not, see http://www.gnu.org/licenses/. */ package com.rapidminer.operator.preprocessing.filter; import com.rapidminer.operator.OperatorDescription; import com.rapidminer.operator.preprocessing.AbstractDataProcessing; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Locale; /** * @author Sebastian Land * */ public abstract class AbstractDateDataProcessing extends AbstractDataProcessing { public static final String[] TIME_UNITS = { "millisecond", "second", "minute", "hour", "day", "week", "month", "quarter", "half year", "year" }; public static final int MILLISECOND = 0; public static final int SECOND = 1; public static final int MINUTE = 2; public static final int HOUR = 3; public static final int DAY = 4; public static final int WEEK = 5; public static final int MONTH = 6; public static final int QUARTER = 7; public static final int HALF_YEAR = 8; public static final int YEAR = 9; public static final String[] PARAMETERS_RELATIVE_TO = { "millisecond_relative_to", "second_relative_to", "minute_relative_to", "hour_relative_to", "day_relative_to", "week_relative_to", "month_relative_to", "quarter_relative_to", "half_year_relative_to", "year_relative_to" }; public static final String[][] RELATIVE_TO_MODES = { { "second", "epoch" }, { "minute", "hour", "day", "epoch" }, { "hour", "day", "epoch" }, { "day", "epoch" }, { "week", "month", "year", "epoch" }, { "month", "year", "epoch" }, { "quarter", "year", "epoch" }, { "year", "epoch" }, { "year", "epoch" }, { "epoch", "era" } }; public static final int MILLISECOND_RELATIVE_TO_SECOND = 0; public static final int MILLISECOND_RELATIVE_TO_EPOCH = 1; public static final int SECOND_RELATIVE_TO_MINUTE = 0; public static final int SECOND_RELATIVE_TO_HOUR = 1; public static final int SECOND_RELATIVE_TO_DAY = 2; public static final int SECOND_RELATIVE_TO_EPOCH = 3; public static final int MINUTE_RELATIVE_TO_HOUR = 0; public static final int MINUTE_RELATIVE_TO_DAY = 1; public static final int MINUTE_RELATIVE_TO_EPOCH = 2; public static final int HOUR_RELATIVE_TO_DAY = 0; public static final int HOUR_RELATIVE_TO_EPOCH = 1; public static final int DAY_RELATIVE_TO_WEEK = 0; public static final int DAY_RELATIVE_TO_MONTH = 1; public static final int DAY_RELATIVE_TO_YEAR = 2; public static final int DAY_RELATIVE_TO_EPOCH = 3; public static final int WEEK_RELATIVE_TO_MONTH = 0; public static final int WEEK_RELATIVE_TO_YEAR = 1; public static final int WEEK_RELATIVE_TO_EPOCH = 2; public static final int MONTH_RELATIVE_TO_QUARTER = 0; public static final int MONTH_RELATIVE_TO_YEAR = 1; public static final int MONTH_RELATIVE_TO_EPOCH = 2; public static final int QUARTER_RELATIVE_TO_YEAR = 0; public static final int QUARTER_RELATIVE_TO_EPOCH = 1; public static final int HALF_YEAR_RELATIVE_TO_YEAR = 0; public static final int HALF_YEAR_RELATIVE_TO_EPOCH = 1; public static final int YEAR_RELATIVE_TO_EPOCH = 0; public static final int YEAR_RELATIVE_TO_ERA = 1; public static final int[] RELATIVE_TO_DEFAULTS = { MILLISECOND_RELATIVE_TO_SECOND, SECOND_RELATIVE_TO_MINUTE, MINUTE_RELATIVE_TO_HOUR, HOUR_RELATIVE_TO_DAY, DAY_RELATIVE_TO_MONTH, WEEK_RELATIVE_TO_YEAR, MONTH_RELATIVE_TO_YEAR, QUARTER_RELATIVE_TO_YEAR, HALF_YEAR_RELATIVE_TO_YEAR, YEAR_RELATIVE_TO_ERA }; public static List<Locale> availableLocales = new ArrayList<Locale>(); public static String[] availableLocaleNames; public static int defaultLocale; static { Locale[] availableLocaleArray = Locale.getAvailableLocales(); for (Locale l : availableLocaleArray) { availableLocales.add(l); } Collections.sort(availableLocales, new Comparator<Locale>() { @Override public int compare(Locale o1, Locale o2) { return o1.getDisplayName().compareTo(o2.getDisplayName()); } }); availableLocaleNames = new String[availableLocales.size()]; defaultLocale = -1; for (int i = 0; i < availableLocales.size(); i++) { Locale currentLocale = availableLocales.get(i); availableLocaleNames[i] = currentLocale.getDisplayName(); if (currentLocale.equals(Locale.US)) { defaultLocale = i; } } if (defaultLocale < 0) { defaultLocale = 0; } } public AbstractDateDataProcessing(OperatorDescription description) { super(description); } }