Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/schema_salad/java/main_utils/RecordLoader.java @ 0:26e78fe6e8c4 draft
"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
author | shellac |
---|---|
date | Sat, 02 May 2020 07:14:21 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/env/lib/python3.7/site-packages/schema_salad/java/main_utils/RecordLoader.java Sat May 02 07:14:21 2020 -0400 @@ -0,0 +1,36 @@ +package ${package}.utils; + +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; + +public class RecordLoader<T extends Savable> implements Loader<T> { + private final Class<? extends T> savableClass; + + public RecordLoader(final Class<? extends T> savableClass) { + this.savableClass = savableClass; + } + + public T load( + final Object doc, + final String baseUri, + final LoadingOptions loadingOptions, + final String docRoot) { + Loader.validateOfJavaType(java.util.Map.class, doc); + try { + final Constructor<? extends T> constructor = + this.savableClass.getConstructor( + new Class[] {Object.class, String.class, LoadingOptions.class, String.class}); + final T ret = constructor.newInstance(doc, baseUri, loadingOptions, docRoot); + return ret; + } catch (InvocationTargetException e) { + final Throwable cause = e.getCause(); + if (cause instanceof RuntimeException) { + throw (RuntimeException) cause; + } + throw new RuntimeException(e.getCause()); + } catch (ReflectiveOperationException e) { + throw new RuntimeException(e); + } + } + +}