Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/schema_salad/java/main_utils/UriLoader.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/UriLoader.java Sat May 02 07:14:21 2020 -0400 @@ -0,0 +1,52 @@ +package ${package}.utils; + +import java.util.ArrayList; +import java.util.List; + +public class UriLoader<T> implements Loader<T> { + private final Loader<T> innerLoader; + private final boolean scopedId; + private final boolean vocabTerm; + private final Integer scopedRef; + + public UriLoader( + final Loader<T> innerLoader, + final boolean scopedId, + final boolean vocabTerm, + final Integer scopedRef) { + this.innerLoader = innerLoader; + this.scopedId = scopedId; + this.vocabTerm = vocabTerm; + this.scopedRef = scopedRef; + } + + private Object expandUrl( + final Object object, final String baseUri, final LoadingOptions loadingOptions) { + if (object instanceof String) { + return loadingOptions.expandUrl( + (String) object, baseUri, this.scopedId, this.vocabTerm, this.scopedRef); + } else { + return object; + } + } + + public T load( + final Object doc_, + final String baseUri, + final LoadingOptions loadingOptions, + final String docRoot) { + Object doc = doc_; + if (doc instanceof List) { + List<Object> docList = (List<Object>) doc; + List<Object> docWithExpansion = new ArrayList<Object>(); + for (final Object el : docList) { + docWithExpansion.add(this.expandUrl(el, baseUri, loadingOptions)); + } + doc = docWithExpansion; + } + if (doc instanceof String) { + doc = this.expandUrl(doc, baseUri, loadingOptions); + } + return this.innerLoader.load(doc, baseUri, loadingOptions); + } +}