1 package fr.ifremer.quadrige3.core.dao.technical;
2
3 /*-
4 * #%L
5 * Quadrige3 Core :: Quadrige3 Core Shared
6 * $Id:$
7 * $HeadURL:$
8 * %%
9 * Copyright (C) 2017 Ifremer
10 * %%
11 * This program is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Affero General Public License as published by
13 * the Free Software Foundation, either version 3 of the License, or
14 * (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU Affero General Public License
22 * along with this program. If not, see <http://www.gnu.org/licenses/>.
23 * #L%
24 */
25
26 /**
27 * <p>QuadrigeEnumerationDef interface.</p>
28 *
29 * @author Lionel Touseau <lionel.touseau@e-is.pro>
30 */
31 public interface QuadrigeEnumerationDef<T> {
32
33 /** Constant <code>CONFIG_OPTION_PREFIX="quadrige3.enumeration."</code> */
34 String CONFIG_OPTION_PREFIX = "quadrige3.enumeration.";
35
36 /**
37 * <p>getKey.</p>
38 *
39 * @return a {@link java.lang.String} object.
40 */
41 String getKey();
42
43 /**
44 * <p>getType.</p>
45 *
46 * @return a {@link java.lang.Class} object.
47 */
48 Class<?> getType();
49
50 /**
51 * <p>getDescription.</p>
52 *
53 * @return a {@link java.lang.String} object.
54 */
55 String getDescription();
56
57 /**
58 * <p>setValue.</p>
59 *
60 * @param value a T object.
61 */
62 void setValue(T value);
63
64 /**
65 * <p>getValueAsString.</p>
66 *
67 * @return a {@link java.lang.String} object.
68 */
69 String getValueAsString();
70
71 /**
72 * <p>getValue.</p>
73 *
74 * @return a T object.
75 */
76 T getValue();
77
78 }