@@ -159,13 +159,12 @@ const char* controlOption()
159159}
160160
161161template <typename T>
162- concept with_base_table = requires { T::base_specs (); };
162+ concept with_required_inputs = requires (T t) { t. requiredInputs . size (); };
163163
164- template <with_base_table T>
165- bool requestInputs (std::vector<InputSpec>& inputs, T const & /* entity*/ )
164+ template <with_required_inputs T>
165+ bool requestInputs (std::vector<InputSpec>& inputs, T const & entity)
166166{
167- auto base_specs = T::base_specs ();
168- for (auto base_spec : base_specs) {
167+ for (auto base_spec : entity.requiredInputs ) {
169168 base_spec.metadata .push_back (ConfigParamSpec{std::string{controlOption<T>()}, VariantType::Bool, true , {" \"\" " }});
170169 DataSpecUtils::updateInputList (inputs, std::forward<InputSpec>(base_spec));
171170 }
@@ -388,21 +387,24 @@ bool finalizeOutput(ProcessingContext& context, T& producesGroup)
388387template <is_spawns T>
389388bool finalizeOutput (ProcessingContext& context, T& spawns)
390389{
391- context.outputs ().adopt (spawns.output (), spawns.asArrowTable ());
390+ auto matcher = DataSpecUtils::asConcreteDataMatcher (spawns.outputSpec );
391+ context.outputs ().adopt (Output{matcher.origin , matcher.description , matcher.subSpec }, spawns.asArrowTable ());
392392 return true ;
393393}
394394
395395template <is_builds T>
396396bool finalizeOutput (ProcessingContext& context, T& builds)
397397{
398- context.outputs ().adopt (builds.output (), builds.asArrowTable ());
398+ auto matcher = DataSpecUtils::asConcreteDataMatcher (builds.outputSpec );
399+ context.outputs ().adopt (Output{matcher.origin , matcher.description , matcher.subSpec }, builds.asArrowTable ());
399400 return true ;
400401}
401402
402403template <is_defines T>
403404bool finalizeOutput (ProcessingContext& context, T& defines)
404405{
405- context.outputs ().adopt (defines.output (), defines.asArrowTable ());
406+ auto matcher = DataSpecUtils::asConcreteDataMatcher (defines.outputSpec );
407+ context.outputs ().adopt (Output{matcher.origin , matcher.description , matcher.subSpec }, defines.asArrowTable ());
406408 return true ;
407409}
408410
0 commit comments