/** Does any needed processing, after input values have been harvested. */ @SuppressWarnings("unused") default void processResults(final InputPanel<P, W> inputPanel, final Module module) throws ModuleException { final Iterable<ModuleItem<?>> inputs = module.getInfo().inputs(); for (final ModuleItem<?> item : inputs) { final String name = item.getName(); module.resolveInput(name); } } }
@Override public <T> ModuleItem<T> getSingleInput(final Module module, final Class<T> type) { return getTypedSingleItem(module, type, module.getInfo().inputs()); }
@Override public <T> ModuleItem<T> getSingleOutput(final Module module, final Class<T> type) { return getTypedSingleItem(module, type, module.getInfo().outputs()); }
@Override public void process(final Module module) { if (displayService == null) return; for (final ModuleItem<?> outputItem : module.getInfo().outputs()) { if (module.isOutputResolved(outputItem.getName())) continue; final Object value = outputItem.getValue(module); final String name = defaultName(outputItem); final boolean resolved = handleOutput(name, value); if (resolved) module.resolveOutput(name); } }
@Override public ModuleItem<?> getSingleInput(Module module, Collection<Class<?>> types) { return getSingleItem(module, types, module.getInfo().inputs()); }
@Override public ModuleItem<?> getSingleOutput(Module module, Collection<Class<?>> types) { return getSingleItem(module, types, module.getInfo().outputs()); }
/** Adds an input to the list. */ default <T> MutableModuleItem<T> addInput(final String name, final Class<T> type) { final DefaultMutableModuleItem<T> item = new DefaultMutableModuleItem<>(this, name, type); addInput(item); return item; }
/** Adds an output to the list. */ default <T> MutableModuleItem<T> addOutput(final String name, final Class<T> type) { final DefaultMutableModuleItem<T> item = new DefaultMutableModuleItem<>(this, name, type); addOutput(item); return item; }
/** Does any needed processing, after input values have been harvested. */ @SuppressWarnings("unused") default void processResults(final InputPanel<P, W> inputPanel, final Module module) throws ModuleException { final Iterable<ModuleItem<?>> inputs = module.getInfo().inputs(); for (final ModuleItem<?> item : inputs) { final String name = item.getName(); module.resolveInput(name); } } }
@Override public <T> ModuleItem<T> getSingleInput(final Module module, final Class<T> type) { return getTypedSingleItem(module, type, module.getInfo().inputs()); }
@Override public ModuleItem<?> getSingleInput(Module module, Collection<Class<?>> types) { return getSingleItem(module, types, module.getInfo().inputs()); }
@Override public <T> ModuleItem<T> getSingleOutput(final Module module, final Class<T> type) { return getTypedSingleItem(module, type, module.getInfo().outputs()); }
@Override public ModuleItem<?> getSingleOutput(Module module, Collection<Class<?>> types) { return getSingleItem(module, types, module.getInfo().outputs()); }
/** Adds an input to the list. */ default <T> MutableModuleItem<T> addInput(final String name, final Class<T> type) { final DefaultMutableModuleItem<T> item = new DefaultMutableModuleItem<>(this, name, type); addInput(item); return item; }