001package org.galaxyproject.gxformat2.v19_09.utils; 002 003import java.io.File; 004import java.io.IOException; 005import java.nio.file.Files; 006import java.nio.file.Path; 007import java.nio.file.Paths; 008import java.util.Map; 009 010public class RootLoader { 011 public static Object loadDocument( 012 final Map<String, Object> doc, final String baseUri_, final LoadingOptions loadingOptions_) { 013 final String baseUri = ensureBaseUri(baseUri_); 014 LoadingOptions loadingOptions = loadingOptions_; 015 if (loadingOptions == null) { 016 loadingOptions = new LoadingOptionsBuilder().build(); 017 } 018 return LoaderInstances.union_of_GalaxyWorkflow_or_array_of_GalaxyWorkflow.documentLoad( 019 doc, baseUri, loadingOptions); 020 } 021 022 public static Object loadDocument(final Map<String, Object> doc, final String baseUri) { 023 return loadDocument(doc, baseUri, null); 024 } 025 026 public static Object loadDocument(final Map<String, Object> doc) { 027 return loadDocument(doc, ensureBaseUri(null)); 028 } 029 030 public static Object loadDocument(final Path path) { 031 return loadDocument(readPath(path)); 032 } 033 034 public static Object loadDocument(final Path path, String baseUri) { 035 return loadDocument(readPath(path), baseUri); 036 } 037 038 public static Object loadDocument(final Path path, LoadingOptions loadingOptions) { 039 return loadDocument(readPath(path), loadingOptions); 040 } 041 042 public static Object loadDocument( 043 final Path path, String baseUri, LoadingOptions loadingOptions) { 044 return loadDocument(readPath(path), baseUri, loadingOptions); 045 } 046 047 public static Object loadDocument(final File file) { 048 return loadDocument(file.toPath()); 049 } 050 051 public static Object loadDocument(final File file, String baseUri) { 052 return loadDocument(file.toPath(), baseUri); 053 } 054 055 public static Object loadDocument(final File file, LoadingOptions loadingOptions) { 056 return loadDocument(file.toPath(), loadingOptions); 057 } 058 059 public static Object loadDocument( 060 final File file, String baseUri, LoadingOptions loadingOptions) { 061 return loadDocument(file.toPath(), baseUri, loadingOptions); 062 } 063 064 public static Object loadDocument(final String doc) { 065 return loadDocument(doc, ensureBaseUri(null)); 066 } 067 068 public static Object loadDocument(final String doc, final LoadingOptions loadingOptions) { 069 return loadDocument(doc, ensureBaseUri(null), loadingOptions); 070 } 071 072 public static Object loadDocument(final String doc, final String uri) { 073 return loadDocument(doc, uri, null); 074 } 075 076 public static Object loadDocument( 077 final String doc, final String uri_, final LoadingOptions loadingOptions_) { 078 final String uri = ensureBaseUri(uri_); 079 LoadingOptions loadingOptions = loadingOptions_; 080 if (loadingOptions == null) { 081 loadingOptions = new LoadingOptionsBuilder().setFileUri(uri).build(); 082 } 083 final Map<String, Object> result = YamlUtils.mapFromString(doc); 084 loadingOptions.idx.put(uri, result); 085 return loadDocument(result, uri, loadingOptions); 086 } 087 088 static String readPath(final Path path) { 089 try { 090 return new String(Files.readAllBytes(path), "UTF8"); 091 } catch (final IOException e) { 092 throw new RuntimeException(e); 093 } 094 } 095 096 static String ensureBaseUri(final String baseUri_) { 097 String baseUri = baseUri_; 098 if (baseUri == null) { 099 baseUri = Uris.fileUri(Paths.get(".").toAbsolutePath().normalize().toString()) + "/"; 100 } 101 return baseUri; 102 } 103}