comparison env/lib/python3.7/site-packages/schema_salad/java/main_utils/EnumLoader.java @ 0:26e78fe6e8c4 draft

"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
author shellac
date Sat, 02 May 2020 07:14:21 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:26e78fe6e8c4
1 package ${package}.utils;
2
3 import java.lang.reflect.Method;
4 import java.lang.ReflectiveOperationException;
5 import java.util.Arrays;
6 import java.util.List;
7
8 public class EnumLoader<T extends Enum> implements Loader<T>{
9 private final Class<T> symbolEnumClass;
10
11 public EnumLoader(final Class<T> symbolEnumClass) {
12 this.symbolEnumClass = symbolEnumClass;
13 }
14
15 public T load(
16 final Object doc,
17 final String baseUri,
18 final LoadingOptions loadingOptions,
19 final String docRoot) {
20 final String docString = Loader.validateOfJavaType(String.class, doc);
21 try {
22 final Method m = symbolEnumClass.getMethod("fromDocumentVal", String.class);
23 final T val = (T) m.invoke(null, docString);
24 return val;
25 } catch (final ReflectiveOperationException e) {
26 throw new RuntimeException(e);
27 }
28 }
29 }