001package fr.ifremer.adagio.core.dao.technical;
002
003/*
004 * #%L
005 * SIH-Adagio :: Shared
006 * $Id:$
007 * $HeadURL:$
008 * %%
009 * Copyright (C) 2012 - 2014 Ifremer
010 * %%
011 * This program is free software: you can redistribute it and/or modify
012 * it under the terms of the GNU Affero General Public License as published by
013 * the Free Software Foundation, either version 3 of the License, or
014 * (at your option) any later version.
015 * 
016 * This program is distributed in the hope that it will be useful,
017 * but WITHOUT ANY WARRANTY; without even the implied warranty of
018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
019 * GNU General Public License for more details.
020 * 
021 * You should have received a copy of the GNU Affero General Public License
022 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
023 * #L%
024 */
025
026
027
028public interface AdagioEnumerationDef<T> {
029
030    static final String CONFIG_OPTION_PREFIX = "adagio.enumeration.";
031    
032    /** @return la clef identifiant l'option */
033    String getKey();
034
035    /** @return le type de l'option */
036    Class<?> getType();
037
038    /** @return la clef i18n de description de l'option */
039    String getDescription();
040
041    /**
042     * reload value from application config 
043     * @param applicationConfig the applicationConfig to use to reload value
044     */
045    void setValue(T value);
046    
047    String getValueAsString();
048    
049    T getValue();
050}