diff --git a/.github/workflows/ci_macos.yml b/.github/workflows/ci_macos.yml index c16548a..79cb573 100644 --- a/.github/workflows/ci_macos.yml +++ b/.github/workflows/ci_macos.yml @@ -1,4 +1,4 @@ -name: macOS 12 +name: macOS 13 on: push: @@ -21,14 +21,14 @@ defaults: jobs: build: name: ${{ matrix.name }} - runs-on: macos-12 + runs-on: macos-13 timeout-minutes: 180 strategy: fail-fast: false matrix: include: - - name: "clang12 (c++20)" - compiler: "clang-12" + - name: "clang17 (c++20)" + compiler: "clang-17" build_type: Release cpp: 20 diff --git a/Makefile b/Makefile index cd06f63..f74c1dd 100644 --- a/Makefile +++ b/Makefile @@ -24,32 +24,37 @@ CXXFLAGS += -Werror -Wextra -Wall cwl_v1_2.h: FORCE schema-salad-tool --codegen cpp \ - --codegen-spdx-copyright-text "Copyright 2016-2023 CWL Project Contributors" \ + --codegen-spdx-copyright-text "Copyright 2016-2024 CWL Project Contributors" \ --codegen-spdx-license-identifier "Apache-2.0" \ https://github.com/common-workflow-language/cwl-v1.2/raw/main/CommonWorkflowLanguage.yml \ > $@ ## clean : clean up the build clean: FORCE - rm -f cwl_output_example cwl_input_example output_cwl.cwl + rm -f cwl_output_example cwl_input_example cwl_input_example_store_config ## regen_parser : regenerate the CWL v1.2 parser regen_parser: cwl_v1_*.h +define run_test + @result="$(shell eval $(1) | md5sum -b)" ; \ + expected="$(shell eval $(2) | md5sum -b)" ; \ + if [ "$$result" != "$$expected" ] ; then \ + echo test failed '$(1)': $$result != $$expected; exit 1; \ + fi; +endef + ## tests : compile and run the tests -tests: FORCE cwl_output_example cwl_input_example - @result_output="$(shell ./cwl_output_example | md5sum -b)" ; \ - result_input="$(shell ./cwl_input_example expected_cwl.cwl | md5sum -b)" ; \ - expected="$(shell cat expected_cwl.cwl | md5sum -b)" ; \ - if [ "$$result_output" = "$$expected" ] ; then \ - if [ "$$result_input" = "$$expected" ] ; then \ - echo test passed ; \ - else \ - echo test failed cwl_input_example $$result_input != $$expected; exit 1; \ - fi \ - else \ - echo test failed cwl_output_example $$result_output != $$expected; exit 1; \ - fi +tests: FORCE cwl_output_example cwl_input_example cwl_input_example_store_config + $(call run_test,./cwl_output_example,cat tests/expected_cwl.cwl) + $(call run_test,./cwl_input_example tests/expected_cwl.cwl,cat tests/expected_cwl.cwl) + $(call run_test,./cwl_input_example_store_config tests/01_types.cwl,cat tests/01_types_expected.cwl) + $(call run_test,./cwl_input_example_store_config tests/01_types.cwl no_simplification,cat tests/01_types_expected_no_simplification.cwl) + $(call run_test,./cwl_input_example_store_config tests/01_types.cwl no_list_to_map,cat tests/01_types_expected_no_list_to_map.cwl) + $(call run_test,./cwl_input_example_store_config tests/01_types.cwl no_simplification no_list_to_map,cat tests/01_types_expected_no_simplification_and_list_to_map.cwl) + $(call run_test,./cwl_input_example tests/02_expression.cwl,cat tests/02_expression_expected.cwl) + + @echo test passed FORCE: # Use this to print the value of a Makefile variable diff --git a/README.md b/README.md index 1c60fe6..aef6432 100644 --- a/README.md +++ b/README.md @@ -13,3 +13,6 @@ It is a single header and can be copied into your own project for any usage. The usage can be seen in the [cwl_output_example.cpp](cwl_output_example.cpp) file, which show cases on how to describe your tools. Another short example of loading a CWL description file an be seen in [cwl_input_example.cpp](cwl_input_example.cpp). + +The generations was done by calling: +make cwl_v1_2.h diff --git a/cwl_input_example.cpp b/cwl_input_example.cpp index 32b6dfa..2b68b02 100644 --- a/cwl_input_example.cpp +++ b/cwl_input_example.cpp @@ -9,22 +9,13 @@ * It loads a CWL description from a file and populates C++ classes. */ - -// using shortened cwl:: namespace instead of https___w3id_org_cwl_cwl -namespace cwl = https___w3id_org_cwl_cwl; +// using shortened cwl:: namespace instead of w3id_org::cwl +namespace cwl = w3id_org::cwl; int main(int argc, char** argv) { if (argc != 2) return 1; - auto yaml = YAML::LoadFile(argv[1]); - auto tool = cwl::CommandLineTool{}; - fromYaml(yaml, tool); - - auto y = toYaml(tool); - - YAML::Emitter out; - out << y; - std::cout << out.c_str() << "\n"; - + auto tool = cwl::load_document(argv[1]); + cwl::store_document(tool, std::cout); return 0; } diff --git a/cwl_input_example_store_config.cpp b/cwl_input_example_store_config.cpp new file mode 100644 index 0000000..4080b48 --- /dev/null +++ b/cwl_input_example_store_config.cpp @@ -0,0 +1,34 @@ +#include "cwl_v1_2.h" + +#include + +/** + * This test program creates loads and prints a CWL description. + * + * It assumes that printing to stdout works (see cwl_output_example). + * It loads a CWL description from a file and populates C++ classes. + */ + +// using shortened cwl:: namespace instead of w3id_org::cwl +namespace cwl = w3id_org::cwl; + +int main(int argc, char** argv) { + if (argc < 2) return 1; + + auto tool = cwl::load_document(argv[1]); + + // parse command line + auto config = cwl::store_config{}; + for (int i{2}; i < argc; ++i) { + auto sv = std::string_view{argv[i]}; + if (sv == "no_simplification") { + config.simplifyTypes = false; + } else if (sv == "no_list_to_map") { + config.transformListsToMaps = false; + } else if (sv == "tags") { + config.generateTags = true; + } + } + cwl::store_document(tool, std::cout, config); + return 0; +} diff --git a/cwl_output_example.cpp b/cwl_output_example.cpp index 2f1205a..c48ce3a 100644 --- a/cwl_output_example.cpp +++ b/cwl_output_example.cpp @@ -8,8 +8,8 @@ * It should print a valid CWL description to stdout. */ -// using shortened cwl:: namespace instead of https___w3id_org_cwl_cwl -namespace cwl = https___w3id_org_cwl_cwl; +// using shortened cwl:: namespace instead of w3id_org::cwl::cwl +namespace cwl = w3id_org::cwl::cwl; int main() { // declaring information about this tool in general @@ -105,9 +105,5 @@ int main() { } - auto y = toYaml(tool); - - YAML::Emitter out; - out << y; - std::cout << out.c_str() << "\n"; + w3id_org::cwl::store_document(tool, std::cout); } diff --git a/cwl_v1_2.h b/cwl_v1_2.h index 5cf93f1..5753102 100644 --- a/cwl_v1_2.h +++ b/cwl_v1_2.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2016-2023 CWL Project Contributors +// SPDX-FileCopyrightText: Copyright 2016-2024 CWL Project Contributors // SPDX-License-Identifier: Apache-2.0 #pragma once @@ -11,6 +11,8 @@ #include #include #include +#include +#include #include #include #include @@ -19,37 +21,136 @@ #include #include -inline auto mergeYaml(YAML::Node n1, YAML::Node n2) { - for (auto const& e : n1) { - n2[e.first.as()] = e.second; +namespace w3id_org::cwl { + +struct store_config { + bool simplifyTypes = true; + bool transformListsToMaps = true; + bool generateTags = false; +}; + +inline auto simplifyType(YAML::Node type, store_config const& config) -> YAML::Node { + if (!config.simplifyTypes) return type; + auto is_optional = [](YAML::Node const & node) { + return node.IsSequence() && node.size() == 2u && node[0].Scalar() == "null"; + }; + + auto is_array = [](YAML::Node const & node) { + return node.IsMap() && node["type"].Scalar() == "array" && node["items"].IsScalar(); + }; + + // 1. Collapsing optional scalar types into one option + if (is_optional(type) && type[1].IsScalar()) { + type = type[1].as() + "?"; } - return n2; -} -// declaring toYaml -inline auto toYaml(bool v) { - return YAML::Node{v}; + // 2. Collapsing array types into one option + if (is_array(type)) { + type = type["items"].as() + "[]"; + } + + // 3. Collapsing optional array types into one option + if (is_optional(type) && is_array(type[1])) { + type = type[1]["items"].as() + "[]?"; + } + + return type; } -inline auto toYaml(float v) { - return YAML::Node{v}; + +inline auto expandType(YAML::Node type) -> YAML::Node { + auto ends_with = [](std::string str, std::string suffix) { + if (str.size() < suffix.size()) return false; + auto str_suffix = str.substr(str.size()-suffix.size(), suffix.size()); + return str_suffix == suffix; + }; + + // 0. If not a scalar type, nothing to do + if (!type.IsDefined() || !type.IsScalar()) { + return type; + } + + auto str = type.as(); + // 1. Check if optional array type and expand + if (ends_with(str, "[]?")) { + auto result = YAML::Node{}; + result.push_back(YAML::Node{"null"}); + auto array = YAML::Node{}; + array["type"] = "array"; + array["items"] = expandType(YAML::Node(str.substr(0, str.size()-3))); + result.push_back(array); + return result; + } + + // 2. Expand array + if (ends_with(str, "[]")) { + auto array = YAML::Node{}; + array["type"] = "array"; + array["items"] = expandType(YAML::Node(str.substr(0, str.size()-2))); + return array; + } + + // 3. Expand optional scalar type + if (ends_with(str, "?")) { + auto result = YAML::Node{}; + result.push_back(YAML::Node{"null"}); + result.push_back(expandType(YAML::Node(str.substr(0, str.size()-1)))); + return result; + } + return type; } -inline auto toYaml(double v) { - return YAML::Node{v}; + +inline auto mergeYaml(YAML::Node n1, YAML::Node n2) { + for (auto const& e : n2) { + n1[e.first.as()] = e.second; + } + return n1; } -inline auto toYaml(int32_t v) { - return YAML::Node{v}; + +// declaring toYaml +inline auto toYaml(bool v, [[maybe_unused]] store_config const&) { return YAML::Node{v}; } +inline auto toYaml(float v, [[maybe_unused]] store_config const&) { return YAML::Node{v}; } +inline auto toYaml(double v, [[maybe_unused]] store_config const&) { return YAML::Node{v}; } +inline auto toYaml(char v, [[maybe_unused]] store_config const&) { return YAML::Node{v}; } +inline auto toYaml(int8_t v, [[maybe_unused]] store_config const&) { return YAML::Node{v}; } +inline auto toYaml(uint8_t v, [[maybe_unused]] store_config const&) { return YAML::Node{v}; } +inline auto toYaml(int16_t v, [[maybe_unused]] store_config const&) { return YAML::Node{v}; } +inline auto toYaml(uint16_t v, [[maybe_unused]] store_config const&) { return YAML::Node{v}; } +inline auto toYaml(int32_t v, [[maybe_unused]] store_config const&) { return YAML::Node{v}; } +inline auto toYaml(uint32_t v, [[maybe_unused]] store_config const&) { return YAML::Node{v}; } +inline auto toYaml(int64_t v, [[maybe_unused]] store_config const&) { return YAML::Node{v}; } +inline auto toYaml(uint64_t v, [[maybe_unused]] store_config const&) { return YAML::Node{v}; } +inline auto toYaml(std::monostate const&, [[maybe_unused]] store_config const&) { + return YAML::Node(YAML::NodeType::Undefined); } -inline auto toYaml(int64_t v) { +inline auto toYaml(std::string const& v, [[maybe_unused]] store_config const&) { return YAML::Node{v}; } -inline auto toYaml(std::any const&) { - return YAML::Node{}; -} -inline auto toYaml(std::monostate const&) { - return YAML::Node(YAML::NodeType::Undefined); + +template +auto anyToYaml_impl(std::any const& a, [[maybe_unused]] store_config const& config) { + if (auto v = std::any_cast(&a)) { + return toYaml(*v, config); + } + if constexpr (sizeof...(Args) > 0) { + return anyToYaml_impl(a, config); + } + return toYaml(std::monostate{}, config); } -inline auto toYaml(std::string const& v) { - return YAML::Node{v}; + +inline auto toYaml(std::any const& a, [[maybe_unused]] store_config const& config) { + return anyToYaml_impl(a, config); } // declaring fromYaml @@ -82,23 +183,39 @@ inline void addYamlField(YAML::Node& node, std::string const& key, YAML::Node va } } -inline auto convertListToMap(YAML::Node list, std::string const& key_name) { +inline auto convertListToMap(YAML::Node list, std::string const& mapSubject, + std::string const& mapPredicate, store_config const& config) { + if (!config.transformListsToMaps) return list; + if (mapSubject.empty()) return list; if (list.size() == 0) return list; auto map = YAML::Node{}; for (YAML::Node n : list) { - auto key = n[key_name].as(); - n.remove(key_name); - map[key] = n; + auto key = n[mapSubject].as(); + if (mapPredicate.empty() || n[mapPredicate].IsMap() || n.size() > 2) { + n.remove(mapSubject); + map[key] = n; + } else { + map[key] = n[mapPredicate]; + } } return map; } -inline auto convertMapToList(YAML::Node map, std::string const& key_name) { +inline auto convertMapToList(YAML::Node map, std::string const& mapSubject, + std::string const& mapPredicate) { + if (mapSubject.empty()) return map; if (!map.IsDefined()) return map; if (!map.IsMap()) return map; auto list = YAML::Node{}; for (auto n : map) { - n.second[key_name] = n.first; - list.push_back(n.second); + if (mapPredicate.empty() || n.second.IsMap()) { + n.second[mapSubject] = n.first; + list.push_back(n.second); + } else { + auto n2 = YAML::Node{}; + n2[mapSubject] = n.first; + n2[mapPredicate] = n.second; + list.push_back(n2); + } } return list; } @@ -107,13 +224,13 @@ template struct IsConstant : std::false_type {}; // fwd declaring toYaml template -auto toYaml(std::vector const& v) -> YAML::Node; +auto toYaml(std::vector const& v, [[maybe_unused]] store_config const& config) -> YAML::Node; template -auto toYaml(std::map const& v) -> YAML::Node; +auto toYaml(std::map const& v, [[maybe_unused]] store_config const& config) -> YAML::Node; template -auto toYaml(T const& t) -> YAML::Node; +auto toYaml(T const& t, [[maybe_unused]] store_config const& config) -> YAML::Node; template -auto toYaml(std::variant const& t) -> YAML::Node; +auto toYaml(std::variant const& t, [[maybe_unused]] store_config const& config) -> YAML::Node; // fwd declaring fromYaml template @@ -132,6 +249,23 @@ struct DetectAndExtractFromYaml { } }; +// special cwl expression string +struct cwl_expression_string { + std::string s; + + auto toYaml([[maybe_unused]] store_config const& config) const { + auto n = YAML::Node{s}; + if (config.generateTags) { + n.SetTag("Expression"); + } + return n; + } + void fromYaml(YAML::Node const& n) { + s = n.as(); + } +}; + + template <> struct DetectAndExtractFromYaml { auto operator()(YAML::Node const& n) const -> std::optional { @@ -202,7 +336,7 @@ class heap_object { *data = std::forward(oth); } - ~heap_object() = default; + ~heap_object(); auto operator=(heap_object const& oth) -> heap_object& { *data = *oth; @@ -238,85 +372,86 @@ class heap_object { } }; -namespace https___w3id_org_cwl_salad { struct Documented; } -namespace https___w3id_org_cwl_salad { struct RecordField; } -namespace https___w3id_org_cwl_salad { struct RecordSchema; } -namespace https___w3id_org_cwl_salad { struct EnumSchema; } -namespace https___w3id_org_cwl_salad { struct ArraySchema; } -namespace https___w3id_org_cwl_cwl { struct File; } -namespace https___w3id_org_cwl_cwl { struct Directory; } -namespace https___w3id_org_cwl_cwl { struct Labeled; } -namespace https___w3id_org_cwl_cwl { struct Identified; } -namespace https___w3id_org_cwl_cwl { struct LoadContents; } -namespace https___w3id_org_cwl_cwl { struct FieldBase; } -namespace https___w3id_org_cwl_cwl { struct InputFormat; } -namespace https___w3id_org_cwl_cwl { struct OutputFormat; } -namespace https___w3id_org_cwl_cwl { struct Parameter; } -namespace https___w3id_org_cwl_cwl { struct InputBinding; } -namespace https___w3id_org_cwl_cwl { struct IOSchema; } -namespace https___w3id_org_cwl_cwl { struct InputSchema; } -namespace https___w3id_org_cwl_cwl { struct OutputSchema; } -namespace https___w3id_org_cwl_cwl { struct InputRecordField; } -namespace https___w3id_org_cwl_cwl { struct InputRecordSchema; } -namespace https___w3id_org_cwl_cwl { struct InputEnumSchema; } -namespace https___w3id_org_cwl_cwl { struct InputArraySchema; } -namespace https___w3id_org_cwl_cwl { struct OutputRecordField; } -namespace https___w3id_org_cwl_cwl { struct OutputRecordSchema; } -namespace https___w3id_org_cwl_cwl { struct OutputEnumSchema; } -namespace https___w3id_org_cwl_cwl { struct OutputArraySchema; } -namespace https___w3id_org_cwl_cwl { struct InputParameter; } -namespace https___w3id_org_cwl_cwl { struct OutputParameter; } -namespace https___w3id_org_cwl_cwl { struct ProcessRequirement; } -namespace https___w3id_org_cwl_cwl { struct Process; } -namespace https___w3id_org_cwl_cwl { struct InlineJavascriptRequirement; } -namespace https___w3id_org_cwl_cwl { struct CommandInputSchema; } -namespace https___w3id_org_cwl_cwl { struct SchemaDefRequirement; } -namespace https___w3id_org_cwl_cwl { struct SecondaryFileSchema; } -namespace https___w3id_org_cwl_cwl { struct LoadListingRequirement; } -namespace https___w3id_org_cwl_cwl { struct EnvironmentDef; } -namespace https___w3id_org_cwl_cwl { struct CommandLineBinding; } -namespace https___w3id_org_cwl_cwl { struct CommandOutputBinding; } -namespace https___w3id_org_cwl_cwl { struct CommandLineBindable; } -namespace https___w3id_org_cwl_cwl { struct CommandInputRecordField; } -namespace https___w3id_org_cwl_cwl { struct CommandInputRecordSchema; } -namespace https___w3id_org_cwl_cwl { struct CommandInputEnumSchema; } -namespace https___w3id_org_cwl_cwl { struct CommandInputArraySchema; } -namespace https___w3id_org_cwl_cwl { struct CommandOutputRecordField; } -namespace https___w3id_org_cwl_cwl { struct CommandOutputRecordSchema; } -namespace https___w3id_org_cwl_cwl { struct CommandOutputEnumSchema; } -namespace https___w3id_org_cwl_cwl { struct CommandOutputArraySchema; } -namespace https___w3id_org_cwl_cwl { struct CommandInputParameter; } -namespace https___w3id_org_cwl_cwl { struct CommandOutputParameter; } -namespace https___w3id_org_cwl_cwl { struct CommandLineTool; } -namespace https___w3id_org_cwl_cwl { struct DockerRequirement; } -namespace https___w3id_org_cwl_cwl { struct SoftwareRequirement; } -namespace https___w3id_org_cwl_cwl { struct SoftwarePackage; } -namespace https___w3id_org_cwl_cwl { struct Dirent; } -namespace https___w3id_org_cwl_cwl { struct InitialWorkDirRequirement; } -namespace https___w3id_org_cwl_cwl { struct EnvVarRequirement; } -namespace https___w3id_org_cwl_cwl { struct ShellCommandRequirement; } -namespace https___w3id_org_cwl_cwl { struct ResourceRequirement; } -namespace https___w3id_org_cwl_cwl { struct WorkReuse; } -namespace https___w3id_org_cwl_cwl { struct NetworkAccess; } -namespace https___w3id_org_cwl_cwl { struct InplaceUpdateRequirement; } -namespace https___w3id_org_cwl_cwl { struct ToolTimeLimit; } -namespace https___w3id_org_cwl_cwl { struct ExpressionToolOutputParameter; } -namespace https___w3id_org_cwl_cwl { struct WorkflowInputParameter; } -namespace https___w3id_org_cwl_cwl { struct ExpressionTool; } -namespace https___w3id_org_cwl_cwl { struct WorkflowOutputParameter; } -namespace https___w3id_org_cwl_cwl { struct Sink; } -namespace https___w3id_org_cwl_cwl { struct WorkflowStepInput; } -namespace https___w3id_org_cwl_cwl { struct WorkflowStepOutput; } -namespace https___w3id_org_cwl_cwl { struct WorkflowStep; } -namespace https___w3id_org_cwl_cwl { struct Workflow; } -namespace https___w3id_org_cwl_cwl { struct SubworkflowFeatureRequirement; } -namespace https___w3id_org_cwl_cwl { struct ScatterFeatureRequirement; } -namespace https___w3id_org_cwl_cwl { struct MultipleInputFeatureRequirement; } -namespace https___w3id_org_cwl_cwl { struct StepInputExpressionRequirement; } -namespace https___w3id_org_cwl_cwl { struct OperationInputParameter; } -namespace https___w3id_org_cwl_cwl { struct OperationOutputParameter; } -namespace https___w3id_org_cwl_cwl { struct Operation; } -namespace https___w3id_org_cwl_salad { +} +namespace w3id_org::cwl::salad { struct Documented; } +namespace w3id_org::cwl::salad { struct RecordField; } +namespace w3id_org::cwl::salad { struct RecordSchema; } +namespace w3id_org::cwl::salad { struct EnumSchema; } +namespace w3id_org::cwl::salad { struct ArraySchema; } +namespace w3id_org::cwl::cwl { struct File; } +namespace w3id_org::cwl::cwl { struct Directory; } +namespace w3id_org::cwl::cwl { struct Labeled; } +namespace w3id_org::cwl::cwl { struct Identified; } +namespace w3id_org::cwl::cwl { struct LoadContents; } +namespace w3id_org::cwl::cwl { struct FieldBase; } +namespace w3id_org::cwl::cwl { struct InputFormat; } +namespace w3id_org::cwl::cwl { struct OutputFormat; } +namespace w3id_org::cwl::cwl { struct Parameter; } +namespace w3id_org::cwl::cwl { struct InputBinding; } +namespace w3id_org::cwl::cwl { struct IOSchema; } +namespace w3id_org::cwl::cwl { struct InputSchema; } +namespace w3id_org::cwl::cwl { struct OutputSchema; } +namespace w3id_org::cwl::cwl { struct InputRecordField; } +namespace w3id_org::cwl::cwl { struct InputRecordSchema; } +namespace w3id_org::cwl::cwl { struct InputEnumSchema; } +namespace w3id_org::cwl::cwl { struct InputArraySchema; } +namespace w3id_org::cwl::cwl { struct OutputRecordField; } +namespace w3id_org::cwl::cwl { struct OutputRecordSchema; } +namespace w3id_org::cwl::cwl { struct OutputEnumSchema; } +namespace w3id_org::cwl::cwl { struct OutputArraySchema; } +namespace w3id_org::cwl::cwl { struct InputParameter; } +namespace w3id_org::cwl::cwl { struct OutputParameter; } +namespace w3id_org::cwl::cwl { struct ProcessRequirement; } +namespace w3id_org::cwl::cwl { struct Process; } +namespace w3id_org::cwl::cwl { struct InlineJavascriptRequirement; } +namespace w3id_org::cwl::cwl { struct CommandInputSchema; } +namespace w3id_org::cwl::cwl { struct SchemaDefRequirement; } +namespace w3id_org::cwl::cwl { struct SecondaryFileSchema; } +namespace w3id_org::cwl::cwl { struct LoadListingRequirement; } +namespace w3id_org::cwl::cwl { struct EnvironmentDef; } +namespace w3id_org::cwl::cwl { struct CommandLineBinding; } +namespace w3id_org::cwl::cwl { struct CommandOutputBinding; } +namespace w3id_org::cwl::cwl { struct CommandLineBindable; } +namespace w3id_org::cwl::cwl { struct CommandInputRecordField; } +namespace w3id_org::cwl::cwl { struct CommandInputRecordSchema; } +namespace w3id_org::cwl::cwl { struct CommandInputEnumSchema; } +namespace w3id_org::cwl::cwl { struct CommandInputArraySchema; } +namespace w3id_org::cwl::cwl { struct CommandOutputRecordField; } +namespace w3id_org::cwl::cwl { struct CommandOutputRecordSchema; } +namespace w3id_org::cwl::cwl { struct CommandOutputEnumSchema; } +namespace w3id_org::cwl::cwl { struct CommandOutputArraySchema; } +namespace w3id_org::cwl::cwl { struct CommandInputParameter; } +namespace w3id_org::cwl::cwl { struct CommandOutputParameter; } +namespace w3id_org::cwl::cwl { struct CommandLineTool; } +namespace w3id_org::cwl::cwl { struct DockerRequirement; } +namespace w3id_org::cwl::cwl { struct SoftwareRequirement; } +namespace w3id_org::cwl::cwl { struct SoftwarePackage; } +namespace w3id_org::cwl::cwl { struct Dirent; } +namespace w3id_org::cwl::cwl { struct InitialWorkDirRequirement; } +namespace w3id_org::cwl::cwl { struct EnvVarRequirement; } +namespace w3id_org::cwl::cwl { struct ShellCommandRequirement; } +namespace w3id_org::cwl::cwl { struct ResourceRequirement; } +namespace w3id_org::cwl::cwl { struct WorkReuse; } +namespace w3id_org::cwl::cwl { struct NetworkAccess; } +namespace w3id_org::cwl::cwl { struct InplaceUpdateRequirement; } +namespace w3id_org::cwl::cwl { struct ToolTimeLimit; } +namespace w3id_org::cwl::cwl { struct ExpressionToolOutputParameter; } +namespace w3id_org::cwl::cwl { struct WorkflowInputParameter; } +namespace w3id_org::cwl::cwl { struct ExpressionTool; } +namespace w3id_org::cwl::cwl { struct WorkflowOutputParameter; } +namespace w3id_org::cwl::cwl { struct Sink; } +namespace w3id_org::cwl::cwl { struct WorkflowStepInput; } +namespace w3id_org::cwl::cwl { struct WorkflowStepOutput; } +namespace w3id_org::cwl::cwl { struct WorkflowStep; } +namespace w3id_org::cwl::cwl { struct Workflow; } +namespace w3id_org::cwl::cwl { struct SubworkflowFeatureRequirement; } +namespace w3id_org::cwl::cwl { struct ScatterFeatureRequirement; } +namespace w3id_org::cwl::cwl { struct MultipleInputFeatureRequirement; } +namespace w3id_org::cwl::cwl { struct StepInputExpressionRequirement; } +namespace w3id_org::cwl::cwl { struct OperationInputParameter; } +namespace w3id_org::cwl::cwl { struct OperationOutputParameter; } +namespace w3id_org::cwl::cwl { struct Operation; } +namespace w3id_org::cwl::salad { enum class PrimitiveType : unsigned int { null, boolean, @@ -336,33 +471,37 @@ inline auto to_string(PrimitiveType v) { "double", "string" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_salad::PrimitiveType& out) { - static auto m = std::map> { - {"null", https___w3id_org_cwl_salad::PrimitiveType::null}, - {"boolean", https___w3id_org_cwl_salad::PrimitiveType::boolean}, - {"int", https___w3id_org_cwl_salad::PrimitiveType::int_}, - {"long", https___w3id_org_cwl_salad::PrimitiveType::long_}, - {"float", https___w3id_org_cwl_salad::PrimitiveType::float_}, - {"double", https___w3id_org_cwl_salad::PrimitiveType::double_}, - {"string", https___w3id_org_cwl_salad::PrimitiveType::string}, +inline void to_enum(std::string_view v, w3id_org::cwl::salad::PrimitiveType& out) { + static auto m = std::map> { + {"null", w3id_org::cwl::salad::PrimitiveType::null}, + {"boolean", w3id_org::cwl::salad::PrimitiveType::boolean}, + {"int", w3id_org::cwl::salad::PrimitiveType::int_}, + {"long", w3id_org::cwl::salad::PrimitiveType::long_}, + {"float", w3id_org::cwl::salad::PrimitiveType::float_}, + {"double", w3id_org::cwl::salad::PrimitiveType::double_}, + {"string", w3id_org::cwl::salad::PrimitiveType::string}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_salad::PrimitiveType v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::salad::PrimitiveType v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::salad::PrimitiveType"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_salad::PrimitiveType& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::salad::PrimitiveType& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_salad { +namespace w3id_org::cwl::salad { enum class Any : unsigned int { Any }; @@ -370,27 +509,31 @@ inline auto to_string(Any v) { static auto m = std::vector { "Any" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_salad::Any& out) { - static auto m = std::map> { - {"Any", https___w3id_org_cwl_salad::Any::Any}, +inline void to_enum(std::string_view v, w3id_org::cwl::salad::Any& out) { + static auto m = std::map> { + {"Any", w3id_org::cwl::salad::Any::Any}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_salad::Any v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::salad::Any v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::salad::Any"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_salad::Any& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::salad::Any& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_salad { +namespace w3id_org::cwl::salad { enum class RecordSchema_type_Record_name : unsigned int { record }; @@ -398,27 +541,31 @@ inline auto to_string(RecordSchema_type_Record_name v) { static auto m = std::vector { "record" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_salad::RecordSchema_type_Record_name& out) { - static auto m = std::map> { - {"record", https___w3id_org_cwl_salad::RecordSchema_type_Record_name::record}, +inline void to_enum(std::string_view v, w3id_org::cwl::salad::RecordSchema_type_Record_name& out) { + static auto m = std::map> { + {"record", w3id_org::cwl::salad::RecordSchema_type_Record_name::record}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_salad::RecordSchema_type_Record_name v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::salad::RecordSchema_type_Record_name v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::salad::RecordSchema_type_Record_name"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_salad::RecordSchema_type_Record_name& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::salad::RecordSchema_type_Record_name& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_salad { +namespace w3id_org::cwl::salad { enum class EnumSchema_type_Enum_name : unsigned int { enum_ }; @@ -426,27 +573,31 @@ inline auto to_string(EnumSchema_type_Enum_name v) { static auto m = std::vector { "enum" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_salad::EnumSchema_type_Enum_name& out) { - static auto m = std::map> { - {"enum", https___w3id_org_cwl_salad::EnumSchema_type_Enum_name::enum_}, +inline void to_enum(std::string_view v, w3id_org::cwl::salad::EnumSchema_type_Enum_name& out) { + static auto m = std::map> { + {"enum", w3id_org::cwl::salad::EnumSchema_type_Enum_name::enum_}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_salad::EnumSchema_type_Enum_name v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::salad::EnumSchema_type_Enum_name v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::salad::EnumSchema_type_Enum_name"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_salad::EnumSchema_type_Enum_name& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::salad::EnumSchema_type_Enum_name& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_salad { +namespace w3id_org::cwl::salad { enum class ArraySchema_type_Array_name : unsigned int { array }; @@ -454,27 +605,31 @@ inline auto to_string(ArraySchema_type_Array_name v) { static auto m = std::vector { "array" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_salad::ArraySchema_type_Array_name& out) { - static auto m = std::map> { - {"array", https___w3id_org_cwl_salad::ArraySchema_type_Array_name::array}, +inline void to_enum(std::string_view v, w3id_org::cwl::salad::ArraySchema_type_Array_name& out) { + static auto m = std::map> { + {"array", w3id_org::cwl::salad::ArraySchema_type_Array_name::array}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_salad::ArraySchema_type_Array_name v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::salad::ArraySchema_type_Array_name v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::salad::ArraySchema_type_Array_name"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_salad::ArraySchema_type_Array_name& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::salad::ArraySchema_type_Array_name& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class CWLVersion : unsigned int { draft_2, draft_3_dev1, @@ -520,46 +675,50 @@ inline auto to_string(CWLVersion v) { "v1.2.0-dev5", "v1.2" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::CWLVersion& out) { - static auto m = std::map> { - {"draft-2", https___w3id_org_cwl_cwl::CWLVersion::draft_2}, - {"draft-3.dev1", https___w3id_org_cwl_cwl::CWLVersion::draft_3_dev1}, - {"draft-3.dev2", https___w3id_org_cwl_cwl::CWLVersion::draft_3_dev2}, - {"draft-3.dev3", https___w3id_org_cwl_cwl::CWLVersion::draft_3_dev3}, - {"draft-3.dev4", https___w3id_org_cwl_cwl::CWLVersion::draft_3_dev4}, - {"draft-3.dev5", https___w3id_org_cwl_cwl::CWLVersion::draft_3_dev5}, - {"draft-3", https___w3id_org_cwl_cwl::CWLVersion::draft_3}, - {"draft-4.dev1", https___w3id_org_cwl_cwl::CWLVersion::draft_4_dev1}, - {"draft-4.dev2", https___w3id_org_cwl_cwl::CWLVersion::draft_4_dev2}, - {"draft-4.dev3", https___w3id_org_cwl_cwl::CWLVersion::draft_4_dev3}, - {"v1.0.dev4", https___w3id_org_cwl_cwl::CWLVersion::v1_0_dev4}, - {"v1.0", https___w3id_org_cwl_cwl::CWLVersion::v1_0}, - {"v1.1.0-dev1", https___w3id_org_cwl_cwl::CWLVersion::v1_1_0_dev1}, - {"v1.1", https___w3id_org_cwl_cwl::CWLVersion::v1_1}, - {"v1.2.0-dev1", https___w3id_org_cwl_cwl::CWLVersion::v1_2_0_dev1}, - {"v1.2.0-dev2", https___w3id_org_cwl_cwl::CWLVersion::v1_2_0_dev2}, - {"v1.2.0-dev3", https___w3id_org_cwl_cwl::CWLVersion::v1_2_0_dev3}, - {"v1.2.0-dev4", https___w3id_org_cwl_cwl::CWLVersion::v1_2_0_dev4}, - {"v1.2.0-dev5", https___w3id_org_cwl_cwl::CWLVersion::v1_2_0_dev5}, - {"v1.2", https___w3id_org_cwl_cwl::CWLVersion::v1_2}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::CWLVersion& out) { + static auto m = std::map> { + {"draft-2", w3id_org::cwl::cwl::CWLVersion::draft_2}, + {"draft-3.dev1", w3id_org::cwl::cwl::CWLVersion::draft_3_dev1}, + {"draft-3.dev2", w3id_org::cwl::cwl::CWLVersion::draft_3_dev2}, + {"draft-3.dev3", w3id_org::cwl::cwl::CWLVersion::draft_3_dev3}, + {"draft-3.dev4", w3id_org::cwl::cwl::CWLVersion::draft_3_dev4}, + {"draft-3.dev5", w3id_org::cwl::cwl::CWLVersion::draft_3_dev5}, + {"draft-3", w3id_org::cwl::cwl::CWLVersion::draft_3}, + {"draft-4.dev1", w3id_org::cwl::cwl::CWLVersion::draft_4_dev1}, + {"draft-4.dev2", w3id_org::cwl::cwl::CWLVersion::draft_4_dev2}, + {"draft-4.dev3", w3id_org::cwl::cwl::CWLVersion::draft_4_dev3}, + {"v1.0.dev4", w3id_org::cwl::cwl::CWLVersion::v1_0_dev4}, + {"v1.0", w3id_org::cwl::cwl::CWLVersion::v1_0}, + {"v1.1.0-dev1", w3id_org::cwl::cwl::CWLVersion::v1_1_0_dev1}, + {"v1.1", w3id_org::cwl::cwl::CWLVersion::v1_1}, + {"v1.2.0-dev1", w3id_org::cwl::cwl::CWLVersion::v1_2_0_dev1}, + {"v1.2.0-dev2", w3id_org::cwl::cwl::CWLVersion::v1_2_0_dev2}, + {"v1.2.0-dev3", w3id_org::cwl::cwl::CWLVersion::v1_2_0_dev3}, + {"v1.2.0-dev4", w3id_org::cwl::cwl::CWLVersion::v1_2_0_dev4}, + {"v1.2.0-dev5", w3id_org::cwl::cwl::CWLVersion::v1_2_0_dev5}, + {"v1.2", w3id_org::cwl::cwl::CWLVersion::v1_2}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::CWLVersion v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::CWLVersion v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::CWLVersion"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::CWLVersion& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::CWLVersion& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class CWLType : unsigned int { null, boolean, @@ -583,35 +742,39 @@ inline auto to_string(CWLType v) { "File", "Directory" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::CWLType& out) { - static auto m = std::map> { - {"null", https___w3id_org_cwl_cwl::CWLType::null}, - {"boolean", https___w3id_org_cwl_cwl::CWLType::boolean}, - {"int", https___w3id_org_cwl_cwl::CWLType::int_}, - {"long", https___w3id_org_cwl_cwl::CWLType::long_}, - {"float", https___w3id_org_cwl_cwl::CWLType::float_}, - {"double", https___w3id_org_cwl_cwl::CWLType::double_}, - {"string", https___w3id_org_cwl_cwl::CWLType::string}, - {"File", https___w3id_org_cwl_cwl::CWLType::File}, - {"Directory", https___w3id_org_cwl_cwl::CWLType::Directory}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::CWLType& out) { + static auto m = std::map> { + {"null", w3id_org::cwl::cwl::CWLType::null}, + {"boolean", w3id_org::cwl::cwl::CWLType::boolean}, + {"int", w3id_org::cwl::cwl::CWLType::int_}, + {"long", w3id_org::cwl::cwl::CWLType::long_}, + {"float", w3id_org::cwl::cwl::CWLType::float_}, + {"double", w3id_org::cwl::cwl::CWLType::double_}, + {"string", w3id_org::cwl::cwl::CWLType::string}, + {"File", w3id_org::cwl::cwl::CWLType::File}, + {"Directory", w3id_org::cwl::cwl::CWLType::Directory}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::CWLType v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::CWLType v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::CWLType"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::CWLType& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::CWLType& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class File_class_File_class : unsigned int { File }; @@ -619,27 +782,31 @@ inline auto to_string(File_class_File_class v) { static auto m = std::vector { "File" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::File_class_File_class& out) { - static auto m = std::map> { - {"File", https___w3id_org_cwl_cwl::File_class_File_class::File}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::File_class_File_class& out) { + static auto m = std::map> { + {"File", w3id_org::cwl::cwl::File_class_File_class::File}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::File_class_File_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::File_class_File_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::File_class_File_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::File_class_File_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::File_class_File_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class Directory_class_Directory_class : unsigned int { Directory }; @@ -647,27 +814,31 @@ inline auto to_string(Directory_class_Directory_class v) { static auto m = std::vector { "Directory" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::Directory_class_Directory_class& out) { - static auto m = std::map> { - {"Directory", https___w3id_org_cwl_cwl::Directory_class_Directory_class::Directory}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::Directory_class_Directory_class& out) { + static auto m = std::map> { + {"Directory", w3id_org::cwl::cwl::Directory_class_Directory_class::Directory}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::Directory_class_Directory_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::Directory_class_Directory_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::Directory_class_Directory_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::Directory_class_Directory_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::Directory_class_Directory_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class LoadListingEnum : unsigned int { no_listing, shallow_listing, @@ -679,29 +850,33 @@ inline auto to_string(LoadListingEnum v) { "shallow_listing", "deep_listing" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::LoadListingEnum& out) { - static auto m = std::map> { - {"no_listing", https___w3id_org_cwl_cwl::LoadListingEnum::no_listing}, - {"shallow_listing", https___w3id_org_cwl_cwl::LoadListingEnum::shallow_listing}, - {"deep_listing", https___w3id_org_cwl_cwl::LoadListingEnum::deep_listing}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::LoadListingEnum& out) { + static auto m = std::map> { + {"no_listing", w3id_org::cwl::cwl::LoadListingEnum::no_listing}, + {"shallow_listing", w3id_org::cwl::cwl::LoadListingEnum::shallow_listing}, + {"deep_listing", w3id_org::cwl::cwl::LoadListingEnum::deep_listing}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::LoadListingEnum v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::LoadListingEnum v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::LoadListingEnum"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::LoadListingEnum& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::LoadListingEnum& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class Expression : unsigned int { ExpressionPlaceholder }; @@ -709,27 +884,31 @@ inline auto to_string(Expression v) { static auto m = std::vector { "ExpressionPlaceholder" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::Expression& out) { - static auto m = std::map> { - {"ExpressionPlaceholder", https___w3id_org_cwl_cwl::Expression::ExpressionPlaceholder}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::Expression& out) { + static auto m = std::map> { + {"ExpressionPlaceholder", w3id_org::cwl::cwl::Expression::ExpressionPlaceholder}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::Expression v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::Expression v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::Expression"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::Expression& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::Expression& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class InlineJavascriptRequirement_class_InlineJavascriptRequirement_class : unsigned int { InlineJavascriptRequirement }; @@ -737,27 +916,31 @@ inline auto to_string(InlineJavascriptRequirement_class_InlineJavascriptRequirem static auto m = std::vector { "InlineJavascriptRequirement" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::InlineJavascriptRequirement_class_InlineJavascriptRequirement_class& out) { - static auto m = std::map> { - {"InlineJavascriptRequirement", https___w3id_org_cwl_cwl::InlineJavascriptRequirement_class_InlineJavascriptRequirement_class::InlineJavascriptRequirement}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::InlineJavascriptRequirement_class_InlineJavascriptRequirement_class& out) { + static auto m = std::map> { + {"InlineJavascriptRequirement", w3id_org::cwl::cwl::InlineJavascriptRequirement_class_InlineJavascriptRequirement_class::InlineJavascriptRequirement}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::InlineJavascriptRequirement_class_InlineJavascriptRequirement_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::InlineJavascriptRequirement_class_InlineJavascriptRequirement_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::InlineJavascriptRequirement_class_InlineJavascriptRequirement_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::InlineJavascriptRequirement_class_InlineJavascriptRequirement_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::InlineJavascriptRequirement_class_InlineJavascriptRequirement_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class SchemaDefRequirement_class_SchemaDefRequirement_class : unsigned int { SchemaDefRequirement }; @@ -765,27 +948,31 @@ inline auto to_string(SchemaDefRequirement_class_SchemaDefRequirement_class v) { static auto m = std::vector { "SchemaDefRequirement" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::SchemaDefRequirement_class_SchemaDefRequirement_class& out) { - static auto m = std::map> { - {"SchemaDefRequirement", https___w3id_org_cwl_cwl::SchemaDefRequirement_class_SchemaDefRequirement_class::SchemaDefRequirement}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::SchemaDefRequirement_class_SchemaDefRequirement_class& out) { + static auto m = std::map> { + {"SchemaDefRequirement", w3id_org::cwl::cwl::SchemaDefRequirement_class_SchemaDefRequirement_class::SchemaDefRequirement}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::SchemaDefRequirement_class_SchemaDefRequirement_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::SchemaDefRequirement_class_SchemaDefRequirement_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::SchemaDefRequirement_class_SchemaDefRequirement_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::SchemaDefRequirement_class_SchemaDefRequirement_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::SchemaDefRequirement_class_SchemaDefRequirement_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class LoadListingRequirement_class_LoadListingRequirement_class : unsigned int { LoadListingRequirement }; @@ -793,27 +980,31 @@ inline auto to_string(LoadListingRequirement_class_LoadListingRequirement_class static auto m = std::vector { "LoadListingRequirement" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::LoadListingRequirement_class_LoadListingRequirement_class& out) { - static auto m = std::map> { - {"LoadListingRequirement", https___w3id_org_cwl_cwl::LoadListingRequirement_class_LoadListingRequirement_class::LoadListingRequirement}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::LoadListingRequirement_class_LoadListingRequirement_class& out) { + static auto m = std::map> { + {"LoadListingRequirement", w3id_org::cwl::cwl::LoadListingRequirement_class_LoadListingRequirement_class::LoadListingRequirement}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::LoadListingRequirement_class_LoadListingRequirement_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::LoadListingRequirement_class_LoadListingRequirement_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::LoadListingRequirement_class_LoadListingRequirement_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::LoadListingRequirement_class_LoadListingRequirement_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::LoadListingRequirement_class_LoadListingRequirement_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class stdin_ : unsigned int { stdin_ }; @@ -821,27 +1012,31 @@ inline auto to_string(stdin_ v) { static auto m = std::vector { "stdin" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::stdin_& out) { - static auto m = std::map> { - {"stdin", https___w3id_org_cwl_cwl::stdin_::stdin_}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::stdin_& out) { + static auto m = std::map> { + {"stdin", w3id_org::cwl::cwl::stdin_::stdin_}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::stdin_ v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::stdin_ v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::stdin_"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::stdin_& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::stdin_& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class stdout_ : unsigned int { stdout_ }; @@ -849,27 +1044,31 @@ inline auto to_string(stdout_ v) { static auto m = std::vector { "stdout" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::stdout_& out) { - static auto m = std::map> { - {"stdout", https___w3id_org_cwl_cwl::stdout_::stdout_}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::stdout_& out) { + static auto m = std::map> { + {"stdout", w3id_org::cwl::cwl::stdout_::stdout_}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::stdout_ v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::stdout_ v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::stdout_"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::stdout_& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::stdout_& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class stderr_ : unsigned int { stderr_ }; @@ -877,27 +1076,31 @@ inline auto to_string(stderr_ v) { static auto m = std::vector { "stderr" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::stderr_& out) { - static auto m = std::map> { - {"stderr", https___w3id_org_cwl_cwl::stderr_::stderr_}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::stderr_& out) { + static auto m = std::map> { + {"stderr", w3id_org::cwl::cwl::stderr_::stderr_}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::stderr_ v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::stderr_ v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::stderr_"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::stderr_& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::stderr_& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class CommandLineTool_class_CommandLineTool_class : unsigned int { CommandLineTool }; @@ -905,27 +1108,31 @@ inline auto to_string(CommandLineTool_class_CommandLineTool_class v) { static auto m = std::vector { "CommandLineTool" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::CommandLineTool_class_CommandLineTool_class& out) { - static auto m = std::map> { - {"CommandLineTool", https___w3id_org_cwl_cwl::CommandLineTool_class_CommandLineTool_class::CommandLineTool}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::CommandLineTool_class_CommandLineTool_class& out) { + static auto m = std::map> { + {"CommandLineTool", w3id_org::cwl::cwl::CommandLineTool_class_CommandLineTool_class::CommandLineTool}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::CommandLineTool_class_CommandLineTool_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::CommandLineTool_class_CommandLineTool_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::CommandLineTool_class_CommandLineTool_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::CommandLineTool_class_CommandLineTool_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::CommandLineTool_class_CommandLineTool_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class DockerRequirement_class_DockerRequirement_class : unsigned int { DockerRequirement }; @@ -933,27 +1140,31 @@ inline auto to_string(DockerRequirement_class_DockerRequirement_class v) { static auto m = std::vector { "DockerRequirement" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::DockerRequirement_class_DockerRequirement_class& out) { - static auto m = std::map> { - {"DockerRequirement", https___w3id_org_cwl_cwl::DockerRequirement_class_DockerRequirement_class::DockerRequirement}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::DockerRequirement_class_DockerRequirement_class& out) { + static auto m = std::map> { + {"DockerRequirement", w3id_org::cwl::cwl::DockerRequirement_class_DockerRequirement_class::DockerRequirement}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::DockerRequirement_class_DockerRequirement_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::DockerRequirement_class_DockerRequirement_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::DockerRequirement_class_DockerRequirement_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::DockerRequirement_class_DockerRequirement_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::DockerRequirement_class_DockerRequirement_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class SoftwareRequirement_class_SoftwareRequirement_class : unsigned int { SoftwareRequirement }; @@ -961,27 +1172,31 @@ inline auto to_string(SoftwareRequirement_class_SoftwareRequirement_class v) { static auto m = std::vector { "SoftwareRequirement" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::SoftwareRequirement_class_SoftwareRequirement_class& out) { - static auto m = std::map> { - {"SoftwareRequirement", https___w3id_org_cwl_cwl::SoftwareRequirement_class_SoftwareRequirement_class::SoftwareRequirement}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::SoftwareRequirement_class_SoftwareRequirement_class& out) { + static auto m = std::map> { + {"SoftwareRequirement", w3id_org::cwl::cwl::SoftwareRequirement_class_SoftwareRequirement_class::SoftwareRequirement}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::SoftwareRequirement_class_SoftwareRequirement_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::SoftwareRequirement_class_SoftwareRequirement_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::SoftwareRequirement_class_SoftwareRequirement_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::SoftwareRequirement_class_SoftwareRequirement_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::SoftwareRequirement_class_SoftwareRequirement_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class InitialWorkDirRequirement_class_InitialWorkDirRequirement_class : unsigned int { InitialWorkDirRequirement }; @@ -989,27 +1204,31 @@ inline auto to_string(InitialWorkDirRequirement_class_InitialWorkDirRequirement_ static auto m = std::vector { "InitialWorkDirRequirement" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::InitialWorkDirRequirement_class_InitialWorkDirRequirement_class& out) { - static auto m = std::map> { - {"InitialWorkDirRequirement", https___w3id_org_cwl_cwl::InitialWorkDirRequirement_class_InitialWorkDirRequirement_class::InitialWorkDirRequirement}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::InitialWorkDirRequirement_class_InitialWorkDirRequirement_class& out) { + static auto m = std::map> { + {"InitialWorkDirRequirement", w3id_org::cwl::cwl::InitialWorkDirRequirement_class_InitialWorkDirRequirement_class::InitialWorkDirRequirement}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::InitialWorkDirRequirement_class_InitialWorkDirRequirement_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::InitialWorkDirRequirement_class_InitialWorkDirRequirement_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::InitialWorkDirRequirement_class_InitialWorkDirRequirement_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::InitialWorkDirRequirement_class_InitialWorkDirRequirement_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::InitialWorkDirRequirement_class_InitialWorkDirRequirement_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class EnvVarRequirement_class_EnvVarRequirement_class : unsigned int { EnvVarRequirement }; @@ -1017,27 +1236,31 @@ inline auto to_string(EnvVarRequirement_class_EnvVarRequirement_class v) { static auto m = std::vector { "EnvVarRequirement" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::EnvVarRequirement_class_EnvVarRequirement_class& out) { - static auto m = std::map> { - {"EnvVarRequirement", https___w3id_org_cwl_cwl::EnvVarRequirement_class_EnvVarRequirement_class::EnvVarRequirement}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::EnvVarRequirement_class_EnvVarRequirement_class& out) { + static auto m = std::map> { + {"EnvVarRequirement", w3id_org::cwl::cwl::EnvVarRequirement_class_EnvVarRequirement_class::EnvVarRequirement}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::EnvVarRequirement_class_EnvVarRequirement_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::EnvVarRequirement_class_EnvVarRequirement_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::EnvVarRequirement_class_EnvVarRequirement_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::EnvVarRequirement_class_EnvVarRequirement_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::EnvVarRequirement_class_EnvVarRequirement_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class ShellCommandRequirement_class_ShellCommandRequirement_class : unsigned int { ShellCommandRequirement }; @@ -1045,27 +1268,31 @@ inline auto to_string(ShellCommandRequirement_class_ShellCommandRequirement_clas static auto m = std::vector { "ShellCommandRequirement" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::ShellCommandRequirement_class_ShellCommandRequirement_class& out) { - static auto m = std::map> { - {"ShellCommandRequirement", https___w3id_org_cwl_cwl::ShellCommandRequirement_class_ShellCommandRequirement_class::ShellCommandRequirement}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::ShellCommandRequirement_class_ShellCommandRequirement_class& out) { + static auto m = std::map> { + {"ShellCommandRequirement", w3id_org::cwl::cwl::ShellCommandRequirement_class_ShellCommandRequirement_class::ShellCommandRequirement}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::ShellCommandRequirement_class_ShellCommandRequirement_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::ShellCommandRequirement_class_ShellCommandRequirement_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::ShellCommandRequirement_class_ShellCommandRequirement_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::ShellCommandRequirement_class_ShellCommandRequirement_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::ShellCommandRequirement_class_ShellCommandRequirement_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class ResourceRequirement_class_ResourceRequirement_class : unsigned int { ResourceRequirement }; @@ -1073,27 +1300,31 @@ inline auto to_string(ResourceRequirement_class_ResourceRequirement_class v) { static auto m = std::vector { "ResourceRequirement" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::ResourceRequirement_class_ResourceRequirement_class& out) { - static auto m = std::map> { - {"ResourceRequirement", https___w3id_org_cwl_cwl::ResourceRequirement_class_ResourceRequirement_class::ResourceRequirement}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::ResourceRequirement_class_ResourceRequirement_class& out) { + static auto m = std::map> { + {"ResourceRequirement", w3id_org::cwl::cwl::ResourceRequirement_class_ResourceRequirement_class::ResourceRequirement}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::ResourceRequirement_class_ResourceRequirement_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::ResourceRequirement_class_ResourceRequirement_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::ResourceRequirement_class_ResourceRequirement_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::ResourceRequirement_class_ResourceRequirement_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::ResourceRequirement_class_ResourceRequirement_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class WorkReuse_class_WorkReuse_class : unsigned int { WorkReuse }; @@ -1101,27 +1332,31 @@ inline auto to_string(WorkReuse_class_WorkReuse_class v) { static auto m = std::vector { "WorkReuse" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::WorkReuse_class_WorkReuse_class& out) { - static auto m = std::map> { - {"WorkReuse", https___w3id_org_cwl_cwl::WorkReuse_class_WorkReuse_class::WorkReuse}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::WorkReuse_class_WorkReuse_class& out) { + static auto m = std::map> { + {"WorkReuse", w3id_org::cwl::cwl::WorkReuse_class_WorkReuse_class::WorkReuse}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::WorkReuse_class_WorkReuse_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::WorkReuse_class_WorkReuse_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::WorkReuse_class_WorkReuse_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::WorkReuse_class_WorkReuse_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::WorkReuse_class_WorkReuse_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class NetworkAccess_class_NetworkAccess_class : unsigned int { NetworkAccess }; @@ -1129,27 +1364,31 @@ inline auto to_string(NetworkAccess_class_NetworkAccess_class v) { static auto m = std::vector { "NetworkAccess" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::NetworkAccess_class_NetworkAccess_class& out) { - static auto m = std::map> { - {"NetworkAccess", https___w3id_org_cwl_cwl::NetworkAccess_class_NetworkAccess_class::NetworkAccess}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::NetworkAccess_class_NetworkAccess_class& out) { + static auto m = std::map> { + {"NetworkAccess", w3id_org::cwl::cwl::NetworkAccess_class_NetworkAccess_class::NetworkAccess}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::NetworkAccess_class_NetworkAccess_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::NetworkAccess_class_NetworkAccess_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::NetworkAccess_class_NetworkAccess_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::NetworkAccess_class_NetworkAccess_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::NetworkAccess_class_NetworkAccess_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class InplaceUpdateRequirement_class_InplaceUpdateRequirement_class : unsigned int { InplaceUpdateRequirement }; @@ -1157,27 +1396,31 @@ inline auto to_string(InplaceUpdateRequirement_class_InplaceUpdateRequirement_cl static auto m = std::vector { "InplaceUpdateRequirement" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::InplaceUpdateRequirement_class_InplaceUpdateRequirement_class& out) { - static auto m = std::map> { - {"InplaceUpdateRequirement", https___w3id_org_cwl_cwl::InplaceUpdateRequirement_class_InplaceUpdateRequirement_class::InplaceUpdateRequirement}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::InplaceUpdateRequirement_class_InplaceUpdateRequirement_class& out) { + static auto m = std::map> { + {"InplaceUpdateRequirement", w3id_org::cwl::cwl::InplaceUpdateRequirement_class_InplaceUpdateRequirement_class::InplaceUpdateRequirement}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::InplaceUpdateRequirement_class_InplaceUpdateRequirement_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::InplaceUpdateRequirement_class_InplaceUpdateRequirement_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::InplaceUpdateRequirement_class_InplaceUpdateRequirement_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::InplaceUpdateRequirement_class_InplaceUpdateRequirement_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::InplaceUpdateRequirement_class_InplaceUpdateRequirement_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class ToolTimeLimit_class_ToolTimeLimit_class : unsigned int { ToolTimeLimit }; @@ -1185,27 +1428,31 @@ inline auto to_string(ToolTimeLimit_class_ToolTimeLimit_class v) { static auto m = std::vector { "ToolTimeLimit" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::ToolTimeLimit_class_ToolTimeLimit_class& out) { - static auto m = std::map> { - {"ToolTimeLimit", https___w3id_org_cwl_cwl::ToolTimeLimit_class_ToolTimeLimit_class::ToolTimeLimit}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::ToolTimeLimit_class_ToolTimeLimit_class& out) { + static auto m = std::map> { + {"ToolTimeLimit", w3id_org::cwl::cwl::ToolTimeLimit_class_ToolTimeLimit_class::ToolTimeLimit}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::ToolTimeLimit_class_ToolTimeLimit_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::ToolTimeLimit_class_ToolTimeLimit_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::ToolTimeLimit_class_ToolTimeLimit_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::ToolTimeLimit_class_ToolTimeLimit_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::ToolTimeLimit_class_ToolTimeLimit_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class ExpressionTool_class_ExpressionTool_class : unsigned int { ExpressionTool }; @@ -1213,27 +1460,31 @@ inline auto to_string(ExpressionTool_class_ExpressionTool_class v) { static auto m = std::vector { "ExpressionTool" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::ExpressionTool_class_ExpressionTool_class& out) { - static auto m = std::map> { - {"ExpressionTool", https___w3id_org_cwl_cwl::ExpressionTool_class_ExpressionTool_class::ExpressionTool}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::ExpressionTool_class_ExpressionTool_class& out) { + static auto m = std::map> { + {"ExpressionTool", w3id_org::cwl::cwl::ExpressionTool_class_ExpressionTool_class::ExpressionTool}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::ExpressionTool_class_ExpressionTool_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::ExpressionTool_class_ExpressionTool_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::ExpressionTool_class_ExpressionTool_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::ExpressionTool_class_ExpressionTool_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::ExpressionTool_class_ExpressionTool_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class LinkMergeMethod : unsigned int { merge_nested, merge_flattened @@ -1243,28 +1494,32 @@ inline auto to_string(LinkMergeMethod v) { "merge_nested", "merge_flattened" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::LinkMergeMethod& out) { - static auto m = std::map> { - {"merge_nested", https___w3id_org_cwl_cwl::LinkMergeMethod::merge_nested}, - {"merge_flattened", https___w3id_org_cwl_cwl::LinkMergeMethod::merge_flattened}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::LinkMergeMethod& out) { + static auto m = std::map> { + {"merge_nested", w3id_org::cwl::cwl::LinkMergeMethod::merge_nested}, + {"merge_flattened", w3id_org::cwl::cwl::LinkMergeMethod::merge_flattened}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::LinkMergeMethod v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::LinkMergeMethod v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::LinkMergeMethod"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::LinkMergeMethod& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::LinkMergeMethod& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class PickValueMethod : unsigned int { first_non_null, the_only_non_null, @@ -1276,29 +1531,33 @@ inline auto to_string(PickValueMethod v) { "the_only_non_null", "all_non_null" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::PickValueMethod& out) { - static auto m = std::map> { - {"first_non_null", https___w3id_org_cwl_cwl::PickValueMethod::first_non_null}, - {"the_only_non_null", https___w3id_org_cwl_cwl::PickValueMethod::the_only_non_null}, - {"all_non_null", https___w3id_org_cwl_cwl::PickValueMethod::all_non_null}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::PickValueMethod& out) { + static auto m = std::map> { + {"first_non_null", w3id_org::cwl::cwl::PickValueMethod::first_non_null}, + {"the_only_non_null", w3id_org::cwl::cwl::PickValueMethod::the_only_non_null}, + {"all_non_null", w3id_org::cwl::cwl::PickValueMethod::all_non_null}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::PickValueMethod v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::PickValueMethod v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::PickValueMethod"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::PickValueMethod& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::PickValueMethod& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class ScatterMethod : unsigned int { dotproduct, nested_crossproduct, @@ -1310,29 +1569,33 @@ inline auto to_string(ScatterMethod v) { "nested_crossproduct", "flat_crossproduct" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::ScatterMethod& out) { - static auto m = std::map> { - {"dotproduct", https___w3id_org_cwl_cwl::ScatterMethod::dotproduct}, - {"nested_crossproduct", https___w3id_org_cwl_cwl::ScatterMethod::nested_crossproduct}, - {"flat_crossproduct", https___w3id_org_cwl_cwl::ScatterMethod::flat_crossproduct}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::ScatterMethod& out) { + static auto m = std::map> { + {"dotproduct", w3id_org::cwl::cwl::ScatterMethod::dotproduct}, + {"nested_crossproduct", w3id_org::cwl::cwl::ScatterMethod::nested_crossproduct}, + {"flat_crossproduct", w3id_org::cwl::cwl::ScatterMethod::flat_crossproduct}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::ScatterMethod v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::ScatterMethod v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::ScatterMethod"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::ScatterMethod& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::ScatterMethod& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class Workflow_class_Workflow_class : unsigned int { Workflow }; @@ -1340,27 +1603,31 @@ inline auto to_string(Workflow_class_Workflow_class v) { static auto m = std::vector { "Workflow" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::Workflow_class_Workflow_class& out) { - static auto m = std::map> { - {"Workflow", https___w3id_org_cwl_cwl::Workflow_class_Workflow_class::Workflow}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::Workflow_class_Workflow_class& out) { + static auto m = std::map> { + {"Workflow", w3id_org::cwl::cwl::Workflow_class_Workflow_class::Workflow}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::Workflow_class_Workflow_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::Workflow_class_Workflow_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::Workflow_class_Workflow_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::Workflow_class_Workflow_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::Workflow_class_Workflow_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class SubworkflowFeatureRequirement_class_SubworkflowFeatureRequirement_class : unsigned int { SubworkflowFeatureRequirement }; @@ -1368,27 +1635,31 @@ inline auto to_string(SubworkflowFeatureRequirement_class_SubworkflowFeatureRequ static auto m = std::vector { "SubworkflowFeatureRequirement" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::SubworkflowFeatureRequirement_class_SubworkflowFeatureRequirement_class& out) { - static auto m = std::map> { - {"SubworkflowFeatureRequirement", https___w3id_org_cwl_cwl::SubworkflowFeatureRequirement_class_SubworkflowFeatureRequirement_class::SubworkflowFeatureRequirement}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::SubworkflowFeatureRequirement_class_SubworkflowFeatureRequirement_class& out) { + static auto m = std::map> { + {"SubworkflowFeatureRequirement", w3id_org::cwl::cwl::SubworkflowFeatureRequirement_class_SubworkflowFeatureRequirement_class::SubworkflowFeatureRequirement}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::SubworkflowFeatureRequirement_class_SubworkflowFeatureRequirement_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::SubworkflowFeatureRequirement_class_SubworkflowFeatureRequirement_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::SubworkflowFeatureRequirement_class_SubworkflowFeatureRequirement_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::SubworkflowFeatureRequirement_class_SubworkflowFeatureRequirement_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::SubworkflowFeatureRequirement_class_SubworkflowFeatureRequirement_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class ScatterFeatureRequirement_class_ScatterFeatureRequirement_class : unsigned int { ScatterFeatureRequirement }; @@ -1396,27 +1667,31 @@ inline auto to_string(ScatterFeatureRequirement_class_ScatterFeatureRequirement_ static auto m = std::vector { "ScatterFeatureRequirement" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::ScatterFeatureRequirement_class_ScatterFeatureRequirement_class& out) { - static auto m = std::map> { - {"ScatterFeatureRequirement", https___w3id_org_cwl_cwl::ScatterFeatureRequirement_class_ScatterFeatureRequirement_class::ScatterFeatureRequirement}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::ScatterFeatureRequirement_class_ScatterFeatureRequirement_class& out) { + static auto m = std::map> { + {"ScatterFeatureRequirement", w3id_org::cwl::cwl::ScatterFeatureRequirement_class_ScatterFeatureRequirement_class::ScatterFeatureRequirement}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::ScatterFeatureRequirement_class_ScatterFeatureRequirement_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::ScatterFeatureRequirement_class_ScatterFeatureRequirement_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::ScatterFeatureRequirement_class_ScatterFeatureRequirement_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::ScatterFeatureRequirement_class_ScatterFeatureRequirement_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::ScatterFeatureRequirement_class_ScatterFeatureRequirement_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class MultipleInputFeatureRequirement_class_MultipleInputFeatureRequirement_class : unsigned int { MultipleInputFeatureRequirement }; @@ -1424,27 +1699,31 @@ inline auto to_string(MultipleInputFeatureRequirement_class_MultipleInputFeature static auto m = std::vector { "MultipleInputFeatureRequirement" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::MultipleInputFeatureRequirement_class_MultipleInputFeatureRequirement_class& out) { - static auto m = std::map> { - {"MultipleInputFeatureRequirement", https___w3id_org_cwl_cwl::MultipleInputFeatureRequirement_class_MultipleInputFeatureRequirement_class::MultipleInputFeatureRequirement}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::MultipleInputFeatureRequirement_class_MultipleInputFeatureRequirement_class& out) { + static auto m = std::map> { + {"MultipleInputFeatureRequirement", w3id_org::cwl::cwl::MultipleInputFeatureRequirement_class_MultipleInputFeatureRequirement_class::MultipleInputFeatureRequirement}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::MultipleInputFeatureRequirement_class_MultipleInputFeatureRequirement_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::MultipleInputFeatureRequirement_class_MultipleInputFeatureRequirement_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::MultipleInputFeatureRequirement_class_MultipleInputFeatureRequirement_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::MultipleInputFeatureRequirement_class_MultipleInputFeatureRequirement_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::MultipleInputFeatureRequirement_class_MultipleInputFeatureRequirement_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class StepInputExpressionRequirement_class_StepInputExpressionRequirement_class : unsigned int { StepInputExpressionRequirement }; @@ -1452,27 +1731,31 @@ inline auto to_string(StepInputExpressionRequirement_class_StepInputExpressionRe static auto m = std::vector { "StepInputExpressionRequirement" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::StepInputExpressionRequirement_class_StepInputExpressionRequirement_class& out) { - static auto m = std::map> { - {"StepInputExpressionRequirement", https___w3id_org_cwl_cwl::StepInputExpressionRequirement_class_StepInputExpressionRequirement_class::StepInputExpressionRequirement}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::StepInputExpressionRequirement_class_StepInputExpressionRequirement_class& out) { + static auto m = std::map> { + {"StepInputExpressionRequirement", w3id_org::cwl::cwl::StepInputExpressionRequirement_class_StepInputExpressionRequirement_class::StepInputExpressionRequirement}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::StepInputExpressionRequirement_class_StepInputExpressionRequirement_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::StepInputExpressionRequirement_class_StepInputExpressionRequirement_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::StepInputExpressionRequirement_class_StepInputExpressionRequirement_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::StepInputExpressionRequirement_class_StepInputExpressionRequirement_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::StepInputExpressionRequirement_class_StepInputExpressionRequirement_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { enum class Operation_class_Operation_class : unsigned int { Operation }; @@ -1480,78 +1763,82 @@ inline auto to_string(Operation_class_Operation_class v) { static auto m = std::vector { "Operation" }; - using U = std::underlying_type_t; + using U = std::underlying_type_t; return m.at(static_cast(v)); } } -inline void to_enum(std::string_view v, https___w3id_org_cwl_cwl::Operation_class_Operation_class& out) { - static auto m = std::map> { - {"Operation", https___w3id_org_cwl_cwl::Operation_class_Operation_class::Operation}, +inline void to_enum(std::string_view v, w3id_org::cwl::cwl::Operation_class_Operation_class& out) { + static auto m = std::map> { + {"Operation", w3id_org::cwl::cwl::Operation_class_Operation_class::Operation}, }; auto iter = m.find(v); if (iter == m.end()) throw bool{}; out = iter->second; } -inline auto toYaml(https___w3id_org_cwl_cwl::Operation_class_Operation_class v) { - return YAML::Node{std::string{to_string(v)}}; +namespace w3id_org::cwl { +inline auto toYaml(w3id_org::cwl::cwl::Operation_class_Operation_class v, [[maybe_unused]] ::w3id_org::cwl::store_config const& config) { + auto n = YAML::Node{std::string{to_string(v)}}; + if (config.generateTags) n.SetTag("w3id_org::cwl::cwl::Operation_class_Operation_class"); + return n; } -inline void fromYaml(YAML::Node n, https___w3id_org_cwl_cwl::Operation_class_Operation_class& out) { +inline void fromYaml(YAML::Node n, w3id_org::cwl::cwl::Operation_class_Operation_class& out) { to_enum(n.as(), out); } -template <> struct IsConstant : std::true_type {}; +template <> struct IsConstant : std::true_type {}; +} -namespace https___w3id_org_cwl_salad { +namespace w3id_org::cwl::salad { struct Documented { heap_object>> doc; virtual ~Documented() = 0; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_salad { +namespace w3id_org::cwl::salad { struct RecordField - : https___w3id_org_cwl_salad::Documented { + : w3id_org::cwl::salad::Documented { heap_object name; heap_object, RecordSchema, EnumSchema, ArraySchema, std::string, std::vector, RecordSchema, EnumSchema, ArraySchema, std::string>>>> type; ~RecordField() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_salad { +namespace w3id_org::cwl::salad { struct RecordSchema { heap_object>> fields; heap_object type; virtual ~RecordSchema() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_salad { +namespace w3id_org::cwl::salad { struct EnumSchema { heap_object> name; heap_object> symbols; heap_object type; virtual ~EnumSchema() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_salad { +namespace w3id_org::cwl::salad { struct ArraySchema { heap_object, RecordSchema, EnumSchema, ArraySchema, std::string, std::vector, RecordSchema, EnumSchema, ArraySchema, std::string>>>> items; heap_object type; virtual ~ArraySchema() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct File { heap_object class_; heap_object> location; @@ -1566,12 +1853,12 @@ struct File { heap_object> format; heap_object> contents; virtual ~File() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct Directory { heap_object class_; heap_object> location; @@ -1579,118 +1866,118 @@ struct Directory { heap_object> basename; heap_object>>> listing; virtual ~Directory() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct Labeled { heap_object> label; virtual ~Labeled() = 0; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct Identified { heap_object> id; virtual ~Identified() = 0; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct LoadContents { heap_object> loadContents; heap_object> loadListing; virtual ~LoadContents() = 0; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct FieldBase - : https___w3id_org_cwl_cwl::Labeled { + : w3id_org::cwl::cwl::Labeled { heap_object>> secondaryFiles; heap_object> streamable; virtual ~FieldBase() = 0; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct InputFormat { - heap_object, Expression>> format; + heap_object, cwl_expression_string>> format; virtual ~InputFormat() = 0; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct OutputFormat { - heap_object> format; + heap_object> format; virtual ~OutputFormat() = 0; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct Parameter - : https___w3id_org_cwl_cwl::FieldBase - , https___w3id_org_cwl_salad::Documented - , https___w3id_org_cwl_cwl::Identified { + : w3id_org::cwl::cwl::FieldBase + , w3id_org::cwl::salad::Documented + , w3id_org::cwl::cwl::Identified { virtual ~Parameter() = 0; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct InputBinding { heap_object> loadContents; virtual ~InputBinding() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct IOSchema - : https___w3id_org_cwl_cwl::Labeled - , https___w3id_org_cwl_salad::Documented { + : w3id_org::cwl::cwl::Labeled + , w3id_org::cwl::salad::Documented { heap_object> name; virtual ~IOSchema() = 0; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct InputSchema - : https___w3id_org_cwl_cwl::IOSchema { + : w3id_org::cwl::cwl::IOSchema { virtual ~InputSchema() = 0; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct OutputSchema - : https___w3id_org_cwl_cwl::IOSchema { + : w3id_org::cwl::cwl::IOSchema { virtual ~OutputSchema() = 0; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct InputRecordField { heap_object>> doc; heap_object name; @@ -1698,52 +1985,52 @@ struct InputRecordField { heap_object> label; heap_object>> secondaryFiles; heap_object> streamable; - heap_object, Expression>> format; + heap_object, cwl_expression_string>> format; heap_object> loadContents; heap_object> loadListing; virtual ~InputRecordField() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct InputRecordSchema { heap_object>> fields; - heap_object type; + heap_object type; heap_object> label; heap_object>> doc; heap_object> name; virtual ~InputRecordSchema() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct InputEnumSchema - : https___w3id_org_cwl_salad::EnumSchema - , https___w3id_org_cwl_cwl::InputSchema { + : w3id_org::cwl::salad::EnumSchema + , w3id_org::cwl::cwl::InputSchema { ~InputEnumSchema() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct InputArraySchema { heap_object>>> items; - heap_object type; + heap_object type; heap_object> label; heap_object>> doc; heap_object> name; virtual ~InputArraySchema() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct OutputRecordField { heap_object>> doc; heap_object name; @@ -1751,84 +2038,84 @@ struct OutputRecordField { heap_object> label; heap_object>> secondaryFiles; heap_object> streamable; - heap_object> format; + heap_object> format; virtual ~OutputRecordField() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct OutputRecordSchema { heap_object>> fields; - heap_object type; + heap_object type; heap_object> label; heap_object>> doc; heap_object> name; virtual ~OutputRecordSchema() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct OutputEnumSchema - : https___w3id_org_cwl_salad::EnumSchema - , https___w3id_org_cwl_cwl::OutputSchema { + : w3id_org::cwl::salad::EnumSchema + , w3id_org::cwl::cwl::OutputSchema { ~OutputEnumSchema() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct OutputArraySchema { heap_object>>> items; - heap_object type; + heap_object type; heap_object> label; heap_object>> doc; heap_object> name; virtual ~OutputArraySchema() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct InputParameter - : https___w3id_org_cwl_cwl::Parameter - , https___w3id_org_cwl_cwl::InputFormat - , https___w3id_org_cwl_cwl::LoadContents { + : w3id_org::cwl::cwl::Parameter + , w3id_org::cwl::cwl::InputFormat + , w3id_org::cwl::cwl::LoadContents { heap_object> default_; virtual ~InputParameter() = 0; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct OutputParameter - : https___w3id_org_cwl_cwl::Parameter - , https___w3id_org_cwl_cwl::OutputFormat { + : w3id_org::cwl::cwl::Parameter + , w3id_org::cwl::cwl::OutputFormat { virtual ~OutputParameter() = 0; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct ProcessRequirement { virtual ~ProcessRequirement() = 0; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct Process - : https___w3id_org_cwl_cwl::Identified - , https___w3id_org_cwl_cwl::Labeled - , https___w3id_org_cwl_salad::Documented { + : w3id_org::cwl::cwl::Identified + , w3id_org::cwl::cwl::Labeled + , w3id_org::cwl::salad::Documented { heap_object>> inputs; heap_object>> outputs; heap_object>>> requirements; @@ -1836,108 +2123,108 @@ struct Process heap_object> cwlVersion; heap_object>> intent; virtual ~Process() = 0; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct InlineJavascriptRequirement - : https___w3id_org_cwl_cwl::ProcessRequirement { + : w3id_org::cwl::cwl::ProcessRequirement { heap_object class_; heap_object>> expressionLib; ~InlineJavascriptRequirement() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct CommandInputSchema { virtual ~CommandInputSchema() = 0; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct SchemaDefRequirement - : https___w3id_org_cwl_cwl::ProcessRequirement { + : w3id_org::cwl::cwl::ProcessRequirement { heap_object class_; heap_object>> types; ~SchemaDefRequirement() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct SecondaryFileSchema { - heap_object> pattern; - heap_object> required; + heap_object> pattern; + heap_object> required; virtual ~SecondaryFileSchema() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct LoadListingRequirement - : https___w3id_org_cwl_cwl::ProcessRequirement { + : w3id_org::cwl::cwl::ProcessRequirement { heap_object class_; heap_object> loadListing; ~LoadListingRequirement() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct EnvironmentDef { heap_object envName; - heap_object> envValue; + heap_object> envValue; virtual ~EnvironmentDef() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct CommandLineBinding - : https___w3id_org_cwl_cwl::InputBinding { - heap_object> position; + : w3id_org::cwl::cwl::InputBinding { + heap_object> position; heap_object> prefix; heap_object> separate; heap_object> itemSeparator; - heap_object> valueFrom; + heap_object> valueFrom; heap_object> shellQuote; ~CommandLineBinding() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct CommandOutputBinding - : https___w3id_org_cwl_cwl::LoadContents { - heap_object>> glob; - heap_object> outputEval; + : w3id_org::cwl::cwl::LoadContents { + heap_object>> glob; + heap_object> outputEval; ~CommandOutputBinding() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct CommandLineBindable { heap_object> inputBinding; virtual ~CommandLineBindable() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct CommandInputRecordField { heap_object>> doc; heap_object name; @@ -1945,59 +2232,59 @@ struct CommandInputRecordField { heap_object> label; heap_object>> secondaryFiles; heap_object> streamable; - heap_object, Expression>> format; + heap_object, cwl_expression_string>> format; heap_object> loadContents; heap_object> loadListing; heap_object> inputBinding; virtual ~CommandInputRecordField() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct CommandInputRecordSchema { heap_object>> fields; - heap_object type; + heap_object type; heap_object> label; heap_object>> doc; heap_object> name; heap_object> inputBinding; virtual ~CommandInputRecordSchema() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct CommandInputEnumSchema { heap_object> name; heap_object> symbols; - heap_object type; + heap_object type; heap_object> label; heap_object>> doc; heap_object> inputBinding; virtual ~CommandInputEnumSchema() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct CommandInputArraySchema { heap_object>>> items; - heap_object type; + heap_object type; heap_object> label; heap_object>> doc; heap_object> name; heap_object> inputBinding; virtual ~CommandInputArraySchema() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct CommandOutputRecordField { heap_object>> doc; heap_object name; @@ -2005,76 +2292,76 @@ struct CommandOutputRecordField { heap_object> label; heap_object>> secondaryFiles; heap_object> streamable; - heap_object> format; + heap_object> format; heap_object> outputBinding; virtual ~CommandOutputRecordField() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct CommandOutputRecordSchema { heap_object>> fields; - heap_object type; + heap_object type; heap_object> label; heap_object>> doc; heap_object> name; virtual ~CommandOutputRecordSchema() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct CommandOutputEnumSchema { heap_object> name; heap_object> symbols; - heap_object type; + heap_object type; heap_object> label; heap_object>> doc; virtual ~CommandOutputEnumSchema() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct CommandOutputArraySchema { heap_object>>> items; - heap_object type; + heap_object type; heap_object> label; heap_object>> doc; heap_object> name; virtual ~CommandOutputArraySchema() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct CommandInputParameter - : https___w3id_org_cwl_cwl::InputParameter { + : w3id_org::cwl::cwl::InputParameter { heap_object>>> type; heap_object> inputBinding; ~CommandInputParameter() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct CommandOutputParameter - : https___w3id_org_cwl_cwl::OutputParameter { + : w3id_org::cwl::cwl::OutputParameter { heap_object>>> type; heap_object> outputBinding; ~CommandOutputParameter() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct CommandLineTool { heap_object> id; heap_object> label; @@ -2087,22 +2374,22 @@ struct CommandLineTool { heap_object>> intent; heap_object class_; heap_object>> baseCommand; - heap_object>>> arguments; - heap_object> stdin_; - heap_object> stderr_; - heap_object> stdout_; + heap_object>>> arguments; + heap_object> stdin_; + heap_object> stderr_; + heap_object> stdout_; heap_object>> successCodes; heap_object>> temporaryFailCodes; heap_object>> permanentFailCodes; virtual ~CommandLineTool() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct DockerRequirement - : https___w3id_org_cwl_cwl::ProcessRequirement { + : w3id_org::cwl::cwl::ProcessRequirement { heap_object class_; heap_object> dockerPull; heap_object> dockerLoad; @@ -2111,160 +2398,160 @@ struct DockerRequirement heap_object> dockerImageId; heap_object> dockerOutputDirectory; ~DockerRequirement() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct SoftwareRequirement - : https___w3id_org_cwl_cwl::ProcessRequirement { + : w3id_org::cwl::cwl::ProcessRequirement { heap_object class_; heap_object> packages; ~SoftwareRequirement() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct SoftwarePackage { heap_object package; heap_object>> version; heap_object>> specs; virtual ~SoftwarePackage() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct Dirent { - heap_object> entryname; - heap_object> entry; + heap_object> entryname; + heap_object> entry; heap_object> writable; virtual ~Dirent() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct InitialWorkDirRequirement - : https___w3id_org_cwl_cwl::ProcessRequirement { + : w3id_org::cwl::cwl::ProcessRequirement { heap_object class_; - heap_object>>>>> listing; + heap_object>>>>> listing; ~InitialWorkDirRequirement() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct EnvVarRequirement - : https___w3id_org_cwl_cwl::ProcessRequirement { + : w3id_org::cwl::cwl::ProcessRequirement { heap_object class_; heap_object> envDef; ~EnvVarRequirement() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct ShellCommandRequirement - : https___w3id_org_cwl_cwl::ProcessRequirement { + : w3id_org::cwl::cwl::ProcessRequirement { heap_object class_; ~ShellCommandRequirement() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct ResourceRequirement - : https___w3id_org_cwl_cwl::ProcessRequirement { + : w3id_org::cwl::cwl::ProcessRequirement { heap_object class_; - heap_object> coresMin; - heap_object> coresMax; - heap_object> ramMin; - heap_object> ramMax; - heap_object> tmpdirMin; - heap_object> tmpdirMax; - heap_object> outdirMin; - heap_object> outdirMax; + heap_object> coresMin; + heap_object> coresMax; + heap_object> ramMin; + heap_object> ramMax; + heap_object> tmpdirMin; + heap_object> tmpdirMax; + heap_object> outdirMin; + heap_object> outdirMax; ~ResourceRequirement() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct WorkReuse - : https___w3id_org_cwl_cwl::ProcessRequirement { + : w3id_org::cwl::cwl::ProcessRequirement { heap_object class_; - heap_object> enableReuse; + heap_object> enableReuse; ~WorkReuse() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct NetworkAccess - : https___w3id_org_cwl_cwl::ProcessRequirement { + : w3id_org::cwl::cwl::ProcessRequirement { heap_object class_; - heap_object> networkAccess; + heap_object> networkAccess; ~NetworkAccess() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct InplaceUpdateRequirement - : https___w3id_org_cwl_cwl::ProcessRequirement { + : w3id_org::cwl::cwl::ProcessRequirement { heap_object class_; heap_object inplaceUpdate; ~InplaceUpdateRequirement() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct ToolTimeLimit - : https___w3id_org_cwl_cwl::ProcessRequirement { + : w3id_org::cwl::cwl::ProcessRequirement { heap_object class_; - heap_object> timelimit; + heap_object> timelimit; ~ToolTimeLimit() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct ExpressionToolOutputParameter - : https___w3id_org_cwl_cwl::OutputParameter { + : w3id_org::cwl::cwl::OutputParameter { heap_object>>> type; ~ExpressionToolOutputParameter() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct WorkflowInputParameter - : https___w3id_org_cwl_cwl::InputParameter { + : w3id_org::cwl::cwl::InputParameter { heap_object>>> type; heap_object> inputBinding; ~WorkflowInputParameter() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct ExpressionTool { heap_object> id; heap_object> label; @@ -2276,80 +2563,80 @@ struct ExpressionTool { heap_object> cwlVersion; heap_object>> intent; heap_object class_; - heap_object expression; + heap_object expression; virtual ~ExpressionTool() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct WorkflowOutputParameter - : https___w3id_org_cwl_cwl::OutputParameter { + : w3id_org::cwl::cwl::OutputParameter { heap_object>> outputSource; heap_object> linkMerge; heap_object> pickValue; heap_object>>> type; ~WorkflowOutputParameter() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct Sink { heap_object>> source; heap_object> linkMerge; heap_object> pickValue; virtual ~Sink() = 0; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct WorkflowStepInput - : https___w3id_org_cwl_cwl::Identified - , https___w3id_org_cwl_cwl::Sink - , https___w3id_org_cwl_cwl::LoadContents - , https___w3id_org_cwl_cwl::Labeled { + : w3id_org::cwl::cwl::Identified + , w3id_org::cwl::cwl::Sink + , w3id_org::cwl::cwl::LoadContents + , w3id_org::cwl::cwl::Labeled { heap_object> default_; - heap_object> valueFrom; + heap_object> valueFrom; ~WorkflowStepInput() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct WorkflowStepOutput - : https___w3id_org_cwl_cwl::Identified { + : w3id_org::cwl::cwl::Identified { ~WorkflowStepOutput() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct WorkflowStep - : https___w3id_org_cwl_cwl::Identified - , https___w3id_org_cwl_cwl::Labeled - , https___w3id_org_cwl_salad::Documented { + : w3id_org::cwl::cwl::Identified + , w3id_org::cwl::cwl::Labeled + , w3id_org::cwl::salad::Documented { heap_object> in; heap_object>> out; heap_object>>> requirements; heap_object>> hints; heap_object> run; - heap_object> when; + heap_object> when; heap_object>> scatter; heap_object> scatterMethod; ~WorkflowStep() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct Workflow { heap_object> id; heap_object> label; @@ -2363,72 +2650,72 @@ struct Workflow { heap_object class_; heap_object> steps; virtual ~Workflow() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct SubworkflowFeatureRequirement - : https___w3id_org_cwl_cwl::ProcessRequirement { + : w3id_org::cwl::cwl::ProcessRequirement { heap_object class_; ~SubworkflowFeatureRequirement() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct ScatterFeatureRequirement - : https___w3id_org_cwl_cwl::ProcessRequirement { + : w3id_org::cwl::cwl::ProcessRequirement { heap_object class_; ~ScatterFeatureRequirement() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct MultipleInputFeatureRequirement - : https___w3id_org_cwl_cwl::ProcessRequirement { + : w3id_org::cwl::cwl::ProcessRequirement { heap_object class_; ~MultipleInputFeatureRequirement() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct StepInputExpressionRequirement - : https___w3id_org_cwl_cwl::ProcessRequirement { + : w3id_org::cwl::cwl::ProcessRequirement { heap_object class_; ~StepInputExpressionRequirement() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct OperationInputParameter - : https___w3id_org_cwl_cwl::InputParameter { + : w3id_org::cwl::cwl::InputParameter { heap_object>>> type; ~OperationInputParameter() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct OperationOutputParameter - : https___w3id_org_cwl_cwl::OutputParameter { + : w3id_org::cwl::cwl::OutputParameter { heap_object>>> type; ~OperationOutputParameter() override = default; - auto toYaml() const -> YAML::Node override; + auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node override; void fromYaml(YAML::Node const& n) override; }; } -namespace https___w3id_org_cwl_cwl { +namespace w3id_org::cwl::cwl { struct Operation { heap_object> id; heap_object> label; @@ -2441,51 +2728,86 @@ struct Operation { heap_object>> intent; heap_object class_; virtual ~Operation() = default; - virtual auto toYaml() const -> YAML::Node; + virtual auto toYaml([[maybe_unused]] w3id_org::cwl::store_config const& config) const -> YAML::Node; virtual void fromYaml(YAML::Node const& n); }; } -inline https___w3id_org_cwl_salad::Documented::~Documented() = default; -inline auto https___w3id_org_cwl_salad::Documented::toYaml() const -> YAML::Node { - using ::toYaml; +namespace w3id_org::cwl { +template heap_object::~heap_object() = default; +} + +inline w3id_org::cwl::salad::Documented::~Documented() = default; +inline auto w3id_org::cwl::salad::Documented::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "doc", toYaml(*doc)); + if (config.generateTags) { + n.SetTag("Documented"); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } return n; } -inline void https___w3id_org_cwl_salad::Documented::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["doc"], *doc); +inline void w3id_org::cwl::salad::Documented::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } } -inline auto https___w3id_org_cwl_salad::RecordField::toYaml() const -> YAML::Node { - using ::toYaml; +inline auto w3id_org::cwl::salad::RecordField::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_salad::Documented::toYaml()); - addYamlField(n, "name", toYaml(*name)); - addYamlField(n, "type", toYaml(*type)); + if (config.generateTags) { + n.SetTag("RecordField"); + } + n = mergeYaml(n, w3id_org::cwl::salad::Documented::toYaml(config)); + { + auto member = toYaml(*name, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "name", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } return n; } -inline void https___w3id_org_cwl_salad::RecordField::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_salad::Documented::fromYaml(n); - fromYaml(n["name"], *name); - fromYaml(n["type"], *type); +inline void w3id_org::cwl::salad::RecordField::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::salad::Documented::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["name"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *name); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::salad::RecordField> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::salad::RecordField> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_salad::RecordField{}; + auto res = ::w3id_org::cwl::salad::RecordField{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["name"], *res.name); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; @@ -2494,36 +2816,54 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_salad::RecordSchema::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::salad::RecordSchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "fields", - convertListToMap(toYaml(*fields), "name")); - addYamlField(n, "type", toYaml(*type)); + if (config.generateTags) { + n.SetTag("RecordSchema"); + } + { + auto member = toYaml(*fields, config); + member = convertListToMap(member, "name", "type", config); + addYamlField(n, "fields", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } return n; } -inline void https___w3id_org_cwl_salad::RecordSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - - fromYaml(convertMapToList(n["fields"], -"name"), *fields); - fromYaml(n["type"], *type); +inline void w3id_org::cwl::salad::RecordSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["fields"], "name", "type"); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *fields); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::salad::RecordSchema> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::salad::RecordSchema> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_salad::RecordSchema{}; + auto res = ::w3id_org::cwl::salad::RecordSchema{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["fields"], *res.fields); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; @@ -2532,41 +2872,70 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_salad::EnumSchema::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::salad::EnumSchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "name", toYaml(*name)); - addYamlField(n, "symbols", toYaml(*symbols)); - addYamlField(n, "type", toYaml(*type)); + if (config.generateTags) { + n.SetTag("EnumSchema"); + } + { + auto member = toYaml(*name, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "name", member); + } + { + auto member = toYaml(*symbols, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "symbols", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } return n; } -inline void https___w3id_org_cwl_salad::EnumSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["name"], *name); - fromYaml(n["symbols"], *symbols); - fromYaml(n["type"], *type); +inline void w3id_org::cwl::salad::EnumSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["name"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *name); + } + { + auto nodeAsList = convertMapToList(n["symbols"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *symbols); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::salad::EnumSchema> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::salad::EnumSchema> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_salad::EnumSchema{}; + auto res = ::w3id_org::cwl::salad::EnumSchema{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["name"], *res.name); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["symbols"], *res.symbols); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; @@ -2575,33 +2944,54 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_salad::ArraySchema::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::salad::ArraySchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "items", toYaml(*items)); - addYamlField(n, "type", toYaml(*type)); + if (config.generateTags) { + n.SetTag("ArraySchema"); + } + { + auto member = toYaml(*items, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "items", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } return n; } -inline void https___w3id_org_cwl_salad::ArraySchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["items"], *items); - fromYaml(n["type"], *type); +inline void w3id_org::cwl::salad::ArraySchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["items"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *items); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::salad::ArraySchema> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::salad::ArraySchema> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_salad::ArraySchema{}; + auto res = ::w3id_org::cwl::salad::ArraySchema{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["items"], *res.items); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; @@ -2610,113 +3000,213 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::File::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::File::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "class", toYaml(*class_)); - addYamlField(n, "location", toYaml(*location)); - addYamlField(n, "path", toYaml(*path)); - addYamlField(n, "basename", toYaml(*basename)); - addYamlField(n, "dirname", toYaml(*dirname)); - addYamlField(n, "nameroot", toYaml(*nameroot)); - addYamlField(n, "nameext", toYaml(*nameext)); - addYamlField(n, "checksum", toYaml(*checksum)); - addYamlField(n, "size", toYaml(*size)); - addYamlField(n, "secondaryFiles", toYaml(*secondaryFiles)); - addYamlField(n, "format", toYaml(*format)); - addYamlField(n, "contents", toYaml(*contents)); + if (config.generateTags) { + n.SetTag("File"); + } + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } + { + auto member = toYaml(*location, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "location", member); + } + { + auto member = toYaml(*path, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "path", member); + } + { + auto member = toYaml(*basename, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "basename", member); + } + { + auto member = toYaml(*dirname, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "dirname", member); + } + { + auto member = toYaml(*nameroot, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "nameroot", member); + } + { + auto member = toYaml(*nameext, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "nameext", member); + } + { + auto member = toYaml(*checksum, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "checksum", member); + } + { + auto member = toYaml(*size, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "size", member); + } + { + auto member = toYaml(*secondaryFiles, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "secondaryFiles", member); + } + { + auto member = toYaml(*format, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "format", member); + } + { + auto member = toYaml(*contents, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "contents", member); + } return n; } -inline void https___w3id_org_cwl_cwl::File::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["class"], *class_); - fromYaml(n["location"], *location); - fromYaml(n["path"], *path); - fromYaml(n["basename"], *basename); - fromYaml(n["dirname"], *dirname); - fromYaml(n["nameroot"], *nameroot); - fromYaml(n["nameext"], *nameext); - fromYaml(n["checksum"], *checksum); - fromYaml(n["size"], *size); - fromYaml(n["secondaryFiles"], *secondaryFiles); - fromYaml(n["format"], *format); - fromYaml(n["contents"], *contents); +inline void w3id_org::cwl::cwl::File::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } + { + auto nodeAsList = convertMapToList(n["location"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *location); + } + { + auto nodeAsList = convertMapToList(n["path"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *path); + } + { + auto nodeAsList = convertMapToList(n["basename"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *basename); + } + { + auto nodeAsList = convertMapToList(n["dirname"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *dirname); + } + { + auto nodeAsList = convertMapToList(n["nameroot"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *nameroot); + } + { + auto nodeAsList = convertMapToList(n["nameext"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *nameext); + } + { + auto nodeAsList = convertMapToList(n["checksum"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *checksum); + } + { + auto nodeAsList = convertMapToList(n["size"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *size); + } + { + auto nodeAsList = convertMapToList(n["secondaryFiles"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *secondaryFiles); + } + { + auto nodeAsList = convertMapToList(n["format"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *format); + } + { + auto nodeAsList = convertMapToList(n["contents"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *contents); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::File> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::File> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::File{}; + auto res = ::w3id_org::cwl::cwl::File{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["location"], *res.location); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["path"], *res.path); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["basename"], *res.basename); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["dirname"], *res.dirname); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["nameroot"], *res.nameroot); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["nameext"], *res.nameext); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["checksum"], *res.checksum); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["size"], *res.size); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["secondaryFiles"], *res.secondaryFiles); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["format"], *res.format); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["contents"], *res.contents); fromYaml(n, res); return res; @@ -2725,57 +3215,101 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::Directory::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::Directory::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "class", toYaml(*class_)); - addYamlField(n, "location", toYaml(*location)); - addYamlField(n, "path", toYaml(*path)); - addYamlField(n, "basename", toYaml(*basename)); - addYamlField(n, "listing", toYaml(*listing)); + if (config.generateTags) { + n.SetTag("Directory"); + } + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } + { + auto member = toYaml(*location, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "location", member); + } + { + auto member = toYaml(*path, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "path", member); + } + { + auto member = toYaml(*basename, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "basename", member); + } + { + auto member = toYaml(*listing, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "listing", member); + } return n; } -inline void https___w3id_org_cwl_cwl::Directory::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["class"], *class_); - fromYaml(n["location"], *location); - fromYaml(n["path"], *path); - fromYaml(n["basename"], *basename); - fromYaml(n["listing"], *listing); +inline void w3id_org::cwl::cwl::Directory::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } + { + auto nodeAsList = convertMapToList(n["location"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *location); + } + { + auto nodeAsList = convertMapToList(n["path"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *path); + } + { + auto nodeAsList = convertMapToList(n["basename"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *basename); + } + { + auto nodeAsList = convertMapToList(n["listing"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *listing); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::Directory> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::Directory> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::Directory{}; + auto res = ::w3id_org::cwl::cwl::Directory{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["location"], *res.location); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["path"], *res.path); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["basename"], *res.basename); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["listing"], *res.listing); fromYaml(n, res); return res; @@ -2784,112 +3318,209 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline https___w3id_org_cwl_cwl::Labeled::~Labeled() = default; -inline auto https___w3id_org_cwl_cwl::Labeled::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline w3id_org::cwl::cwl::Labeled::~Labeled() = default; +inline auto w3id_org::cwl::cwl::Labeled::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "label", toYaml(*label)); + if (config.generateTags) { + n.SetTag("Labeled"); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } return n; } -inline void https___w3id_org_cwl_cwl::Labeled::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["label"], *label); +inline void w3id_org::cwl::cwl::Labeled::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } } -inline https___w3id_org_cwl_cwl::Identified::~Identified() = default; -inline auto https___w3id_org_cwl_cwl::Identified::toYaml() const -> YAML::Node { - using ::toYaml; +inline w3id_org::cwl::cwl::Identified::~Identified() = default; +inline auto w3id_org::cwl::cwl::Identified::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "id", toYaml(*id)); + if (config.generateTags) { + n.SetTag("Identified"); + } + { + auto member = toYaml(*id, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "id", member); + } return n; } -inline void https___w3id_org_cwl_cwl::Identified::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["id"], *id); +inline void w3id_org::cwl::cwl::Identified::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["id"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *id); + } } -inline https___w3id_org_cwl_cwl::LoadContents::~LoadContents() = default; -inline auto https___w3id_org_cwl_cwl::LoadContents::toYaml() const -> YAML::Node { - using ::toYaml; +inline w3id_org::cwl::cwl::LoadContents::~LoadContents() = default; +inline auto w3id_org::cwl::cwl::LoadContents::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "loadContents", toYaml(*loadContents)); - addYamlField(n, "loadListing", toYaml(*loadListing)); + if (config.generateTags) { + n.SetTag("LoadContents"); + } + { + auto member = toYaml(*loadContents, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "loadContents", member); + } + { + auto member = toYaml(*loadListing, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "loadListing", member); + } return n; } -inline void https___w3id_org_cwl_cwl::LoadContents::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["loadContents"], *loadContents); - fromYaml(n["loadListing"], *loadListing); +inline void w3id_org::cwl::cwl::LoadContents::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["loadContents"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *loadContents); + } + { + auto nodeAsList = convertMapToList(n["loadListing"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *loadListing); + } } -inline https___w3id_org_cwl_cwl::FieldBase::~FieldBase() = default; -inline auto https___w3id_org_cwl_cwl::FieldBase::toYaml() const -> YAML::Node { - using ::toYaml; +inline w3id_org::cwl::cwl::FieldBase::~FieldBase() = default; +inline auto w3id_org::cwl::cwl::FieldBase::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::Labeled::toYaml()); - addYamlField(n, "secondaryFiles", toYaml(*secondaryFiles)); - addYamlField(n, "streamable", toYaml(*streamable)); + if (config.generateTags) { + n.SetTag("FieldBase"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::Labeled::toYaml(config)); + { + auto member = toYaml(*secondaryFiles, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "secondaryFiles", member); + } + { + auto member = toYaml(*streamable, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "streamable", member); + } return n; } -inline void https___w3id_org_cwl_cwl::FieldBase::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::Labeled::fromYaml(n); - fromYaml(n["secondaryFiles"], *secondaryFiles); - fromYaml(n["streamable"], *streamable); +inline void w3id_org::cwl::cwl::FieldBase::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::Labeled::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["secondaryFiles"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *secondaryFiles); + } + { + auto nodeAsList = convertMapToList(n["streamable"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *streamable); + } } -inline https___w3id_org_cwl_cwl::InputFormat::~InputFormat() = default; -inline auto https___w3id_org_cwl_cwl::InputFormat::toYaml() const -> YAML::Node { - using ::toYaml; +inline w3id_org::cwl::cwl::InputFormat::~InputFormat() = default; +inline auto w3id_org::cwl::cwl::InputFormat::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "format", toYaml(*format)); + if (config.generateTags) { + n.SetTag("InputFormat"); + } + { + auto member = toYaml(*format, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "format", member); + } return n; } -inline void https___w3id_org_cwl_cwl::InputFormat::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["format"], *format); +inline void w3id_org::cwl::cwl::InputFormat::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["format"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *format); + } } -inline https___w3id_org_cwl_cwl::OutputFormat::~OutputFormat() = default; -inline auto https___w3id_org_cwl_cwl::OutputFormat::toYaml() const -> YAML::Node { - using ::toYaml; +inline w3id_org::cwl::cwl::OutputFormat::~OutputFormat() = default; +inline auto w3id_org::cwl::cwl::OutputFormat::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "format", toYaml(*format)); + if (config.generateTags) { + n.SetTag("OutputFormat"); + } + { + auto member = toYaml(*format, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "format", member); + } return n; } -inline void https___w3id_org_cwl_cwl::OutputFormat::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["format"], *format); +inline void w3id_org::cwl::cwl::OutputFormat::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["format"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *format); + } } -inline https___w3id_org_cwl_cwl::Parameter::~Parameter() = default; -inline auto https___w3id_org_cwl_cwl::Parameter::toYaml() const -> YAML::Node { - using ::toYaml; +inline w3id_org::cwl::cwl::Parameter::~Parameter() = default; +inline auto w3id_org::cwl::cwl::Parameter::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::FieldBase::toYaml()); - n = mergeYaml(n, https___w3id_org_cwl_salad::Documented::toYaml()); - n = mergeYaml(n, https___w3id_org_cwl_cwl::Identified::toYaml()); + if (config.generateTags) { + n.SetTag("Parameter"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::FieldBase::toYaml(config)); + n = mergeYaml(n, w3id_org::cwl::salad::Documented::toYaml(config)); + n = mergeYaml(n, w3id_org::cwl::cwl::Identified::toYaml(config)); return n; } -inline void https___w3id_org_cwl_cwl::Parameter::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::FieldBase::fromYaml(n); - https___w3id_org_cwl_salad::Documented::fromYaml(n); - https___w3id_org_cwl_cwl::Identified::fromYaml(n); +inline void w3id_org::cwl::cwl::Parameter::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::FieldBase::fromYaml(n); + w3id_org::cwl::salad::Documented::fromYaml(n); + w3id_org::cwl::cwl::Identified::fromYaml(n); } -inline auto https___w3id_org_cwl_cwl::InputBinding::toYaml() const -> YAML::Node { - using ::toYaml; +inline auto w3id_org::cwl::cwl::InputBinding::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "loadContents", toYaml(*loadContents)); + if (config.generateTags) { + n.SetTag("InputBinding"); + } + { + auto member = toYaml(*loadContents, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "loadContents", member); + } return n; } -inline void https___w3id_org_cwl_cwl::InputBinding::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["loadContents"], *loadContents); +inline void w3id_org::cwl::cwl::InputBinding::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["loadContents"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *loadContents); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::InputBinding> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::InputBinding> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::InputBinding{}; + auto res = ::w3id_org::cwl::cwl::InputBinding{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["loadContents"], *res.loadContents); fromYaml(n, res); return res; @@ -2898,126 +3529,220 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline https___w3id_org_cwl_cwl::IOSchema::~IOSchema() = default; -inline auto https___w3id_org_cwl_cwl::IOSchema::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline w3id_org::cwl::cwl::IOSchema::~IOSchema() = default; +inline auto w3id_org::cwl::cwl::IOSchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::Labeled::toYaml()); - n = mergeYaml(n, https___w3id_org_cwl_salad::Documented::toYaml()); - addYamlField(n, "name", toYaml(*name)); + if (config.generateTags) { + n.SetTag("IOSchema"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::Labeled::toYaml(config)); + n = mergeYaml(n, w3id_org::cwl::salad::Documented::toYaml(config)); + { + auto member = toYaml(*name, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "name", member); + } return n; } -inline void https___w3id_org_cwl_cwl::IOSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::Labeled::fromYaml(n); - https___w3id_org_cwl_salad::Documented::fromYaml(n); - fromYaml(n["name"], *name); +inline void w3id_org::cwl::cwl::IOSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::Labeled::fromYaml(n); + w3id_org::cwl::salad::Documented::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["name"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *name); + } } -inline https___w3id_org_cwl_cwl::InputSchema::~InputSchema() = default; -inline auto https___w3id_org_cwl_cwl::InputSchema::toYaml() const -> YAML::Node { - using ::toYaml; +inline w3id_org::cwl::cwl::InputSchema::~InputSchema() = default; +inline auto w3id_org::cwl::cwl::InputSchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::IOSchema::toYaml()); + if (config.generateTags) { + n.SetTag("InputSchema"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::IOSchema::toYaml(config)); return n; } -inline void https___w3id_org_cwl_cwl::InputSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::IOSchema::fromYaml(n); +inline void w3id_org::cwl::cwl::InputSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::IOSchema::fromYaml(n); } -inline https___w3id_org_cwl_cwl::OutputSchema::~OutputSchema() = default; -inline auto https___w3id_org_cwl_cwl::OutputSchema::toYaml() const -> YAML::Node { - using ::toYaml; +inline w3id_org::cwl::cwl::OutputSchema::~OutputSchema() = default; +inline auto w3id_org::cwl::cwl::OutputSchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::IOSchema::toYaml()); + if (config.generateTags) { + n.SetTag("OutputSchema"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::IOSchema::toYaml(config)); return n; } -inline void https___w3id_org_cwl_cwl::OutputSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::IOSchema::fromYaml(n); +inline void w3id_org::cwl::cwl::OutputSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::IOSchema::fromYaml(n); } -inline auto https___w3id_org_cwl_cwl::InputRecordField::toYaml() const -> YAML::Node { - using ::toYaml; +inline auto w3id_org::cwl::cwl::InputRecordField::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "doc", toYaml(*doc)); - addYamlField(n, "name", toYaml(*name)); - addYamlField(n, "type", toYaml(*type)); - addYamlField(n, "label", toYaml(*label)); - addYamlField(n, "secondaryFiles", toYaml(*secondaryFiles)); - addYamlField(n, "streamable", toYaml(*streamable)); - addYamlField(n, "format", toYaml(*format)); - addYamlField(n, "loadContents", toYaml(*loadContents)); - addYamlField(n, "loadListing", toYaml(*loadListing)); + if (config.generateTags) { + n.SetTag("InputRecordField"); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } + { + auto member = toYaml(*name, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "name", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } + { + auto member = toYaml(*secondaryFiles, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "secondaryFiles", member); + } + { + auto member = toYaml(*streamable, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "streamable", member); + } + { + auto member = toYaml(*format, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "format", member); + } + { + auto member = toYaml(*loadContents, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "loadContents", member); + } + { + auto member = toYaml(*loadListing, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "loadListing", member); + } return n; } -inline void https___w3id_org_cwl_cwl::InputRecordField::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["doc"], *doc); - fromYaml(n["name"], *name); - fromYaml(n["type"], *type); - fromYaml(n["label"], *label); - fromYaml(n["secondaryFiles"], *secondaryFiles); - fromYaml(n["streamable"], *streamable); - fromYaml(n["format"], *format); - fromYaml(n["loadContents"], *loadContents); - fromYaml(n["loadListing"], *loadListing); +inline void w3id_org::cwl::cwl::InputRecordField::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } + { + auto nodeAsList = convertMapToList(n["name"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *name); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } + { + auto nodeAsList = convertMapToList(n["secondaryFiles"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *secondaryFiles); + } + { + auto nodeAsList = convertMapToList(n["streamable"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *streamable); + } + { + auto nodeAsList = convertMapToList(n["format"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *format); + } + { + auto nodeAsList = convertMapToList(n["loadContents"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *loadContents); + } + { + auto nodeAsList = convertMapToList(n["loadListing"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *loadListing); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::InputRecordField> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::InputRecordField> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::InputRecordField{}; + auto res = ::w3id_org::cwl::cwl::InputRecordField{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["doc"], *res.doc); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["name"], *res.name); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["label"], *res.label); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["secondaryFiles"], *res.secondaryFiles); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["streamable"], *res.streamable); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["format"], *res.format); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["loadContents"], *res.loadContents); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["loadListing"], *res.loadListing); fromYaml(n, res); return res; @@ -3026,60 +3751,102 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::InputRecordSchema::toYaml() const -> YAML::Node { - using ::toYaml; - auto n = YAML::Node{}; - addYamlField(n, "fields", - convertListToMap(toYaml(*fields), "name")); - addYamlField(n, "type", toYaml(*type)); - addYamlField(n, "label", toYaml(*label)); - addYamlField(n, "doc", toYaml(*doc)); - addYamlField(n, "name", toYaml(*name)); - return n; } -inline void https___w3id_org_cwl_cwl::InputRecordSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - - fromYaml(convertMapToList(n["fields"], -"name"), *fields); - fromYaml(n["type"], *type); - fromYaml(n["label"], *label); - fromYaml(n["doc"], *doc); - fromYaml(n["name"], *name); +inline auto w3id_org::cwl::cwl::InputRecordSchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; + auto n = YAML::Node{}; + if (config.generateTags) { + n.SetTag("InputRecordSchema"); + } + { + auto member = toYaml(*fields, config); + member = convertListToMap(member, "name", "type", config); + addYamlField(n, "fields", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } + { + auto member = toYaml(*name, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "name", member); + } + return n; } - +inline void w3id_org::cwl::cwl::InputRecordSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["fields"], "name", "type"); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *fields); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } + { + auto nodeAsList = convertMapToList(n["name"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *name); + } +} +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::InputRecordSchema> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::InputRecordSchema> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::InputRecordSchema{}; + auto res = ::w3id_org::cwl::cwl::InputRecordSchema{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["fields"], *res.fields); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["label"], *res.label); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["doc"], *res.doc); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["name"], *res.name); fromYaml(n, res); return res; @@ -3088,80 +3855,129 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::InputEnumSchema::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::InputEnumSchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_salad::EnumSchema::toYaml()); - n = mergeYaml(n, https___w3id_org_cwl_cwl::InputSchema::toYaml()); + if (config.generateTags) { + n.SetTag("InputEnumSchema"); + } + n = mergeYaml(n, w3id_org::cwl::salad::EnumSchema::toYaml(config)); + n = mergeYaml(n, w3id_org::cwl::cwl::InputSchema::toYaml(config)); return n; } -inline void https___w3id_org_cwl_cwl::InputEnumSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_salad::EnumSchema::fromYaml(n); - https___w3id_org_cwl_cwl::InputSchema::fromYaml(n); +inline void w3id_org::cwl::cwl::InputEnumSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::salad::EnumSchema::fromYaml(n); + w3id_org::cwl::cwl::InputSchema::fromYaml(n); } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::InputEnumSchema> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::InputEnumSchema> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::InputEnumSchema{}; + auto res = ::w3id_org::cwl::cwl::InputEnumSchema{}; return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::InputArraySchema::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::InputArraySchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "items", toYaml(*items)); - addYamlField(n, "type", toYaml(*type)); - addYamlField(n, "label", toYaml(*label)); - addYamlField(n, "doc", toYaml(*doc)); - addYamlField(n, "name", toYaml(*name)); + if (config.generateTags) { + n.SetTag("InputArraySchema"); + } + { + auto member = toYaml(*items, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "items", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } + { + auto member = toYaml(*name, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "name", member); + } return n; } -inline void https___w3id_org_cwl_cwl::InputArraySchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["items"], *items); - fromYaml(n["type"], *type); - fromYaml(n["label"], *label); - fromYaml(n["doc"], *doc); - fromYaml(n["name"], *name); +inline void w3id_org::cwl::cwl::InputArraySchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["items"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *items); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } + { + auto nodeAsList = convertMapToList(n["name"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *name); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::InputArraySchema> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::InputArraySchema> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::InputArraySchema{}; + auto res = ::w3id_org::cwl::cwl::InputArraySchema{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["items"], *res.items); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["label"], *res.label); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["doc"], *res.doc); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["name"], *res.name); fromYaml(n, res); return res; @@ -3170,73 +3986,134 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::OutputRecordField::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::OutputRecordField::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "doc", toYaml(*doc)); - addYamlField(n, "name", toYaml(*name)); - addYamlField(n, "type", toYaml(*type)); - addYamlField(n, "label", toYaml(*label)); - addYamlField(n, "secondaryFiles", toYaml(*secondaryFiles)); - addYamlField(n, "streamable", toYaml(*streamable)); - addYamlField(n, "format", toYaml(*format)); + if (config.generateTags) { + n.SetTag("OutputRecordField"); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } + { + auto member = toYaml(*name, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "name", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } + { + auto member = toYaml(*secondaryFiles, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "secondaryFiles", member); + } + { + auto member = toYaml(*streamable, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "streamable", member); + } + { + auto member = toYaml(*format, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "format", member); + } return n; } -inline void https___w3id_org_cwl_cwl::OutputRecordField::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["doc"], *doc); - fromYaml(n["name"], *name); - fromYaml(n["type"], *type); - fromYaml(n["label"], *label); - fromYaml(n["secondaryFiles"], *secondaryFiles); - fromYaml(n["streamable"], *streamable); - fromYaml(n["format"], *format); +inline void w3id_org::cwl::cwl::OutputRecordField::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } + { + auto nodeAsList = convertMapToList(n["name"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *name); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } + { + auto nodeAsList = convertMapToList(n["secondaryFiles"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *secondaryFiles); + } + { + auto nodeAsList = convertMapToList(n["streamable"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *streamable); + } + { + auto nodeAsList = convertMapToList(n["format"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *format); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::OutputRecordField> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::OutputRecordField> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::OutputRecordField{}; + auto res = ::w3id_org::cwl::cwl::OutputRecordField{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["doc"], *res.doc); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["name"], *res.name); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["label"], *res.label); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["secondaryFiles"], *res.secondaryFiles); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["streamable"], *res.streamable); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["format"], *res.format); fromYaml(n, res); return res; @@ -3245,60 +4122,102 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::OutputRecordSchema::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::OutputRecordSchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "fields", - convertListToMap(toYaml(*fields), "name")); - addYamlField(n, "type", toYaml(*type)); - addYamlField(n, "label", toYaml(*label)); - addYamlField(n, "doc", toYaml(*doc)); - addYamlField(n, "name", toYaml(*name)); + if (config.generateTags) { + n.SetTag("OutputRecordSchema"); + } + { + auto member = toYaml(*fields, config); + member = convertListToMap(member, "name", "type", config); + addYamlField(n, "fields", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } + { + auto member = toYaml(*name, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "name", member); + } return n; } -inline void https___w3id_org_cwl_cwl::OutputRecordSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - - fromYaml(convertMapToList(n["fields"], -"name"), *fields); - fromYaml(n["type"], *type); - fromYaml(n["label"], *label); - fromYaml(n["doc"], *doc); - fromYaml(n["name"], *name); +inline void w3id_org::cwl::cwl::OutputRecordSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["fields"], "name", "type"); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *fields); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } + { + auto nodeAsList = convertMapToList(n["name"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *name); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::OutputRecordSchema> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::OutputRecordSchema> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::OutputRecordSchema{}; + auto res = ::w3id_org::cwl::cwl::OutputRecordSchema{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["fields"], *res.fields); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["label"], *res.label); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["doc"], *res.doc); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["name"], *res.name); fromYaml(n, res); return res; @@ -3307,80 +4226,129 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::OutputEnumSchema::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::OutputEnumSchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_salad::EnumSchema::toYaml()); - n = mergeYaml(n, https___w3id_org_cwl_cwl::OutputSchema::toYaml()); + if (config.generateTags) { + n.SetTag("OutputEnumSchema"); + } + n = mergeYaml(n, w3id_org::cwl::salad::EnumSchema::toYaml(config)); + n = mergeYaml(n, w3id_org::cwl::cwl::OutputSchema::toYaml(config)); return n; } -inline void https___w3id_org_cwl_cwl::OutputEnumSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_salad::EnumSchema::fromYaml(n); - https___w3id_org_cwl_cwl::OutputSchema::fromYaml(n); +inline void w3id_org::cwl::cwl::OutputEnumSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::salad::EnumSchema::fromYaml(n); + w3id_org::cwl::cwl::OutputSchema::fromYaml(n); } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::OutputEnumSchema> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::OutputEnumSchema> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::OutputEnumSchema{}; + auto res = ::w3id_org::cwl::cwl::OutputEnumSchema{}; return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::OutputArraySchema::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::OutputArraySchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "items", toYaml(*items)); - addYamlField(n, "type", toYaml(*type)); - addYamlField(n, "label", toYaml(*label)); - addYamlField(n, "doc", toYaml(*doc)); - addYamlField(n, "name", toYaml(*name)); + if (config.generateTags) { + n.SetTag("OutputArraySchema"); + } + { + auto member = toYaml(*items, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "items", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } + { + auto member = toYaml(*name, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "name", member); + } return n; } -inline void https___w3id_org_cwl_cwl::OutputArraySchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["items"], *items); - fromYaml(n["type"], *type); - fromYaml(n["label"], *label); - fromYaml(n["doc"], *doc); - fromYaml(n["name"], *name); +inline void w3id_org::cwl::cwl::OutputArraySchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["items"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *items); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } + { + auto nodeAsList = convertMapToList(n["name"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *name); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::OutputArraySchema> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::OutputArraySchema> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::OutputArraySchema{}; + auto res = ::w3id_org::cwl::cwl::OutputArraySchema{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["items"], *res.items); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["label"], *res.label); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["doc"], *res.doc); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["name"], *res.name); fromYaml(n, res); return res; @@ -3389,113 +4357,189 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline https___w3id_org_cwl_cwl::InputParameter::~InputParameter() = default; -inline auto https___w3id_org_cwl_cwl::InputParameter::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline w3id_org::cwl::cwl::InputParameter::~InputParameter() = default; +inline auto w3id_org::cwl::cwl::InputParameter::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::Parameter::toYaml()); - n = mergeYaml(n, https___w3id_org_cwl_cwl::InputFormat::toYaml()); - n = mergeYaml(n, https___w3id_org_cwl_cwl::LoadContents::toYaml()); - addYamlField(n, "default", toYaml(*default_)); + if (config.generateTags) { + n.SetTag("InputParameter"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::Parameter::toYaml(config)); + n = mergeYaml(n, w3id_org::cwl::cwl::InputFormat::toYaml(config)); + n = mergeYaml(n, w3id_org::cwl::cwl::LoadContents::toYaml(config)); + { + auto member = toYaml(*default_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "default", member); + } return n; } -inline void https___w3id_org_cwl_cwl::InputParameter::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::Parameter::fromYaml(n); - https___w3id_org_cwl_cwl::InputFormat::fromYaml(n); - https___w3id_org_cwl_cwl::LoadContents::fromYaml(n); - fromYaml(n["default"], *default_); +inline void w3id_org::cwl::cwl::InputParameter::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::Parameter::fromYaml(n); + w3id_org::cwl::cwl::InputFormat::fromYaml(n); + w3id_org::cwl::cwl::LoadContents::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["default"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *default_); + } } -inline https___w3id_org_cwl_cwl::OutputParameter::~OutputParameter() = default; -inline auto https___w3id_org_cwl_cwl::OutputParameter::toYaml() const -> YAML::Node { - using ::toYaml; +inline w3id_org::cwl::cwl::OutputParameter::~OutputParameter() = default; +inline auto w3id_org::cwl::cwl::OutputParameter::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::Parameter::toYaml()); - n = mergeYaml(n, https___w3id_org_cwl_cwl::OutputFormat::toYaml()); + if (config.generateTags) { + n.SetTag("OutputParameter"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::Parameter::toYaml(config)); + n = mergeYaml(n, w3id_org::cwl::cwl::OutputFormat::toYaml(config)); return n; } -inline void https___w3id_org_cwl_cwl::OutputParameter::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::Parameter::fromYaml(n); - https___w3id_org_cwl_cwl::OutputFormat::fromYaml(n); +inline void w3id_org::cwl::cwl::OutputParameter::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::Parameter::fromYaml(n); + w3id_org::cwl::cwl::OutputFormat::fromYaml(n); } -inline https___w3id_org_cwl_cwl::ProcessRequirement::~ProcessRequirement() = default; -inline auto https___w3id_org_cwl_cwl::ProcessRequirement::toYaml() const -> YAML::Node { - using ::toYaml; +inline w3id_org::cwl::cwl::ProcessRequirement::~ProcessRequirement() = default; +inline auto w3id_org::cwl::cwl::ProcessRequirement::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; + if (config.generateTags) { + n.SetTag("ProcessRequirement"); + } return n; } -inline void https___w3id_org_cwl_cwl::ProcessRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; +inline void w3id_org::cwl::cwl::ProcessRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; } -inline https___w3id_org_cwl_cwl::Process::~Process() = default; -inline auto https___w3id_org_cwl_cwl::Process::toYaml() const -> YAML::Node { - using ::toYaml; +inline w3id_org::cwl::cwl::Process::~Process() = default; +inline auto w3id_org::cwl::cwl::Process::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::Identified::toYaml()); - n = mergeYaml(n, https___w3id_org_cwl_cwl::Labeled::toYaml()); - n = mergeYaml(n, https___w3id_org_cwl_salad::Documented::toYaml()); - addYamlField(n, "inputs", - convertListToMap(toYaml(*inputs), "id")); - addYamlField(n, "outputs", - convertListToMap(toYaml(*outputs), "id")); - addYamlField(n, "requirements", - convertListToMap(toYaml(*requirements), "class")); - addYamlField(n, "hints", - convertListToMap(toYaml(*hints), "class")); - addYamlField(n, "cwlVersion", toYaml(*cwlVersion)); - addYamlField(n, "intent", toYaml(*intent)); + if (config.generateTags) { + n.SetTag("Process"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::Identified::toYaml(config)); + n = mergeYaml(n, w3id_org::cwl::cwl::Labeled::toYaml(config)); + n = mergeYaml(n, w3id_org::cwl::salad::Documented::toYaml(config)); + { + auto member = toYaml(*inputs, config); + member = convertListToMap(member, "id", "type", config); + addYamlField(n, "inputs", member); + } + { + auto member = toYaml(*outputs, config); + member = convertListToMap(member, "id", "type", config); + addYamlField(n, "outputs", member); + } + { + auto member = toYaml(*requirements, config); + member = convertListToMap(member, "class", "", config); + addYamlField(n, "requirements", member); + } + { + auto member = toYaml(*hints, config); + member = convertListToMap(member, "class", "", config); + addYamlField(n, "hints", member); + } + { + auto member = toYaml(*cwlVersion, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "cwlVersion", member); + } + { + auto member = toYaml(*intent, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "intent", member); + } return n; } -inline void https___w3id_org_cwl_cwl::Process::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::Identified::fromYaml(n); - https___w3id_org_cwl_cwl::Labeled::fromYaml(n); - https___w3id_org_cwl_salad::Documented::fromYaml(n); - - fromYaml(convertMapToList(n["inputs"], -"id"), *inputs); - - fromYaml(convertMapToList(n["outputs"], -"id"), *outputs); - - fromYaml(convertMapToList(n["requirements"], -"class"), *requirements); - - fromYaml(convertMapToList(n["hints"], -"class"), *hints); - fromYaml(n["cwlVersion"], *cwlVersion); - fromYaml(n["intent"], *intent); +inline void w3id_org::cwl::cwl::Process::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::Identified::fromYaml(n); + w3id_org::cwl::cwl::Labeled::fromYaml(n); + w3id_org::cwl::salad::Documented::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["inputs"], "id", "type"); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *inputs); + } + { + auto nodeAsList = convertMapToList(n["outputs"], "id", "type"); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *outputs); + } + { + auto nodeAsList = convertMapToList(n["requirements"], "class", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *requirements); + } + { + auto nodeAsList = convertMapToList(n["hints"], "class", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *hints); + } + { + auto nodeAsList = convertMapToList(n["cwlVersion"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *cwlVersion); + } + { + auto nodeAsList = convertMapToList(n["intent"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *intent); + } } -inline auto https___w3id_org_cwl_cwl::InlineJavascriptRequirement::toYaml() const -> YAML::Node { - using ::toYaml; +inline auto w3id_org::cwl::cwl::InlineJavascriptRequirement::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::ProcessRequirement::toYaml()); - addYamlField(n, "class", toYaml(*class_)); - addYamlField(n, "expressionLib", toYaml(*expressionLib)); + if (config.generateTags) { + n.SetTag("InlineJavascriptRequirement"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::ProcessRequirement::toYaml(config)); + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } + { + auto member = toYaml(*expressionLib, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "expressionLib", member); + } return n; } -inline void https___w3id_org_cwl_cwl::InlineJavascriptRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::ProcessRequirement::fromYaml(n); - fromYaml(n["class"], *class_); - fromYaml(n["expressionLib"], *expressionLib); +inline void w3id_org::cwl::cwl::InlineJavascriptRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::ProcessRequirement::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } + { + auto nodeAsList = convertMapToList(n["expressionLib"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *expressionLib); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::InlineJavascriptRequirement> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::InlineJavascriptRequirement> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::InlineJavascriptRequirement{}; + auto res = ::w3id_org::cwl::cwl::InlineJavascriptRequirement{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["expressionLib"], *res.expressionLib); fromYaml(n, res); return res; @@ -3504,44 +4548,67 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline w3id_org::cwl::cwl::CommandInputSchema::~CommandInputSchema() = default; +inline auto w3id_org::cwl::cwl::CommandInputSchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; + if (config.generateTags) { + n.SetTag("CommandInputSchema"); + } return n; } -inline void https___w3id_org_cwl_cwl::CommandInputSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; +inline void w3id_org::cwl::cwl::CommandInputSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; } -inline auto https___w3id_org_cwl_cwl::SchemaDefRequirement::toYaml() const -> YAML::Node { - using ::toYaml; +inline auto w3id_org::cwl::cwl::SchemaDefRequirement::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::ProcessRequirement::toYaml()); - addYamlField(n, "class", toYaml(*class_)); - addYamlField(n, "types", toYaml(*types)); + if (config.generateTags) { + n.SetTag("SchemaDefRequirement"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::ProcessRequirement::toYaml(config)); + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } + { + auto member = toYaml(*types, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "types", member); + } return n; } -inline void https___w3id_org_cwl_cwl::SchemaDefRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::ProcessRequirement::fromYaml(n); - fromYaml(n["class"], *class_); - fromYaml(n["types"], *types); +inline void w3id_org::cwl::cwl::SchemaDefRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::ProcessRequirement::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } + { + auto nodeAsList = convertMapToList(n["types"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *types); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::SchemaDefRequirement> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::SchemaDefRequirement> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::SchemaDefRequirement{}; + auto res = ::w3id_org::cwl::cwl::SchemaDefRequirement{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["types"], *res.types); fromYaml(n, res); return res; @@ -3550,33 +4617,53 @@ struct DetectAndExtractFromYaml return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::SecondaryFileSchema::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::SecondaryFileSchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "pattern", toYaml(*pattern)); - addYamlField(n, "required", toYaml(*required)); + if (config.generateTags) { + n.SetTag("SecondaryFileSchema"); + } + { + auto member = toYaml(*pattern, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "pattern", member); + } + { + auto member = toYaml(*required, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "required", member); + } return n; } -inline void https___w3id_org_cwl_cwl::SecondaryFileSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["pattern"], *pattern); - fromYaml(n["required"], *required); +inline void w3id_org::cwl::cwl::SecondaryFileSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["pattern"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *pattern); + } + { + auto nodeAsList = convertMapToList(n["required"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *required); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::SecondaryFileSchema> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::SecondaryFileSchema> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::SecondaryFileSchema{}; + auto res = ::w3id_org::cwl::cwl::SecondaryFileSchema{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["pattern"], *res.pattern); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["required"], *res.required); fromYaml(n, res); return res; @@ -3585,35 +4672,55 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::LoadListingRequirement::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::LoadListingRequirement::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::ProcessRequirement::toYaml()); - addYamlField(n, "class", toYaml(*class_)); - addYamlField(n, "loadListing", toYaml(*loadListing)); + if (config.generateTags) { + n.SetTag("LoadListingRequirement"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::ProcessRequirement::toYaml(config)); + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } + { + auto member = toYaml(*loadListing, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "loadListing", member); + } return n; } -inline void https___w3id_org_cwl_cwl::LoadListingRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::ProcessRequirement::fromYaml(n); - fromYaml(n["class"], *class_); - fromYaml(n["loadListing"], *loadListing); +inline void w3id_org::cwl::cwl::LoadListingRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::ProcessRequirement::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } + { + auto nodeAsList = convertMapToList(n["loadListing"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *loadListing); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::LoadListingRequirement> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::LoadListingRequirement> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::LoadListingRequirement{}; + auto res = ::w3id_org::cwl::cwl::LoadListingRequirement{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["loadListing"], *res.loadListing); fromYaml(n, res); return res; @@ -3622,33 +4729,53 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::EnvironmentDef::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "envName", toYaml(*envName)); - addYamlField(n, "envValue", toYaml(*envValue)); + if (config.generateTags) { + n.SetTag("EnvironmentDef"); + } + { + auto member = toYaml(*envName, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "envName", member); + } + { + auto member = toYaml(*envValue, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "envValue", member); + } return n; } -inline void https___w3id_org_cwl_cwl::EnvironmentDef::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["envName"], *envName); - fromYaml(n["envValue"], *envValue); +inline void w3id_org::cwl::cwl::EnvironmentDef::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["envName"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *envName); + } + { + auto nodeAsList = convertMapToList(n["envValue"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *envValue); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::EnvironmentDef> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::EnvironmentDef> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::EnvironmentDef{}; + auto res = ::w3id_org::cwl::cwl::EnvironmentDef{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["envName"], *res.envName); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["envValue"], *res.envValue); fromYaml(n, res); return res; @@ -3657,67 +4784,119 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::CommandLineBinding::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::CommandLineBinding::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::InputBinding::toYaml()); - addYamlField(n, "position", toYaml(*position)); - addYamlField(n, "prefix", toYaml(*prefix)); - addYamlField(n, "separate", toYaml(*separate)); - addYamlField(n, "itemSeparator", toYaml(*itemSeparator)); - addYamlField(n, "valueFrom", toYaml(*valueFrom)); - addYamlField(n, "shellQuote", toYaml(*shellQuote)); + if (config.generateTags) { + n.SetTag("CommandLineBinding"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::InputBinding::toYaml(config)); + { + auto member = toYaml(*position, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "position", member); + } + { + auto member = toYaml(*prefix, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "prefix", member); + } + { + auto member = toYaml(*separate, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "separate", member); + } + { + auto member = toYaml(*itemSeparator, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "itemSeparator", member); + } + { + auto member = toYaml(*valueFrom, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "valueFrom", member); + } + { + auto member = toYaml(*shellQuote, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "shellQuote", member); + } return n; } -inline void https___w3id_org_cwl_cwl::CommandLineBinding::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::InputBinding::fromYaml(n); - fromYaml(n["position"], *position); - fromYaml(n["prefix"], *prefix); - fromYaml(n["separate"], *separate); - fromYaml(n["itemSeparator"], *itemSeparator); - fromYaml(n["valueFrom"], *valueFrom); - fromYaml(n["shellQuote"], *shellQuote); +inline void w3id_org::cwl::cwl::CommandLineBinding::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::InputBinding::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["position"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *position); + } + { + auto nodeAsList = convertMapToList(n["prefix"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *prefix); + } + { + auto nodeAsList = convertMapToList(n["separate"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *separate); + } + { + auto nodeAsList = convertMapToList(n["itemSeparator"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *itemSeparator); + } + { + auto nodeAsList = convertMapToList(n["valueFrom"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *valueFrom); + } + { + auto nodeAsList = convertMapToList(n["shellQuote"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *shellQuote); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::CommandLineBinding> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::CommandLineBinding> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::CommandLineBinding{}; + auto res = ::w3id_org::cwl::cwl::CommandLineBinding{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["position"], *res.position); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["prefix"], *res.prefix); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["separate"], *res.separate); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["itemSeparator"], *res.itemSeparator); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["valueFrom"], *res.valueFrom); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["shellQuote"], *res.shellQuote); fromYaml(n, res); return res; @@ -3726,35 +4905,55 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::CommandOutputBinding::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::CommandOutputBinding::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::LoadContents::toYaml()); - addYamlField(n, "glob", toYaml(*glob)); - addYamlField(n, "outputEval", toYaml(*outputEval)); + if (config.generateTags) { + n.SetTag("CommandOutputBinding"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::LoadContents::toYaml(config)); + { + auto member = toYaml(*glob, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "glob", member); + } + { + auto member = toYaml(*outputEval, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "outputEval", member); + } return n; } -inline void https___w3id_org_cwl_cwl::CommandOutputBinding::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::LoadContents::fromYaml(n); - fromYaml(n["glob"], *glob); - fromYaml(n["outputEval"], *outputEval); +inline void w3id_org::cwl::cwl::CommandOutputBinding::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::LoadContents::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["glob"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *glob); + } + { + auto nodeAsList = convertMapToList(n["outputEval"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *outputEval); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::CommandOutputBinding> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::CommandOutputBinding> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::CommandOutputBinding{}; + auto res = ::w3id_org::cwl::cwl::CommandOutputBinding{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["glob"], *res.glob); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["outputEval"], *res.outputEval); fromYaml(n, res); return res; @@ -3763,25 +4962,37 @@ struct DetectAndExtractFromYaml return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::CommandLineBindable::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::CommandLineBindable::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "inputBinding", toYaml(*inputBinding)); + if (config.generateTags) { + n.SetTag("CommandLineBindable"); + } + { + auto member = toYaml(*inputBinding, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "inputBinding", member); + } return n; } -inline void https___w3id_org_cwl_cwl::CommandLineBindable::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["inputBinding"], *inputBinding); +inline void w3id_org::cwl::cwl::CommandLineBindable::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["inputBinding"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *inputBinding); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::CommandLineBindable> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::CommandLineBindable> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::CommandLineBindable{}; + auto res = ::w3id_org::cwl::cwl::CommandLineBindable{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["inputBinding"], *res.inputBinding); fromYaml(n, res); return res; @@ -3790,97 +5001,182 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::CommandInputRecordField::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::CommandInputRecordField::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "doc", toYaml(*doc)); - addYamlField(n, "name", toYaml(*name)); - addYamlField(n, "type", toYaml(*type)); - addYamlField(n, "label", toYaml(*label)); - addYamlField(n, "secondaryFiles", toYaml(*secondaryFiles)); - addYamlField(n, "streamable", toYaml(*streamable)); - addYamlField(n, "format", toYaml(*format)); - addYamlField(n, "loadContents", toYaml(*loadContents)); - addYamlField(n, "loadListing", toYaml(*loadListing)); - addYamlField(n, "inputBinding", toYaml(*inputBinding)); + if (config.generateTags) { + n.SetTag("CommandInputRecordField"); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } + { + auto member = toYaml(*name, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "name", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } + { + auto member = toYaml(*secondaryFiles, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "secondaryFiles", member); + } + { + auto member = toYaml(*streamable, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "streamable", member); + } + { + auto member = toYaml(*format, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "format", member); + } + { + auto member = toYaml(*loadContents, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "loadContents", member); + } + { + auto member = toYaml(*loadListing, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "loadListing", member); + } + { + auto member = toYaml(*inputBinding, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "inputBinding", member); + } return n; } -inline void https___w3id_org_cwl_cwl::CommandInputRecordField::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["doc"], *doc); - fromYaml(n["name"], *name); - fromYaml(n["type"], *type); - fromYaml(n["label"], *label); - fromYaml(n["secondaryFiles"], *secondaryFiles); - fromYaml(n["streamable"], *streamable); - fromYaml(n["format"], *format); - fromYaml(n["loadContents"], *loadContents); - fromYaml(n["loadListing"], *loadListing); - fromYaml(n["inputBinding"], *inputBinding); +inline void w3id_org::cwl::cwl::CommandInputRecordField::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } + { + auto nodeAsList = convertMapToList(n["name"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *name); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } + { + auto nodeAsList = convertMapToList(n["secondaryFiles"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *secondaryFiles); + } + { + auto nodeAsList = convertMapToList(n["streamable"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *streamable); + } + { + auto nodeAsList = convertMapToList(n["format"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *format); + } + { + auto nodeAsList = convertMapToList(n["loadContents"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *loadContents); + } + { + auto nodeAsList = convertMapToList(n["loadListing"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *loadListing); + } + { + auto nodeAsList = convertMapToList(n["inputBinding"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *inputBinding); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::CommandInputRecordField> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::CommandInputRecordField> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::CommandInputRecordField{}; + auto res = ::w3id_org::cwl::cwl::CommandInputRecordField{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["doc"], *res.doc); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["name"], *res.name); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["label"], *res.label); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["secondaryFiles"], *res.secondaryFiles); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["streamable"], *res.streamable); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["format"], *res.format); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["loadContents"], *res.loadContents); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["loadListing"], *res.loadListing); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["inputBinding"], *res.inputBinding); fromYaml(n, res); return res; @@ -3889,68 +5185,118 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::CommandInputRecordSchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "fields", - convertListToMap(toYaml(*fields), "name")); - addYamlField(n, "type", toYaml(*type)); - addYamlField(n, "label", toYaml(*label)); - addYamlField(n, "doc", toYaml(*doc)); - addYamlField(n, "name", toYaml(*name)); - addYamlField(n, "inputBinding", toYaml(*inputBinding)); + if (config.generateTags) { + n.SetTag("CommandInputRecordSchema"); + } + { + auto member = toYaml(*fields, config); + member = convertListToMap(member, "name", "type", config); + addYamlField(n, "fields", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } + { + auto member = toYaml(*name, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "name", member); + } + { + auto member = toYaml(*inputBinding, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "inputBinding", member); + } return n; } -inline void https___w3id_org_cwl_cwl::CommandInputRecordSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - - fromYaml(convertMapToList(n["fields"], -"name"), *fields); - fromYaml(n["type"], *type); - fromYaml(n["label"], *label); - fromYaml(n["doc"], *doc); - fromYaml(n["name"], *name); - fromYaml(n["inputBinding"], *inputBinding); +inline void w3id_org::cwl::cwl::CommandInputRecordSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["fields"], "name", "type"); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *fields); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } + { + auto nodeAsList = convertMapToList(n["name"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *name); + } + { + auto nodeAsList = convertMapToList(n["inputBinding"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *inputBinding); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::CommandInputRecordSchema> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::CommandInputRecordSchema> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::CommandInputRecordSchema{}; + auto res = ::w3id_org::cwl::cwl::CommandInputRecordSchema{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["fields"], *res.fields); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["label"], *res.label); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["doc"], *res.doc); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["name"], *res.name); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["inputBinding"], *res.inputBinding); fromYaml(n, res); return res; @@ -3959,65 +5305,118 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::CommandInputEnumSchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "name", toYaml(*name)); - addYamlField(n, "symbols", toYaml(*symbols)); - addYamlField(n, "type", toYaml(*type)); - addYamlField(n, "label", toYaml(*label)); - addYamlField(n, "doc", toYaml(*doc)); - addYamlField(n, "inputBinding", toYaml(*inputBinding)); + if (config.generateTags) { + n.SetTag("CommandInputEnumSchema"); + } + { + auto member = toYaml(*name, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "name", member); + } + { + auto member = toYaml(*symbols, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "symbols", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } + { + auto member = toYaml(*inputBinding, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "inputBinding", member); + } return n; } -inline void https___w3id_org_cwl_cwl::CommandInputEnumSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["name"], *name); - fromYaml(n["symbols"], *symbols); - fromYaml(n["type"], *type); - fromYaml(n["label"], *label); - fromYaml(n["doc"], *doc); - fromYaml(n["inputBinding"], *inputBinding); +inline void w3id_org::cwl::cwl::CommandInputEnumSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["name"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *name); + } + { + auto nodeAsList = convertMapToList(n["symbols"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *symbols); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } + { + auto nodeAsList = convertMapToList(n["inputBinding"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *inputBinding); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::CommandInputEnumSchema> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::CommandInputEnumSchema> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::CommandInputEnumSchema{}; + auto res = ::w3id_org::cwl::cwl::CommandInputEnumSchema{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["name"], *res.name); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["symbols"], *res.symbols); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["label"], *res.label); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["doc"], *res.doc); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["inputBinding"], *res.inputBinding); fromYaml(n, res); return res; @@ -4026,65 +5425,118 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::CommandInputArraySchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "items", toYaml(*items)); - addYamlField(n, "type", toYaml(*type)); - addYamlField(n, "label", toYaml(*label)); - addYamlField(n, "doc", toYaml(*doc)); - addYamlField(n, "name", toYaml(*name)); - addYamlField(n, "inputBinding", toYaml(*inputBinding)); + if (config.generateTags) { + n.SetTag("CommandInputArraySchema"); + } + { + auto member = toYaml(*items, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "items", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } + { + auto member = toYaml(*name, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "name", member); + } + { + auto member = toYaml(*inputBinding, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "inputBinding", member); + } return n; } -inline void https___w3id_org_cwl_cwl::CommandInputArraySchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["items"], *items); - fromYaml(n["type"], *type); - fromYaml(n["label"], *label); - fromYaml(n["doc"], *doc); - fromYaml(n["name"], *name); - fromYaml(n["inputBinding"], *inputBinding); +inline void w3id_org::cwl::cwl::CommandInputArraySchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["items"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *items); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } + { + auto nodeAsList = convertMapToList(n["name"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *name); + } + { + auto nodeAsList = convertMapToList(n["inputBinding"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *inputBinding); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::CommandInputArraySchema> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::CommandInputArraySchema> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::CommandInputArraySchema{}; + auto res = ::w3id_org::cwl::cwl::CommandInputArraySchema{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["items"], *res.items); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["label"], *res.label); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["doc"], *res.doc); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["name"], *res.name); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["inputBinding"], *res.inputBinding); fromYaml(n, res); return res; @@ -4093,81 +5545,150 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::CommandOutputRecordField::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "doc", toYaml(*doc)); - addYamlField(n, "name", toYaml(*name)); - addYamlField(n, "type", toYaml(*type)); - addYamlField(n, "label", toYaml(*label)); - addYamlField(n, "secondaryFiles", toYaml(*secondaryFiles)); - addYamlField(n, "streamable", toYaml(*streamable)); - addYamlField(n, "format", toYaml(*format)); - addYamlField(n, "outputBinding", toYaml(*outputBinding)); + if (config.generateTags) { + n.SetTag("CommandOutputRecordField"); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } + { + auto member = toYaml(*name, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "name", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } + { + auto member = toYaml(*secondaryFiles, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "secondaryFiles", member); + } + { + auto member = toYaml(*streamable, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "streamable", member); + } + { + auto member = toYaml(*format, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "format", member); + } + { + auto member = toYaml(*outputBinding, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "outputBinding", member); + } return n; } -inline void https___w3id_org_cwl_cwl::CommandOutputRecordField::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["doc"], *doc); - fromYaml(n["name"], *name); - fromYaml(n["type"], *type); - fromYaml(n["label"], *label); - fromYaml(n["secondaryFiles"], *secondaryFiles); - fromYaml(n["streamable"], *streamable); - fromYaml(n["format"], *format); - fromYaml(n["outputBinding"], *outputBinding); +inline void w3id_org::cwl::cwl::CommandOutputRecordField::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } + { + auto nodeAsList = convertMapToList(n["name"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *name); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } + { + auto nodeAsList = convertMapToList(n["secondaryFiles"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *secondaryFiles); + } + { + auto nodeAsList = convertMapToList(n["streamable"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *streamable); + } + { + auto nodeAsList = convertMapToList(n["format"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *format); + } + { + auto nodeAsList = convertMapToList(n["outputBinding"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *outputBinding); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::CommandOutputRecordField> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::CommandOutputRecordField> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::CommandOutputRecordField{}; + auto res = ::w3id_org::cwl::cwl::CommandOutputRecordField{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["doc"], *res.doc); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["name"], *res.name); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["label"], *res.label); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["secondaryFiles"], *res.secondaryFiles); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["streamable"], *res.streamable); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["format"], *res.format); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["outputBinding"], *res.outputBinding); fromYaml(n, res); return res; @@ -4176,60 +5697,102 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::CommandOutputRecordSchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "fields", - convertListToMap(toYaml(*fields), "name")); - addYamlField(n, "type", toYaml(*type)); - addYamlField(n, "label", toYaml(*label)); - addYamlField(n, "doc", toYaml(*doc)); - addYamlField(n, "name", toYaml(*name)); + if (config.generateTags) { + n.SetTag("CommandOutputRecordSchema"); + } + { + auto member = toYaml(*fields, config); + member = convertListToMap(member, "name", "type", config); + addYamlField(n, "fields", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } + { + auto member = toYaml(*name, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "name", member); + } return n; } -inline void https___w3id_org_cwl_cwl::CommandOutputRecordSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - - fromYaml(convertMapToList(n["fields"], -"name"), *fields); - fromYaml(n["type"], *type); - fromYaml(n["label"], *label); - fromYaml(n["doc"], *doc); - fromYaml(n["name"], *name); +inline void w3id_org::cwl::cwl::CommandOutputRecordSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["fields"], "name", "type"); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *fields); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } + { + auto nodeAsList = convertMapToList(n["name"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *name); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::CommandOutputRecordSchema> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::CommandOutputRecordSchema> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::CommandOutputRecordSchema{}; + auto res = ::w3id_org::cwl::cwl::CommandOutputRecordSchema{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["fields"], *res.fields); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["label"], *res.label); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["doc"], *res.doc); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["name"], *res.name); fromYaml(n, res); return res; @@ -4238,57 +5801,102 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::CommandOutputEnumSchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "name", toYaml(*name)); - addYamlField(n, "symbols", toYaml(*symbols)); - addYamlField(n, "type", toYaml(*type)); - addYamlField(n, "label", toYaml(*label)); - addYamlField(n, "doc", toYaml(*doc)); + if (config.generateTags) { + n.SetTag("CommandOutputEnumSchema"); + } + { + auto member = toYaml(*name, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "name", member); + } + { + auto member = toYaml(*symbols, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "symbols", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } return n; } -inline void https___w3id_org_cwl_cwl::CommandOutputEnumSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["name"], *name); - fromYaml(n["symbols"], *symbols); - fromYaml(n["type"], *type); - fromYaml(n["label"], *label); - fromYaml(n["doc"], *doc); +inline void w3id_org::cwl::cwl::CommandOutputEnumSchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["name"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *name); + } + { + auto nodeAsList = convertMapToList(n["symbols"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *symbols); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::CommandOutputEnumSchema> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::CommandOutputEnumSchema> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::CommandOutputEnumSchema{}; + auto res = ::w3id_org::cwl::cwl::CommandOutputEnumSchema{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["name"], *res.name); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["symbols"], *res.symbols); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["label"], *res.label); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["doc"], *res.doc); fromYaml(n, res); return res; @@ -4297,57 +5905,102 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::CommandOutputArraySchema::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "items", toYaml(*items)); - addYamlField(n, "type", toYaml(*type)); - addYamlField(n, "label", toYaml(*label)); - addYamlField(n, "doc", toYaml(*doc)); - addYamlField(n, "name", toYaml(*name)); + if (config.generateTags) { + n.SetTag("CommandOutputArraySchema"); + } + { + auto member = toYaml(*items, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "items", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } + { + auto member = toYaml(*name, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "name", member); + } return n; } -inline void https___w3id_org_cwl_cwl::CommandOutputArraySchema::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["items"], *items); - fromYaml(n["type"], *type); - fromYaml(n["label"], *label); - fromYaml(n["doc"], *doc); - fromYaml(n["name"], *name); +inline void w3id_org::cwl::cwl::CommandOutputArraySchema::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["items"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *items); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } + { + auto nodeAsList = convertMapToList(n["name"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *name); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::CommandOutputArraySchema> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::CommandOutputArraySchema> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::CommandOutputArraySchema{}; + auto res = ::w3id_org::cwl::cwl::CommandOutputArraySchema{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["items"], *res.items); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["label"], *res.label); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["doc"], *res.doc); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["name"], *res.name); fromYaml(n, res); return res; @@ -4356,35 +6009,56 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::CommandInputParameter::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::InputParameter::toYaml()); - addYamlField(n, "type", toYaml(*type)); - addYamlField(n, "inputBinding", toYaml(*inputBinding)); + if (config.generateTags) { + n.SetTag("CommandInputParameter"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::InputParameter::toYaml(config)); + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } + { + auto member = toYaml(*inputBinding, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "inputBinding", member); + } return n; } -inline void https___w3id_org_cwl_cwl::CommandInputParameter::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::InputParameter::fromYaml(n); - fromYaml(n["type"], *type); - fromYaml(n["inputBinding"], *inputBinding); +inline void w3id_org::cwl::cwl::CommandInputParameter::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::InputParameter::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } + { + auto nodeAsList = convertMapToList(n["inputBinding"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *inputBinding); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::CommandInputParameter> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::CommandInputParameter> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::CommandInputParameter{}; + auto res = ::w3id_org::cwl::cwl::CommandInputParameter{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["inputBinding"], *res.inputBinding); fromYaml(n, res); return res; @@ -4393,35 +6067,56 @@ struct DetectAndExtractFromYaml return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::CommandOutputParameter::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::CommandOutputParameter::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::OutputParameter::toYaml()); - addYamlField(n, "type", toYaml(*type)); - addYamlField(n, "outputBinding", toYaml(*outputBinding)); + if (config.generateTags) { + n.SetTag("CommandOutputParameter"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::OutputParameter::toYaml(config)); + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } + { + auto member = toYaml(*outputBinding, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "outputBinding", member); + } return n; } -inline void https___w3id_org_cwl_cwl::CommandOutputParameter::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::OutputParameter::fromYaml(n); - fromYaml(n["type"], *type); - fromYaml(n["outputBinding"], *outputBinding); +inline void w3id_org::cwl::cwl::CommandOutputParameter::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::OutputParameter::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } + { + auto nodeAsList = convertMapToList(n["outputBinding"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *outputBinding); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::CommandOutputParameter> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::CommandOutputParameter> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::CommandOutputParameter{}; + auto res = ::w3id_org::cwl::cwl::CommandOutputParameter{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["outputBinding"], *res.outputBinding); fromYaml(n, res); return res; @@ -4430,173 +6125,309 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::CommandLineTool::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "id", toYaml(*id)); - addYamlField(n, "label", toYaml(*label)); - addYamlField(n, "doc", toYaml(*doc)); - addYamlField(n, "inputs", - convertListToMap(toYaml(*inputs), "id")); - addYamlField(n, "outputs", - convertListToMap(toYaml(*outputs), "id")); - addYamlField(n, "requirements", - convertListToMap(toYaml(*requirements), "class")); - addYamlField(n, "hints", - convertListToMap(toYaml(*hints), "class")); - addYamlField(n, "cwlVersion", toYaml(*cwlVersion)); - addYamlField(n, "intent", toYaml(*intent)); - addYamlField(n, "class", toYaml(*class_)); - addYamlField(n, "baseCommand", toYaml(*baseCommand)); - addYamlField(n, "arguments", toYaml(*arguments)); - addYamlField(n, "stdin", toYaml(*stdin_)); - addYamlField(n, "stderr", toYaml(*stderr_)); - addYamlField(n, "stdout", toYaml(*stdout_)); - addYamlField(n, "successCodes", toYaml(*successCodes)); - addYamlField(n, "temporaryFailCodes", toYaml(*temporaryFailCodes)); - addYamlField(n, "permanentFailCodes", toYaml(*permanentFailCodes)); + if (config.generateTags) { + n.SetTag("CommandLineTool"); + } + { + auto member = toYaml(*id, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "id", member); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } + { + auto member = toYaml(*inputs, config); + member = convertListToMap(member, "id", "type", config); + addYamlField(n, "inputs", member); + } + { + auto member = toYaml(*outputs, config); + member = convertListToMap(member, "id", "type", config); + addYamlField(n, "outputs", member); + } + { + auto member = toYaml(*requirements, config); + member = convertListToMap(member, "class", "", config); + addYamlField(n, "requirements", member); + } + { + auto member = toYaml(*hints, config); + member = convertListToMap(member, "class", "", config); + addYamlField(n, "hints", member); + } + { + auto member = toYaml(*cwlVersion, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "cwlVersion", member); + } + { + auto member = toYaml(*intent, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "intent", member); + } + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } + { + auto member = toYaml(*baseCommand, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "baseCommand", member); + } + { + auto member = toYaml(*arguments, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "arguments", member); + } + { + auto member = toYaml(*stdin_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "stdin", member); + } + { + auto member = toYaml(*stderr_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "stderr", member); + } + { + auto member = toYaml(*stdout_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "stdout", member); + } + { + auto member = toYaml(*successCodes, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "successCodes", member); + } + { + auto member = toYaml(*temporaryFailCodes, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "temporaryFailCodes", member); + } + { + auto member = toYaml(*permanentFailCodes, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "permanentFailCodes", member); + } return n; } -inline void https___w3id_org_cwl_cwl::CommandLineTool::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["id"], *id); - fromYaml(n["label"], *label); - fromYaml(n["doc"], *doc); - - fromYaml(convertMapToList(n["inputs"], -"id"), *inputs); - - fromYaml(convertMapToList(n["outputs"], -"id"), *outputs); - - fromYaml(convertMapToList(n["requirements"], -"class"), *requirements); - - fromYaml(convertMapToList(n["hints"], -"class"), *hints); - fromYaml(n["cwlVersion"], *cwlVersion); - fromYaml(n["intent"], *intent); - fromYaml(n["class"], *class_); - fromYaml(n["baseCommand"], *baseCommand); - fromYaml(n["arguments"], *arguments); - fromYaml(n["stdin"], *stdin_); - fromYaml(n["stderr"], *stderr_); - fromYaml(n["stdout"], *stdout_); - fromYaml(n["successCodes"], *successCodes); - fromYaml(n["temporaryFailCodes"], *temporaryFailCodes); - fromYaml(n["permanentFailCodes"], *permanentFailCodes); +inline void w3id_org::cwl::cwl::CommandLineTool::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["id"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *id); + } + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } + { + auto nodeAsList = convertMapToList(n["inputs"], "id", "type"); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *inputs); + } + { + auto nodeAsList = convertMapToList(n["outputs"], "id", "type"); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *outputs); + } + { + auto nodeAsList = convertMapToList(n["requirements"], "class", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *requirements); + } + { + auto nodeAsList = convertMapToList(n["hints"], "class", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *hints); + } + { + auto nodeAsList = convertMapToList(n["cwlVersion"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *cwlVersion); + } + { + auto nodeAsList = convertMapToList(n["intent"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *intent); + } + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } + { + auto nodeAsList = convertMapToList(n["baseCommand"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *baseCommand); + } + { + auto nodeAsList = convertMapToList(n["arguments"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *arguments); + } + { + auto nodeAsList = convertMapToList(n["stdin"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *stdin_); + } + { + auto nodeAsList = convertMapToList(n["stderr"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *stderr_); + } + { + auto nodeAsList = convertMapToList(n["stdout"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *stdout_); + } + { + auto nodeAsList = convertMapToList(n["successCodes"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *successCodes); + } + { + auto nodeAsList = convertMapToList(n["temporaryFailCodes"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *temporaryFailCodes); + } + { + auto nodeAsList = convertMapToList(n["permanentFailCodes"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *permanentFailCodes); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::CommandLineTool> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::CommandLineTool> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::CommandLineTool{}; + auto res = ::w3id_org::cwl::cwl::CommandLineTool{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["id"], *res.id); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["label"], *res.label); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["doc"], *res.doc); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["inputs"], *res.inputs); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["outputs"], *res.outputs); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["requirements"], *res.requirements); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["hints"], *res.hints); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["cwlVersion"], *res.cwlVersion); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["intent"], *res.intent); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["baseCommand"], *res.baseCommand); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["arguments"], *res.arguments); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["stdin"], *res.stdin_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["stderr"], *res.stderr_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["stdout"], *res.stdout_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["successCodes"], *res.successCodes); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["temporaryFailCodes"], *res.temporaryFailCodes); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["permanentFailCodes"], *res.permanentFailCodes); fromYaml(n, res); return res; @@ -4605,75 +6436,135 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::DockerRequirement::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::DockerRequirement::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::ProcessRequirement::toYaml()); - addYamlField(n, "class", toYaml(*class_)); - addYamlField(n, "dockerPull", toYaml(*dockerPull)); - addYamlField(n, "dockerLoad", toYaml(*dockerLoad)); - addYamlField(n, "dockerFile", toYaml(*dockerFile)); - addYamlField(n, "dockerImport", toYaml(*dockerImport)); - addYamlField(n, "dockerImageId", toYaml(*dockerImageId)); - addYamlField(n, "dockerOutputDirectory", toYaml(*dockerOutputDirectory)); + if (config.generateTags) { + n.SetTag("DockerRequirement"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::ProcessRequirement::toYaml(config)); + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } + { + auto member = toYaml(*dockerPull, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "dockerPull", member); + } + { + auto member = toYaml(*dockerLoad, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "dockerLoad", member); + } + { + auto member = toYaml(*dockerFile, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "dockerFile", member); + } + { + auto member = toYaml(*dockerImport, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "dockerImport", member); + } + { + auto member = toYaml(*dockerImageId, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "dockerImageId", member); + } + { + auto member = toYaml(*dockerOutputDirectory, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "dockerOutputDirectory", member); + } return n; } -inline void https___w3id_org_cwl_cwl::DockerRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::ProcessRequirement::fromYaml(n); - fromYaml(n["class"], *class_); - fromYaml(n["dockerPull"], *dockerPull); - fromYaml(n["dockerLoad"], *dockerLoad); - fromYaml(n["dockerFile"], *dockerFile); - fromYaml(n["dockerImport"], *dockerImport); - fromYaml(n["dockerImageId"], *dockerImageId); - fromYaml(n["dockerOutputDirectory"], *dockerOutputDirectory); +inline void w3id_org::cwl::cwl::DockerRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::ProcessRequirement::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } + { + auto nodeAsList = convertMapToList(n["dockerPull"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *dockerPull); + } + { + auto nodeAsList = convertMapToList(n["dockerLoad"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *dockerLoad); + } + { + auto nodeAsList = convertMapToList(n["dockerFile"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *dockerFile); + } + { + auto nodeAsList = convertMapToList(n["dockerImport"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *dockerImport); + } + { + auto nodeAsList = convertMapToList(n["dockerImageId"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *dockerImageId); + } + { + auto nodeAsList = convertMapToList(n["dockerOutputDirectory"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *dockerOutputDirectory); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::DockerRequirement> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::DockerRequirement> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::DockerRequirement{}; + auto res = ::w3id_org::cwl::cwl::DockerRequirement{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["dockerPull"], *res.dockerPull); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["dockerLoad"], *res.dockerLoad); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["dockerFile"], *res.dockerFile); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["dockerImport"], *res.dockerImport); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["dockerImageId"], *res.dockerImageId); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["dockerOutputDirectory"], *res.dockerOutputDirectory); fromYaml(n, res); return res; @@ -4682,38 +6573,55 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::SoftwareRequirement::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::SoftwareRequirement::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::ProcessRequirement::toYaml()); - addYamlField(n, "class", toYaml(*class_)); - addYamlField(n, "packages", - convertListToMap(toYaml(*packages), "package")); + if (config.generateTags) { + n.SetTag("SoftwareRequirement"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::ProcessRequirement::toYaml(config)); + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } + { + auto member = toYaml(*packages, config); + member = convertListToMap(member, "package", "specs", config); + addYamlField(n, "packages", member); + } return n; } -inline void https___w3id_org_cwl_cwl::SoftwareRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::ProcessRequirement::fromYaml(n); - fromYaml(n["class"], *class_); - - fromYaml(convertMapToList(n["packages"], -"package"), *packages); +inline void w3id_org::cwl::cwl::SoftwareRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::ProcessRequirement::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } + { + auto nodeAsList = convertMapToList(n["packages"], "package", "specs"); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *packages); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::SoftwareRequirement> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::SoftwareRequirement> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::SoftwareRequirement{}; + auto res = ::w3id_org::cwl::cwl::SoftwareRequirement{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["packages"], *res.packages); fromYaml(n, res); return res; @@ -4722,41 +6630,69 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::SoftwarePackage::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::SoftwarePackage::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "package", toYaml(*package)); - addYamlField(n, "version", toYaml(*version)); - addYamlField(n, "specs", toYaml(*specs)); + if (config.generateTags) { + n.SetTag("SoftwarePackage"); + } + { + auto member = toYaml(*package, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "package", member); + } + { + auto member = toYaml(*version, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "version", member); + } + { + auto member = toYaml(*specs, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "specs", member); + } return n; } -inline void https___w3id_org_cwl_cwl::SoftwarePackage::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["package"], *package); - fromYaml(n["version"], *version); - fromYaml(n["specs"], *specs); +inline void w3id_org::cwl::cwl::SoftwarePackage::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["package"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *package); + } + { + auto nodeAsList = convertMapToList(n["version"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *version); + } + { + auto nodeAsList = convertMapToList(n["specs"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *specs); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::SoftwarePackage> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::SoftwarePackage> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::SoftwarePackage{}; + auto res = ::w3id_org::cwl::cwl::SoftwarePackage{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["package"], *res.package); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["version"], *res.version); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["specs"], *res.specs); fromYaml(n, res); return res; @@ -4765,41 +6701,69 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::Dirent::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::Dirent::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "entryname", toYaml(*entryname)); - addYamlField(n, "entry", toYaml(*entry)); - addYamlField(n, "writable", toYaml(*writable)); + if (config.generateTags) { + n.SetTag("Dirent"); + } + { + auto member = toYaml(*entryname, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "entryname", member); + } + { + auto member = toYaml(*entry, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "entry", member); + } + { + auto member = toYaml(*writable, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "writable", member); + } return n; } -inline void https___w3id_org_cwl_cwl::Dirent::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["entryname"], *entryname); - fromYaml(n["entry"], *entry); - fromYaml(n["writable"], *writable); +inline void w3id_org::cwl::cwl::Dirent::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["entryname"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *entryname); + } + { + auto nodeAsList = convertMapToList(n["entry"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *entry); + } + { + auto nodeAsList = convertMapToList(n["writable"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *writable); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::Dirent> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::Dirent> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::Dirent{}; + auto res = ::w3id_org::cwl::cwl::Dirent{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["entryname"], *res.entryname); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["entry"], *res.entry); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["writable"], *res.writable); fromYaml(n, res); return res; @@ -4808,35 +6772,55 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::InitialWorkDirRequirement::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::InitialWorkDirRequirement::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::ProcessRequirement::toYaml()); - addYamlField(n, "class", toYaml(*class_)); - addYamlField(n, "listing", toYaml(*listing)); + if (config.generateTags) { + n.SetTag("InitialWorkDirRequirement"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::ProcessRequirement::toYaml(config)); + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } + { + auto member = toYaml(*listing, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "listing", member); + } return n; } -inline void https___w3id_org_cwl_cwl::InitialWorkDirRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::ProcessRequirement::fromYaml(n); - fromYaml(n["class"], *class_); - fromYaml(n["listing"], *listing); +inline void w3id_org::cwl::cwl::InitialWorkDirRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::ProcessRequirement::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } + { + auto nodeAsList = convertMapToList(n["listing"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *listing); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::InitialWorkDirRequirement> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::InitialWorkDirRequirement> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::InitialWorkDirRequirement{}; + auto res = ::w3id_org::cwl::cwl::InitialWorkDirRequirement{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["listing"], *res.listing); fromYaml(n, res); return res; @@ -4845,38 +6829,55 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::EnvVarRequirement::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::ProcessRequirement::toYaml()); - addYamlField(n, "class", toYaml(*class_)); - addYamlField(n, "envDef", - convertListToMap(toYaml(*envDef), "envName")); + if (config.generateTags) { + n.SetTag("EnvVarRequirement"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::ProcessRequirement::toYaml(config)); + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } + { + auto member = toYaml(*envDef, config); + member = convertListToMap(member, "envName", "envValue", config); + addYamlField(n, "envDef", member); + } return n; } -inline void https___w3id_org_cwl_cwl::EnvVarRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::ProcessRequirement::fromYaml(n); - fromYaml(n["class"], *class_); - - fromYaml(convertMapToList(n["envDef"], -"envName"), *envDef); +inline void w3id_org::cwl::cwl::EnvVarRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::ProcessRequirement::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } + { + auto nodeAsList = convertMapToList(n["envDef"], "envName", "envValue"); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *envDef); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::EnvVarRequirement> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::EnvVarRequirement> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::EnvVarRequirement{}; + auto res = ::w3id_org::cwl::cwl::EnvVarRequirement{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["envDef"], *res.envDef); fromYaml(n, res); return res; @@ -4885,27 +6886,39 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::ShellCommandRequirement::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::ShellCommandRequirement::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::ProcessRequirement::toYaml()); - addYamlField(n, "class", toYaml(*class_)); + if (config.generateTags) { + n.SetTag("ShellCommandRequirement"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::ProcessRequirement::toYaml(config)); + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } return n; } -inline void https___w3id_org_cwl_cwl::ShellCommandRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::ProcessRequirement::fromYaml(n); - fromYaml(n["class"], *class_); +inline void w3id_org::cwl::cwl::ShellCommandRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::ProcessRequirement::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::ShellCommandRequirement> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::ShellCommandRequirement> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::ShellCommandRequirement{}; + auto res = ::w3id_org::cwl::cwl::ShellCommandRequirement{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; @@ -4914,91 +6927,167 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::ResourceRequirement::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::ProcessRequirement::toYaml()); - addYamlField(n, "class", toYaml(*class_)); - addYamlField(n, "coresMin", toYaml(*coresMin)); - addYamlField(n, "coresMax", toYaml(*coresMax)); - addYamlField(n, "ramMin", toYaml(*ramMin)); - addYamlField(n, "ramMax", toYaml(*ramMax)); - addYamlField(n, "tmpdirMin", toYaml(*tmpdirMin)); - addYamlField(n, "tmpdirMax", toYaml(*tmpdirMax)); - addYamlField(n, "outdirMin", toYaml(*outdirMin)); - addYamlField(n, "outdirMax", toYaml(*outdirMax)); + if (config.generateTags) { + n.SetTag("ResourceRequirement"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::ProcessRequirement::toYaml(config)); + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } + { + auto member = toYaml(*coresMin, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "coresMin", member); + } + { + auto member = toYaml(*coresMax, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "coresMax", member); + } + { + auto member = toYaml(*ramMin, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "ramMin", member); + } + { + auto member = toYaml(*ramMax, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "ramMax", member); + } + { + auto member = toYaml(*tmpdirMin, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "tmpdirMin", member); + } + { + auto member = toYaml(*tmpdirMax, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "tmpdirMax", member); + } + { + auto member = toYaml(*outdirMin, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "outdirMin", member); + } + { + auto member = toYaml(*outdirMax, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "outdirMax", member); + } return n; } -inline void https___w3id_org_cwl_cwl::ResourceRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::ProcessRequirement::fromYaml(n); - fromYaml(n["class"], *class_); - fromYaml(n["coresMin"], *coresMin); - fromYaml(n["coresMax"], *coresMax); - fromYaml(n["ramMin"], *ramMin); - fromYaml(n["ramMax"], *ramMax); - fromYaml(n["tmpdirMin"], *tmpdirMin); - fromYaml(n["tmpdirMax"], *tmpdirMax); - fromYaml(n["outdirMin"], *outdirMin); - fromYaml(n["outdirMax"], *outdirMax); +inline void w3id_org::cwl::cwl::ResourceRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::ProcessRequirement::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } + { + auto nodeAsList = convertMapToList(n["coresMin"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *coresMin); + } + { + auto nodeAsList = convertMapToList(n["coresMax"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *coresMax); + } + { + auto nodeAsList = convertMapToList(n["ramMin"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *ramMin); + } + { + auto nodeAsList = convertMapToList(n["ramMax"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *ramMax); + } + { + auto nodeAsList = convertMapToList(n["tmpdirMin"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *tmpdirMin); + } + { + auto nodeAsList = convertMapToList(n["tmpdirMax"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *tmpdirMax); + } + { + auto nodeAsList = convertMapToList(n["outdirMin"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *outdirMin); + } + { + auto nodeAsList = convertMapToList(n["outdirMax"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *outdirMax); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::ResourceRequirement> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::ResourceRequirement> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::ResourceRequirement{}; + auto res = ::w3id_org::cwl::cwl::ResourceRequirement{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["coresMin"], *res.coresMin); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["coresMax"], *res.coresMax); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["ramMin"], *res.ramMin); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["ramMax"], *res.ramMax); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["tmpdirMin"], *res.tmpdirMin); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["tmpdirMax"], *res.tmpdirMax); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["outdirMin"], *res.outdirMin); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["outdirMax"], *res.outdirMax); fromYaml(n, res); return res; @@ -5007,35 +7096,55 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::WorkReuse::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::WorkReuse::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::ProcessRequirement::toYaml()); - addYamlField(n, "class", toYaml(*class_)); - addYamlField(n, "enableReuse", toYaml(*enableReuse)); + if (config.generateTags) { + n.SetTag("WorkReuse"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::ProcessRequirement::toYaml(config)); + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } + { + auto member = toYaml(*enableReuse, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "enableReuse", member); + } return n; } -inline void https___w3id_org_cwl_cwl::WorkReuse::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::ProcessRequirement::fromYaml(n); - fromYaml(n["class"], *class_); - fromYaml(n["enableReuse"], *enableReuse); +inline void w3id_org::cwl::cwl::WorkReuse::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::ProcessRequirement::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } + { + auto nodeAsList = convertMapToList(n["enableReuse"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *enableReuse); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::WorkReuse> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::WorkReuse> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::WorkReuse{}; + auto res = ::w3id_org::cwl::cwl::WorkReuse{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["enableReuse"], *res.enableReuse); fromYaml(n, res); return res; @@ -5044,35 +7153,55 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::NetworkAccess::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::NetworkAccess::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::ProcessRequirement::toYaml()); - addYamlField(n, "class", toYaml(*class_)); - addYamlField(n, "networkAccess", toYaml(*networkAccess)); + if (config.generateTags) { + n.SetTag("NetworkAccess"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::ProcessRequirement::toYaml(config)); + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } + { + auto member = toYaml(*networkAccess, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "networkAccess", member); + } return n; } -inline void https___w3id_org_cwl_cwl::NetworkAccess::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::ProcessRequirement::fromYaml(n); - fromYaml(n["class"], *class_); - fromYaml(n["networkAccess"], *networkAccess); +inline void w3id_org::cwl::cwl::NetworkAccess::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::ProcessRequirement::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } + { + auto nodeAsList = convertMapToList(n["networkAccess"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *networkAccess); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::NetworkAccess> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::NetworkAccess> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::NetworkAccess{}; + auto res = ::w3id_org::cwl::cwl::NetworkAccess{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["networkAccess"], *res.networkAccess); fromYaml(n, res); return res; @@ -5081,35 +7210,55 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::InplaceUpdateRequirement::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::InplaceUpdateRequirement::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::ProcessRequirement::toYaml()); - addYamlField(n, "class", toYaml(*class_)); - addYamlField(n, "inplaceUpdate", toYaml(*inplaceUpdate)); + if (config.generateTags) { + n.SetTag("InplaceUpdateRequirement"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::ProcessRequirement::toYaml(config)); + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } + { + auto member = toYaml(*inplaceUpdate, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "inplaceUpdate", member); + } return n; } -inline void https___w3id_org_cwl_cwl::InplaceUpdateRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::ProcessRequirement::fromYaml(n); - fromYaml(n["class"], *class_); - fromYaml(n["inplaceUpdate"], *inplaceUpdate); +inline void w3id_org::cwl::cwl::InplaceUpdateRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::ProcessRequirement::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } + { + auto nodeAsList = convertMapToList(n["inplaceUpdate"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *inplaceUpdate); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::InplaceUpdateRequirement> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::InplaceUpdateRequirement> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::InplaceUpdateRequirement{}; + auto res = ::w3id_org::cwl::cwl::InplaceUpdateRequirement{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["inplaceUpdate"], *res.inplaceUpdate); fromYaml(n, res); return res; @@ -5118,35 +7267,55 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::ToolTimeLimit::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::ProcessRequirement::toYaml()); - addYamlField(n, "class", toYaml(*class_)); - addYamlField(n, "timelimit", toYaml(*timelimit)); + if (config.generateTags) { + n.SetTag("ToolTimeLimit"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::ProcessRequirement::toYaml(config)); + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } + { + auto member = toYaml(*timelimit, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "timelimit", member); + } return n; } -inline void https___w3id_org_cwl_cwl::ToolTimeLimit::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::ProcessRequirement::fromYaml(n); - fromYaml(n["class"], *class_); - fromYaml(n["timelimit"], *timelimit); +inline void w3id_org::cwl::cwl::ToolTimeLimit::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::ProcessRequirement::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } + { + auto nodeAsList = convertMapToList(n["timelimit"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *timelimit); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::ToolTimeLimit> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::ToolTimeLimit> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::ToolTimeLimit{}; + auto res = ::w3id_org::cwl::cwl::ToolTimeLimit{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["timelimit"], *res.timelimit); fromYaml(n, res); return res; @@ -5155,27 +7324,40 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::ExpressionToolOutputParameter::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::ExpressionToolOutputParameter::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::OutputParameter::toYaml()); - addYamlField(n, "type", toYaml(*type)); + if (config.generateTags) { + n.SetTag("ExpressionToolOutputParameter"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::OutputParameter::toYaml(config)); + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } return n; } -inline void https___w3id_org_cwl_cwl::ExpressionToolOutputParameter::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::OutputParameter::fromYaml(n); - fromYaml(n["type"], *type); +inline void w3id_org::cwl::cwl::ExpressionToolOutputParameter::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::OutputParameter::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::ExpressionToolOutputParameter> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::ExpressionToolOutputParameter> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::ExpressionToolOutputParameter{}; + auto res = ::w3id_org::cwl::cwl::ExpressionToolOutputParameter{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; @@ -5184,35 +7366,56 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::WorkflowInputParameter::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::InputParameter::toYaml()); - addYamlField(n, "type", toYaml(*type)); - addYamlField(n, "inputBinding", toYaml(*inputBinding)); + if (config.generateTags) { + n.SetTag("WorkflowInputParameter"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::InputParameter::toYaml(config)); + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } + { + auto member = toYaml(*inputBinding, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "inputBinding", member); + } return n; } -inline void https___w3id_org_cwl_cwl::WorkflowInputParameter::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::InputParameter::fromYaml(n); - fromYaml(n["type"], *type); - fromYaml(n["inputBinding"], *inputBinding); +inline void w3id_org::cwl::cwl::WorkflowInputParameter::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::InputParameter::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } + { + auto nodeAsList = convertMapToList(n["inputBinding"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *inputBinding); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::WorkflowInputParameter> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::WorkflowInputParameter> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::WorkflowInputParameter{}; + auto res = ::w3id_org::cwl::cwl::WorkflowInputParameter{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["inputBinding"], *res.inputBinding); fromYaml(n, res); return res; @@ -5221,117 +7424,197 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::ExpressionTool::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "id", toYaml(*id)); - addYamlField(n, "label", toYaml(*label)); - addYamlField(n, "doc", toYaml(*doc)); - addYamlField(n, "inputs", - convertListToMap(toYaml(*inputs), "id")); - addYamlField(n, "outputs", - convertListToMap(toYaml(*outputs), "id")); - addYamlField(n, "requirements", - convertListToMap(toYaml(*requirements), "class")); - addYamlField(n, "hints", - convertListToMap(toYaml(*hints), "class")); - addYamlField(n, "cwlVersion", toYaml(*cwlVersion)); - addYamlField(n, "intent", toYaml(*intent)); - addYamlField(n, "class", toYaml(*class_)); - addYamlField(n, "expression", toYaml(*expression)); + if (config.generateTags) { + n.SetTag("ExpressionTool"); + } + { + auto member = toYaml(*id, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "id", member); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } + { + auto member = toYaml(*inputs, config); + member = convertListToMap(member, "id", "type", config); + addYamlField(n, "inputs", member); + } + { + auto member = toYaml(*outputs, config); + member = convertListToMap(member, "id", "type", config); + addYamlField(n, "outputs", member); + } + { + auto member = toYaml(*requirements, config); + member = convertListToMap(member, "class", "", config); + addYamlField(n, "requirements", member); + } + { + auto member = toYaml(*hints, config); + member = convertListToMap(member, "class", "", config); + addYamlField(n, "hints", member); + } + { + auto member = toYaml(*cwlVersion, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "cwlVersion", member); + } + { + auto member = toYaml(*intent, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "intent", member); + } + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } + { + auto member = toYaml(*expression, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "expression", member); + } return n; } -inline void https___w3id_org_cwl_cwl::ExpressionTool::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["id"], *id); - fromYaml(n["label"], *label); - fromYaml(n["doc"], *doc); - - fromYaml(convertMapToList(n["inputs"], -"id"), *inputs); - - fromYaml(convertMapToList(n["outputs"], -"id"), *outputs); - - fromYaml(convertMapToList(n["requirements"], -"class"), *requirements); - - fromYaml(convertMapToList(n["hints"], -"class"), *hints); - fromYaml(n["cwlVersion"], *cwlVersion); - fromYaml(n["intent"], *intent); - fromYaml(n["class"], *class_); - fromYaml(n["expression"], *expression); +inline void w3id_org::cwl::cwl::ExpressionTool::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["id"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *id); + } + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } + { + auto nodeAsList = convertMapToList(n["inputs"], "id", "type"); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *inputs); + } + { + auto nodeAsList = convertMapToList(n["outputs"], "id", "type"); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *outputs); + } + { + auto nodeAsList = convertMapToList(n["requirements"], "class", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *requirements); + } + { + auto nodeAsList = convertMapToList(n["hints"], "class", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *hints); + } + { + auto nodeAsList = convertMapToList(n["cwlVersion"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *cwlVersion); + } + { + auto nodeAsList = convertMapToList(n["intent"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *intent); + } + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } + { + auto nodeAsList = convertMapToList(n["expression"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *expression); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::ExpressionTool> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::ExpressionTool> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::ExpressionTool{}; + auto res = ::w3id_org::cwl::cwl::ExpressionTool{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["id"], *res.id); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["label"], *res.label); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["doc"], *res.doc); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["inputs"], *res.inputs); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["outputs"], *res.outputs); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["requirements"], *res.requirements); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["hints"], *res.hints); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["cwlVersion"], *res.cwlVersion); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["intent"], *res.intent); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["expression"], *res.expression); fromYaml(n, res); return res; @@ -5340,51 +7623,88 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::WorkflowOutputParameter::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::WorkflowOutputParameter::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::OutputParameter::toYaml()); - addYamlField(n, "outputSource", toYaml(*outputSource)); - addYamlField(n, "linkMerge", toYaml(*linkMerge)); - addYamlField(n, "pickValue", toYaml(*pickValue)); - addYamlField(n, "type", toYaml(*type)); + if (config.generateTags) { + n.SetTag("WorkflowOutputParameter"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::OutputParameter::toYaml(config)); + { + auto member = toYaml(*outputSource, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "outputSource", member); + } + { + auto member = toYaml(*linkMerge, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "linkMerge", member); + } + { + auto member = toYaml(*pickValue, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "pickValue", member); + } + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } return n; } -inline void https___w3id_org_cwl_cwl::WorkflowOutputParameter::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::OutputParameter::fromYaml(n); - fromYaml(n["outputSource"], *outputSource); - fromYaml(n["linkMerge"], *linkMerge); - fromYaml(n["pickValue"], *pickValue); - fromYaml(n["type"], *type); +inline void w3id_org::cwl::cwl::WorkflowOutputParameter::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::OutputParameter::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["outputSource"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *outputSource); + } + { + auto nodeAsList = convertMapToList(n["linkMerge"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *linkMerge); + } + { + auto nodeAsList = convertMapToList(n["pickValue"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *pickValue); + } + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::WorkflowOutputParameter> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::WorkflowOutputParameter> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::WorkflowOutputParameter{}; + auto res = ::w3id_org::cwl::cwl::WorkflowOutputParameter{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["outputSource"], *res.outputSource); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["linkMerge"], *res.linkMerge); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["pickValue"], *res.pickValue); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; @@ -5393,56 +7713,103 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline w3id_org::cwl::cwl::Sink::~Sink() = default; +inline auto w3id_org::cwl::cwl::Sink::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "source", toYaml(*source)); - addYamlField(n, "linkMerge", toYaml(*linkMerge)); - addYamlField(n, "pickValue", toYaml(*pickValue)); + if (config.generateTags) { + n.SetTag("Sink"); + } + { + auto member = toYaml(*source, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "source", member); + } + { + auto member = toYaml(*linkMerge, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "linkMerge", member); + } + { + auto member = toYaml(*pickValue, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "pickValue", member); + } return n; } -inline void https___w3id_org_cwl_cwl::Sink::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["source"], *source); - fromYaml(n["linkMerge"], *linkMerge); - fromYaml(n["pickValue"], *pickValue); +inline void w3id_org::cwl::cwl::Sink::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["source"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *source); + } + { + auto nodeAsList = convertMapToList(n["linkMerge"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *linkMerge); + } + { + auto nodeAsList = convertMapToList(n["pickValue"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *pickValue); + } } -inline auto https___w3id_org_cwl_cwl::WorkflowStepInput::toYaml() const -> YAML::Node { - using ::toYaml; +inline auto w3id_org::cwl::cwl::WorkflowStepInput::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::Identified::toYaml()); - n = mergeYaml(n, https___w3id_org_cwl_cwl::Sink::toYaml()); - n = mergeYaml(n, https___w3id_org_cwl_cwl::LoadContents::toYaml()); - n = mergeYaml(n, https___w3id_org_cwl_cwl::Labeled::toYaml()); - addYamlField(n, "default", toYaml(*default_)); - addYamlField(n, "valueFrom", toYaml(*valueFrom)); + if (config.generateTags) { + n.SetTag("WorkflowStepInput"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::Identified::toYaml(config)); + n = mergeYaml(n, w3id_org::cwl::cwl::Sink::toYaml(config)); + n = mergeYaml(n, w3id_org::cwl::cwl::LoadContents::toYaml(config)); + n = mergeYaml(n, w3id_org::cwl::cwl::Labeled::toYaml(config)); + { + auto member = toYaml(*default_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "default", member); + } + { + auto member = toYaml(*valueFrom, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "valueFrom", member); + } return n; } -inline void https___w3id_org_cwl_cwl::WorkflowStepInput::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::Identified::fromYaml(n); - https___w3id_org_cwl_cwl::Sink::fromYaml(n); - https___w3id_org_cwl_cwl::LoadContents::fromYaml(n); - https___w3id_org_cwl_cwl::Labeled::fromYaml(n); - fromYaml(n["default"], *default_); - fromYaml(n["valueFrom"], *valueFrom); +inline void w3id_org::cwl::cwl::WorkflowStepInput::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::Identified::fromYaml(n); + w3id_org::cwl::cwl::Sink::fromYaml(n); + w3id_org::cwl::cwl::LoadContents::fromYaml(n); + w3id_org::cwl::cwl::Labeled::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["default"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *default_); + } + { + auto nodeAsList = convertMapToList(n["valueFrom"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *valueFrom); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::WorkflowStepInput> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::WorkflowStepInput> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::WorkflowStepInput{}; + auto res = ::w3id_org::cwl::cwl::WorkflowStepInput{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["default"], *res.default_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["valueFrom"], *res.valueFrom); fromYaml(n, res); return res; @@ -5451,117 +7818,180 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::WorkflowStepOutput::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::WorkflowStepOutput::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::Identified::toYaml()); + if (config.generateTags) { + n.SetTag("WorkflowStepOutput"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::Identified::toYaml(config)); return n; } -inline void https___w3id_org_cwl_cwl::WorkflowStepOutput::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::Identified::fromYaml(n); +inline void w3id_org::cwl::cwl::WorkflowStepOutput::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::Identified::fromYaml(n); } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::WorkflowStepOutput> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::WorkflowStepOutput> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::WorkflowStepOutput{}; + auto res = ::w3id_org::cwl::cwl::WorkflowStepOutput{}; return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::WorkflowStep::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::WorkflowStep::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::Identified::toYaml()); - n = mergeYaml(n, https___w3id_org_cwl_cwl::Labeled::toYaml()); - n = mergeYaml(n, https___w3id_org_cwl_salad::Documented::toYaml()); - addYamlField(n, "in", - convertListToMap(toYaml(*in), "id")); - addYamlField(n, "out", toYaml(*out)); - addYamlField(n, "requirements", - convertListToMap(toYaml(*requirements), "class")); - addYamlField(n, "hints", - convertListToMap(toYaml(*hints), "class")); - addYamlField(n, "run", toYaml(*run)); - addYamlField(n, "when", toYaml(*when)); - addYamlField(n, "scatter", toYaml(*scatter)); - addYamlField(n, "scatterMethod", toYaml(*scatterMethod)); + if (config.generateTags) { + n.SetTag("WorkflowStep"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::Identified::toYaml(config)); + n = mergeYaml(n, w3id_org::cwl::cwl::Labeled::toYaml(config)); + n = mergeYaml(n, w3id_org::cwl::salad::Documented::toYaml(config)); + { + auto member = toYaml(*in, config); + member = convertListToMap(member, "id", "source", config); + addYamlField(n, "in", member); + } + { + auto member = toYaml(*out, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "out", member); + } + { + auto member = toYaml(*requirements, config); + member = convertListToMap(member, "class", "", config); + addYamlField(n, "requirements", member); + } + { + auto member = toYaml(*hints, config); + member = convertListToMap(member, "class", "", config); + addYamlField(n, "hints", member); + } + { + auto member = toYaml(*run, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "run", member); + } + { + auto member = toYaml(*when, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "when", member); + } + { + auto member = toYaml(*scatter, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "scatter", member); + } + { + auto member = toYaml(*scatterMethod, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "scatterMethod", member); + } return n; } -inline void https___w3id_org_cwl_cwl::WorkflowStep::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::Identified::fromYaml(n); - https___w3id_org_cwl_cwl::Labeled::fromYaml(n); - https___w3id_org_cwl_salad::Documented::fromYaml(n); - - fromYaml(convertMapToList(n["in"], -"id"), *in); - fromYaml(n["out"], *out); - - fromYaml(convertMapToList(n["requirements"], -"class"), *requirements); - - fromYaml(convertMapToList(n["hints"], -"class"), *hints); - fromYaml(n["run"], *run); - fromYaml(n["when"], *when); - fromYaml(n["scatter"], *scatter); - fromYaml(n["scatterMethod"], *scatterMethod); +inline void w3id_org::cwl::cwl::WorkflowStep::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::Identified::fromYaml(n); + w3id_org::cwl::cwl::Labeled::fromYaml(n); + w3id_org::cwl::salad::Documented::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["in"], "id", "source"); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *in); + } + { + auto nodeAsList = convertMapToList(n["out"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *out); + } + { + auto nodeAsList = convertMapToList(n["requirements"], "class", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *requirements); + } + { + auto nodeAsList = convertMapToList(n["hints"], "class", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *hints); + } + { + auto nodeAsList = convertMapToList(n["run"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *run); + } + { + auto nodeAsList = convertMapToList(n["when"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *when); + } + { + auto nodeAsList = convertMapToList(n["scatter"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *scatter); + } + { + auto nodeAsList = convertMapToList(n["scatterMethod"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *scatterMethod); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::WorkflowStep> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::WorkflowStep> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::WorkflowStep{}; + auto res = ::w3id_org::cwl::cwl::WorkflowStep{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["in"], *res.in); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["out"], *res.out); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["requirements"], *res.requirements); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["hints"], *res.hints); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["run"], *res.run); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["when"], *res.when); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["scatter"], *res.scatter); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["scatterMethod"], *res.scatterMethod); fromYaml(n, res); return res; @@ -5570,120 +8000,197 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::Workflow::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::Workflow::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "id", toYaml(*id)); - addYamlField(n, "label", toYaml(*label)); - addYamlField(n, "doc", toYaml(*doc)); - addYamlField(n, "inputs", - convertListToMap(toYaml(*inputs), "id")); - addYamlField(n, "outputs", - convertListToMap(toYaml(*outputs), "id")); - addYamlField(n, "requirements", - convertListToMap(toYaml(*requirements), "class")); - addYamlField(n, "hints", - convertListToMap(toYaml(*hints), "class")); - addYamlField(n, "cwlVersion", toYaml(*cwlVersion)); - addYamlField(n, "intent", toYaml(*intent)); - addYamlField(n, "class", toYaml(*class_)); - addYamlField(n, "steps", - convertListToMap(toYaml(*steps), "id")); + if (config.generateTags) { + n.SetTag("Workflow"); + } + { + auto member = toYaml(*id, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "id", member); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } + { + auto member = toYaml(*inputs, config); + member = convertListToMap(member, "id", "type", config); + addYamlField(n, "inputs", member); + } + { + auto member = toYaml(*outputs, config); + member = convertListToMap(member, "id", "type", config); + addYamlField(n, "outputs", member); + } + { + auto member = toYaml(*requirements, config); + member = convertListToMap(member, "class", "", config); + addYamlField(n, "requirements", member); + } + { + auto member = toYaml(*hints, config); + member = convertListToMap(member, "class", "", config); + addYamlField(n, "hints", member); + } + { + auto member = toYaml(*cwlVersion, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "cwlVersion", member); + } + { + auto member = toYaml(*intent, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "intent", member); + } + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } + { + auto member = toYaml(*steps, config); + member = convertListToMap(member, "id", "", config); + addYamlField(n, "steps", member); + } return n; } -inline void https___w3id_org_cwl_cwl::Workflow::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["id"], *id); - fromYaml(n["label"], *label); - fromYaml(n["doc"], *doc); - - fromYaml(convertMapToList(n["inputs"], -"id"), *inputs); - - fromYaml(convertMapToList(n["outputs"], -"id"), *outputs); - - fromYaml(convertMapToList(n["requirements"], -"class"), *requirements); - - fromYaml(convertMapToList(n["hints"], -"class"), *hints); - fromYaml(n["cwlVersion"], *cwlVersion); - fromYaml(n["intent"], *intent); - fromYaml(n["class"], *class_); - - fromYaml(convertMapToList(n["steps"], -"id"), *steps); +inline void w3id_org::cwl::cwl::Workflow::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["id"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *id); + } + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } + { + auto nodeAsList = convertMapToList(n["inputs"], "id", "type"); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *inputs); + } + { + auto nodeAsList = convertMapToList(n["outputs"], "id", "type"); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *outputs); + } + { + auto nodeAsList = convertMapToList(n["requirements"], "class", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *requirements); + } + { + auto nodeAsList = convertMapToList(n["hints"], "class", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *hints); + } + { + auto nodeAsList = convertMapToList(n["cwlVersion"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *cwlVersion); + } + { + auto nodeAsList = convertMapToList(n["intent"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *intent); + } + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } + { + auto nodeAsList = convertMapToList(n["steps"], "id", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *steps); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::Workflow> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::Workflow> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::Workflow{}; + auto res = ::w3id_org::cwl::cwl::Workflow{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["id"], *res.id); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["label"], *res.label); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["doc"], *res.doc); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["inputs"], *res.inputs); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["outputs"], *res.outputs); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["requirements"], *res.requirements); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["hints"], *res.hints); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["cwlVersion"], *res.cwlVersion); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["intent"], *res.intent); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["steps"], *res.steps); fromYaml(n, res); return res; @@ -5692,27 +8199,39 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; -inline auto https___w3id_org_cwl_cwl::SubworkflowFeatureRequirement::toYaml() const -> YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::SubworkflowFeatureRequirement::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::ProcessRequirement::toYaml()); - addYamlField(n, "class", toYaml(*class_)); + if (config.generateTags) { + n.SetTag("SubworkflowFeatureRequirement"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::ProcessRequirement::toYaml(config)); + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } return n; } -inline void https___w3id_org_cwl_cwl::SubworkflowFeatureRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::ProcessRequirement::fromYaml(n); - fromYaml(n["class"], *class_); +inline void w3id_org::cwl::cwl::SubworkflowFeatureRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::ProcessRequirement::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::SubworkflowFeatureRequirement> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::SubworkflowFeatureRequirement> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::SubworkflowFeatureRequirement{}; + auto res = ::w3id_org::cwl::cwl::SubworkflowFeatureRequirement{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; @@ -5721,27 +8240,39 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::ScatterFeatureRequirement::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::ProcessRequirement::toYaml()); - addYamlField(n, "class", toYaml(*class_)); + if (config.generateTags) { + n.SetTag("ScatterFeatureRequirement"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::ProcessRequirement::toYaml(config)); + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } return n; } -inline void https___w3id_org_cwl_cwl::ScatterFeatureRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::ProcessRequirement::fromYaml(n); - fromYaml(n["class"], *class_); +inline void w3id_org::cwl::cwl::ScatterFeatureRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::ProcessRequirement::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::ScatterFeatureRequirement> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::ScatterFeatureRequirement> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::ScatterFeatureRequirement{}; + auto res = ::w3id_org::cwl::cwl::ScatterFeatureRequirement{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; @@ -5750,27 +8281,39 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::MultipleInputFeatureRequirement::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::ProcessRequirement::toYaml()); - addYamlField(n, "class", toYaml(*class_)); + if (config.generateTags) { + n.SetTag("MultipleInputFeatureRequirement"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::ProcessRequirement::toYaml(config)); + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } return n; } -inline void https___w3id_org_cwl_cwl::MultipleInputFeatureRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::ProcessRequirement::fromYaml(n); - fromYaml(n["class"], *class_); +inline void w3id_org::cwl::cwl::MultipleInputFeatureRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::ProcessRequirement::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::MultipleInputFeatureRequirement> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::MultipleInputFeatureRequirement> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::MultipleInputFeatureRequirement{}; + auto res = ::w3id_org::cwl::cwl::MultipleInputFeatureRequirement{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; @@ -5779,27 +8322,39 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::StepInputExpressionRequirement::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::ProcessRequirement::toYaml()); - addYamlField(n, "class", toYaml(*class_)); + if (config.generateTags) { + n.SetTag("StepInputExpressionRequirement"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::ProcessRequirement::toYaml(config)); + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } return n; } -inline void https___w3id_org_cwl_cwl::StepInputExpressionRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::ProcessRequirement::fromYaml(n); - fromYaml(n["class"], *class_); +inline void w3id_org::cwl::cwl::StepInputExpressionRequirement::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::ProcessRequirement::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::StepInputExpressionRequirement> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::StepInputExpressionRequirement> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::StepInputExpressionRequirement{}; + auto res = ::w3id_org::cwl::cwl::StepInputExpressionRequirement{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; @@ -5808,27 +8363,40 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::OperationInputParameter::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::InputParameter::toYaml()); - addYamlField(n, "type", toYaml(*type)); + if (config.generateTags) { + n.SetTag("OperationInputParameter"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::InputParameter::toYaml(config)); + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } return n; } -inline void https___w3id_org_cwl_cwl::OperationInputParameter::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::InputParameter::fromYaml(n); - fromYaml(n["type"], *type); +inline void w3id_org::cwl::cwl::OperationInputParameter::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::InputParameter::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::OperationInputParameter> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::OperationInputParameter> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::OperationInputParameter{}; + auto res = ::w3id_org::cwl::cwl::OperationInputParameter{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; @@ -5837,27 +8405,40 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::OperationOutputParameter::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - n = mergeYaml(n, https___w3id_org_cwl_cwl::OutputParameter::toYaml()); - addYamlField(n, "type", toYaml(*type)); + if (config.generateTags) { + n.SetTag("OperationOutputParameter"); + } + n = mergeYaml(n, w3id_org::cwl::cwl::OutputParameter::toYaml(config)); + { + auto member = toYaml(*type, config); + member = simplifyType(member, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "type", member); + } return n; } -inline void https___w3id_org_cwl_cwl::OperationOutputParameter::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - https___w3id_org_cwl_cwl::OutputParameter::fromYaml(n); - fromYaml(n["type"], *type); +inline void w3id_org::cwl::cwl::OperationOutputParameter::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + w3id_org::cwl::cwl::OutputParameter::fromYaml(n); + { + auto nodeAsList = convertMapToList(n["type"], "", ""); + auto expandedNode = expandType(nodeAsList); + fromYaml(expandedNode, *type); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::OperationOutputParameter> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::OperationOutputParameter> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::OperationOutputParameter{}; + auto res = ::w3id_org::cwl::cwl::OperationOutputParameter{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["type"], *res.type); fromYaml(n, res); return res; @@ -5866,109 +8447,181 @@ struct DetectAndExtractFromYaml YAML::Node { - using ::toYaml; +} +inline auto w3id_org::cwl::cwl::Operation::toYaml([[maybe_unused]] ::w3id_org::cwl::store_config const& config) const -> YAML::Node { + using ::w3id_org::cwl::toYaml; auto n = YAML::Node{}; - addYamlField(n, "id", toYaml(*id)); - addYamlField(n, "label", toYaml(*label)); - addYamlField(n, "doc", toYaml(*doc)); - addYamlField(n, "inputs", - convertListToMap(toYaml(*inputs), "id")); - addYamlField(n, "outputs", - convertListToMap(toYaml(*outputs), "id")); - addYamlField(n, "requirements", - convertListToMap(toYaml(*requirements), "class")); - addYamlField(n, "hints", - convertListToMap(toYaml(*hints), "class")); - addYamlField(n, "cwlVersion", toYaml(*cwlVersion)); - addYamlField(n, "intent", toYaml(*intent)); - addYamlField(n, "class", toYaml(*class_)); + if (config.generateTags) { + n.SetTag("Operation"); + } + { + auto member = toYaml(*id, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "id", member); + } + { + auto member = toYaml(*label, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "label", member); + } + { + auto member = toYaml(*doc, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "doc", member); + } + { + auto member = toYaml(*inputs, config); + member = convertListToMap(member, "id", "type", config); + addYamlField(n, "inputs", member); + } + { + auto member = toYaml(*outputs, config); + member = convertListToMap(member, "id", "type", config); + addYamlField(n, "outputs", member); + } + { + auto member = toYaml(*requirements, config); + member = convertListToMap(member, "class", "", config); + addYamlField(n, "requirements", member); + } + { + auto member = toYaml(*hints, config); + member = convertListToMap(member, "class", "", config); + addYamlField(n, "hints", member); + } + { + auto member = toYaml(*cwlVersion, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "cwlVersion", member); + } + { + auto member = toYaml(*intent, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "intent", member); + } + { + auto member = toYaml(*class_, config); + member = convertListToMap(member, "", "", config); + addYamlField(n, "class", member); + } return n; } -inline void https___w3id_org_cwl_cwl::Operation::fromYaml([[maybe_unused]] YAML::Node const& n) { - using ::fromYaml; - fromYaml(n["id"], *id); - fromYaml(n["label"], *label); - fromYaml(n["doc"], *doc); - - fromYaml(convertMapToList(n["inputs"], -"id"), *inputs); - - fromYaml(convertMapToList(n["outputs"], -"id"), *outputs); - - fromYaml(convertMapToList(n["requirements"], -"class"), *requirements); - - fromYaml(convertMapToList(n["hints"], -"class"), *hints); - fromYaml(n["cwlVersion"], *cwlVersion); - fromYaml(n["intent"], *intent); - fromYaml(n["class"], *class_); +inline void w3id_org::cwl::cwl::Operation::fromYaml([[maybe_unused]] YAML::Node const& n) { + using ::w3id_org::cwl::fromYaml; + { + auto nodeAsList = convertMapToList(n["id"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *id); + } + { + auto nodeAsList = convertMapToList(n["label"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *label); + } + { + auto nodeAsList = convertMapToList(n["doc"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *doc); + } + { + auto nodeAsList = convertMapToList(n["inputs"], "id", "type"); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *inputs); + } + { + auto nodeAsList = convertMapToList(n["outputs"], "id", "type"); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *outputs); + } + { + auto nodeAsList = convertMapToList(n["requirements"], "class", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *requirements); + } + { + auto nodeAsList = convertMapToList(n["hints"], "class", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *hints); + } + { + auto nodeAsList = convertMapToList(n["cwlVersion"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *cwlVersion); + } + { + auto nodeAsList = convertMapToList(n["intent"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *intent); + } + { + auto nodeAsList = convertMapToList(n["class"], "", ""); + auto expandedNode = (nodeAsList); + fromYaml(expandedNode, *class_); + } } - +namespace w3id_org::cwl { template <> -struct DetectAndExtractFromYaml { - auto operator()(YAML::Node const& n) const -> std::optional { +struct DetectAndExtractFromYaml<::w3id_org::cwl::cwl::Operation> { + auto operator()(YAML::Node const& n) const -> std::optional<::w3id_org::cwl::cwl::Operation> { if (!n.IsDefined()) return std::nullopt; if (!n.IsMap()) return std::nullopt; - auto res = https___w3id_org_cwl_cwl::Operation{}; + auto res = ::w3id_org::cwl::cwl::Operation{}; - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["id"], *res.id); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["label"], *res.label); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["doc"], *res.doc); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["inputs"], *res.inputs); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["outputs"], *res.outputs); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["requirements"], *res.requirements); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["hints"], *res.hints); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["cwlVersion"], *res.cwlVersion); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["intent"], *res.intent); fromYaml(n, res); return res; } catch(...) {} - if constexpr (IsConstant::value) try { + if constexpr (::w3id_org::cwl::IsConstant::value) try { fromYaml(n["class"], *res.class_); fromYaml(n, res); return res; @@ -5977,38 +8630,40 @@ struct DetectAndExtractFromYaml { return std::nullopt; } }; +} +namespace w3id_org::cwl { template -auto toYaml(std::vector const& v) -> YAML::Node { +auto toYaml(std::vector const& v, [[maybe_unused]] store_config const& config) -> YAML::Node { auto n = YAML::Node(YAML::NodeType::Sequence); for (auto const& e : v) { - n.push_back(toYaml(e)); + n.push_back(toYaml(e, config)); } return n; } template -auto toYaml(std::map const& v) -> YAML::Node { +auto toYaml(std::map const& v, [[maybe_unused]] store_config const& config) -> YAML::Node { auto n = YAML::Node(YAML::NodeType::Map); for (auto const& [key, value] : v) { - n[key] = toYaml(value); + n[key] = toYaml(value, config); } return n; } template -auto toYaml(T const& t) -> YAML::Node { +auto toYaml(T const& t, [[maybe_unused]] store_config const& config) -> YAML::Node { if constexpr (std::is_enum_v) { - return toYaml(t); + return toYaml(t, config); } else { - return t.toYaml(); + return t.toYaml(config); } } template -auto toYaml(std::variant const& t) -> YAML::Node { - return std::visit([](auto const& e) { - return toYaml(e); +auto toYaml(std::variant const& t, store_config const& config) -> YAML::Node { + return std::visit([config](auto const& e) { + return toYaml(e, config); }, t); } @@ -6070,3 +8725,33 @@ void fromYaml(YAML::Node const& n, std::variant& v){ bool found = detectAndExtractFromYaml, Args...>(n, v); if (!found) throw std::runtime_error{"didn't find any overload"}; } +using DocumentRootType = std::variant; +auto load_document_from_yaml(YAML::Node n) -> DocumentRootType { + DocumentRootType root; + fromYaml(n, root); + return root; +} +auto load_document_from_string(std::string document) -> DocumentRootType { + return load_document_from_yaml(YAML::Load(document)); +} +auto load_document(std::filesystem::path path) -> DocumentRootType { + return load_document_from_yaml(YAML::LoadFile(path.string())); +} +void store_document(DocumentRootType const& root, std::ostream& ostream, store_config config={}) { + auto y = toYaml(root, config); + + YAML::Emitter out; + out << y; + ostream << out.c_str() << std::endl; +} +void store_document(DocumentRootType const& root, std::filesystem::path const& path, store_config config={}) { + auto ofs = std::ofstream{path}; + store_document(root, ofs, config); +} +auto store_document_as_string(DocumentRootType const& root, store_config config={}) -> std::string { + auto ss = std::stringstream{}; + store_document(root, ss, config); + return ss.str(); +} + +} \ No newline at end of file diff --git a/tests/01_types.cwl b/tests/01_types.cwl new file mode 100644 index 0000000..04fafa8 --- /dev/null +++ b/tests/01_types.cwl @@ -0,0 +1,63 @@ +id: Some id +label: some label +doc: documentation that is brief +inputs: + firstOption: long + secondOption: + type: int + thirdOption: + type: string + inputBinding: + prefix: --third_option + fourthOption: + type: + - type: record + fields: + species: + type: + - symbols: + - homo_sapiens + - mus_musculus + type: enum + - "null" + fifthOption: + type: array + items: + - fields: + type: record + species: + type: + - symbols: + - homo_sapiens + - mus_musculus + type: enum + - "null" + sixthOption: + - type: record + fields: + species: + type: + - symbols: + - homo_sapiens + - mus_musculus + type: enum + - "null" + seventhOption: + type: + - type: record + fields: + species: + type: long + option2: int + eightOption: long? + ninth_option: + type: int? + tenth_option: + type: + - "null" + - int + +outputs: +cwlVersion: v1.2 +class: CommandLineTool +stdout: log.txt diff --git a/tests/01_types_expected.cwl b/tests/01_types_expected.cwl new file mode 100644 index 0000000..b23a7d0 --- /dev/null +++ b/tests/01_types_expected.cwl @@ -0,0 +1,42 @@ +id: Some id +label: some label +doc: documentation that is brief +inputs: + firstOption: long + secondOption: int + thirdOption: + type: string + inputBinding: + prefix: --third_option + fourthOption: + - fields: + species: + - symbols: + - homo_sapiens + - mus_musculus + type: enum + - "null" + type: record + fifthOption: array + sixthOption: + - fields: + species: + - symbols: + - homo_sapiens + - mus_musculus + type: enum + - "null" + type: record + seventhOption: + - fields: + species: long + option2: int + type: record + eightOption: long? + ninth_option: int? + tenth_option: int? +outputs: + [] +cwlVersion: v1.2 +class: CommandLineTool +stdout: log.txt diff --git a/tests/01_types_expected_no_list_to_map.cwl b/tests/01_types_expected_no_list_to_map.cwl new file mode 100644 index 0000000..8bcb40a --- /dev/null +++ b/tests/01_types_expected_no_list_to_map.cwl @@ -0,0 +1,55 @@ +id: Some id +label: some label +doc: documentation that is brief +inputs: + - id: firstOption + type: long + - id: secondOption + type: int + - id: thirdOption + type: string + inputBinding: + prefix: --third_option + - id: fourthOption + type: + - fields: + - name: species + type: + - symbols: + - homo_sapiens + - mus_musculus + type: enum + - "null" + type: record + - id: fifthOption + type: array + - id: sixthOption + type: + - fields: + - name: species + type: + - symbols: + - homo_sapiens + - mus_musculus + type: enum + - "null" + type: record + - id: seventhOption + type: + - fields: + - name: species + type: long + - name: option2 + type: int + type: record + - id: eightOption + type: long? + - id: ninth_option + type: int? + - id: tenth_option + type: int? +outputs: + [] +cwlVersion: v1.2 +class: CommandLineTool +stdout: log.txt diff --git a/tests/01_types_expected_no_simplification.cwl b/tests/01_types_expected_no_simplification.cwl new file mode 100644 index 0000000..5c647e6 --- /dev/null +++ b/tests/01_types_expected_no_simplification.cwl @@ -0,0 +1,48 @@ +id: Some id +label: some label +doc: documentation that is brief +inputs: + firstOption: long + secondOption: int + thirdOption: + type: string + inputBinding: + prefix: --third_option + fourthOption: + - fields: + species: + - symbols: + - homo_sapiens + - mus_musculus + type: enum + - "null" + type: record + fifthOption: array + sixthOption: + - fields: + species: + - symbols: + - homo_sapiens + - mus_musculus + type: enum + - "null" + type: record + seventhOption: + - fields: + species: long + option2: int + type: record + eightOption: + - "null" + - long + ninth_option: + - "null" + - int + tenth_option: + - "null" + - int +outputs: + [] +cwlVersion: v1.2 +class: CommandLineTool +stdout: log.txt diff --git a/tests/01_types_expected_no_simplification_and_list_to_map.cwl b/tests/01_types_expected_no_simplification_and_list_to_map.cwl new file mode 100644 index 0000000..4f00802 --- /dev/null +++ b/tests/01_types_expected_no_simplification_and_list_to_map.cwl @@ -0,0 +1,61 @@ +id: Some id +label: some label +doc: documentation that is brief +inputs: + - id: firstOption + type: long + - id: secondOption + type: int + - id: thirdOption + type: string + inputBinding: + prefix: --third_option + - id: fourthOption + type: + - fields: + - name: species + type: + - symbols: + - homo_sapiens + - mus_musculus + type: enum + - "null" + type: record + - id: fifthOption + type: array + - id: sixthOption + type: + - fields: + - name: species + type: + - symbols: + - homo_sapiens + - mus_musculus + type: enum + - "null" + type: record + - id: seventhOption + type: + - fields: + - name: species + type: long + - name: option2 + type: int + type: record + - id: eightOption + type: + - "null" + - long + - id: ninth_option + type: + - "null" + - int + - id: tenth_option + type: + - "null" + - int +outputs: + [] +cwlVersion: v1.2 +class: CommandLineTool +stdout: log.txt diff --git a/tests/02_expression.cwl b/tests/02_expression.cwl new file mode 100644 index 0000000..f31c1a4 --- /dev/null +++ b/tests/02_expression.cwl @@ -0,0 +1,54 @@ +cwlVersion: v1.2 +class: Workflow +inputs: + 09first_input: + type: + - "null" + - string + 05second_input: + type: int? + 01third_input: + type: File + 03fourth_input: + type: + type: array + items: int + 03_fifth_input: + type: + - "null" + - type: array + items: int + 15_sixth_input: int[]? + 16_seventh_input: + type: int[]? +steps: + zz_step_one: + run: + class: ExpressionTool + inputs: [] + outputs: [] + expression: ${return {}; } + requirements: + InlineJavascriptRequirement: {} + in: [] + out: [] + 00_step_two: + out: [] + run: + inputs: [] + requirements: + InlineJavascriptRequirement: {} + outputs: [] + expression: ${return2 {}; } + class: ExpressionTool + in: [] +outputs: + zz_first_output: + type: File + outputSource: 01third_input + ll_second_output: + type: string + outputSource: 09first_input + aa_third_output: + type: int + outputSource: 05second_input diff --git a/tests/02_expression_expected.cwl b/tests/02_expression_expected.cwl new file mode 100644 index 0000000..30a35d5 --- /dev/null +++ b/tests/02_expression_expected.cwl @@ -0,0 +1,51 @@ +inputs: + 09first_input: string? + 05second_input: int? + 01third_input: File + 03fourth_input: int[] + 03_fifth_input: int[]? + 15_sixth_input: int[]? + 16_seventh_input: int[]? +outputs: + zz_first_output: + outputSource: 01third_input + type: File + ll_second_output: + outputSource: 09first_input + type: string + aa_third_output: + outputSource: 05second_input + type: int +cwlVersion: v1.2 +class: Workflow +steps: + zz_step_one: + in: + [] + out: + [] + run: + inputs: + [] + outputs: + [] + requirements: + InlineJavascriptRequirement: + {} + class: ExpressionTool + expression: ${return {}; } + 00_step_two: + in: + [] + out: + [] + run: + inputs: + [] + outputs: + [] + requirements: + InlineJavascriptRequirement: + {} + class: ExpressionTool + expression: ${return2 {}; } diff --git a/expected_cwl.cwl b/tests/expected_cwl.cwl similarity index 67% rename from expected_cwl.cwl rename to tests/expected_cwl.cwl index d0a68fe..e29ae0c 100644 --- a/expected_cwl.cwl +++ b/tests/expected_cwl.cwl @@ -15,16 +15,14 @@ inputs: inputBinding: prefix: --output-file speciesSelection: - type: - - fields: - species: - type: - - symbols: - - homo_sapiens - - mus_musculus - type: enum - - "null" - type: record + - fields: + species: + - symbols: + - homo_sapiens + - mus_musculus + type: enum + - "null" + type: record outputs: outputFile: type: File