1 package fr.ifremer.quadrige3.core.dao.technical.enumeration;
2
3 /*-
4 * #%L
5 * Quadrige3 Core :: Shared
6 * %%
7 * Copyright (C) 2017 - 2019 Ifremer
8 * %%
9 * This program is free software: you can redistribute it and/or modify
10 * it under the terms of the GNU Affero General Public License as published by
11 * the Free Software Foundation, either version 3 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU Affero General Public License
20 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 * #L%
22 */
23 import java.util.Arrays;
24
25 /**
26 * @author peck7 on 14/06/2019.
27 */
28 public class Enums {
29
30 /*
31 * Get the EnumValue by its code
32 */
33 @SuppressWarnings("unchecked")
34 public static <E extends Enum<E>, V extends EnumValue> V fromCode(Class<E> enumClass, String code) {
35 return Arrays.stream(enumClass.getEnumConstants())
36 .filter(EnumValue.class::isInstance)
37 .map(e -> (V) e)
38 .filter(enumValue -> enumValue.getCode().equalsIgnoreCase(code))
39 .findFirst()
40 .orElse(null);
41 }
42 }