/** * Returns true if {@code moduleInfo} has at least one input item whose type * is supported by this service */ default public boolean supportsModule(ModuleInfo moduleInfo) { for (ModuleItem<?> input : moduleInfo.inputs()) { if (supportsItem(input)) return true; } return false; }
/** * A collection of input {@link ModuleItem}s of the given {@link ModuleInfo} * that are supported (i.e. can be batch-processed) by this service */ default public List<ModuleItem<?>> batchableInputs(ModuleInfo moduleInfo) { return StreamSupport.stream(moduleInfo.inputs().spliterator(), false) .filter(item -> supportsItem(item)) .collect(Collectors.toList()); }
private ModuleItem<?> getInputItem(final String name) { for (final ModuleItem<?> item : getInfo().inputs()) { if (item.getName().equals(name)) return item; } return null; } }
private ModuleItem<?> getInputItem(final String name) { for (final ModuleItem<?> item : getInfo().inputs()) { if (item.getName().equals(name)) return item; } return null; } }
@Override public <T> ModuleItem<T> getSingleInput(final Module module, final Class<T> type) { return getTypedSingleItem(module, type, module.getInfo().inputs()); }
@Override public void process(final Module module) { final Iterable<ModuleItem<?>> inputs = module.getInfo().inputs(); for (final ModuleItem<?> item : inputs) { loadValue(module, item); } }
@Override public <T> ModuleItem<T> getSingleInput(final Module module, final Class<T> type) { return getTypedSingleItem(module, type, module.getInfo().inputs()); }
@Override public void process(final Module module) { final Iterable<ModuleItem<?>> inputs = module.getInfo().inputs(); for (final ModuleItem<?> item : inputs) { saveValue(module, item); } }
@Override public ModuleItem<?> getSingleInput(Module module, Collection<Class<?>> types) { return getSingleItem(module, types, module.getInfo().inputs()); }
@Override public void process(final Module module) { final Iterable<ModuleItem<?>> inputs = module.getInfo().inputs(); for (final ModuleItem<?> item : inputs) { saveValue(module, item); } }
@Override public Map<String, Object> getInputs() { return createMap(getInfo().inputs(), false); }
@Override public void process(final Module module) { if (nsService == null) return; for (final ModuleItem<?> input : module.getInfo().inputs()) { assignNamespace(module, input); } }
/** 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); } } }
/** 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); } } }
/** * Gets the given {@link ModuleInfo}'s list of inputs, excluding special ones * like {@link Service}s and {@link Context}s. */ public static List<ModuleItem<?>> inputs(final ModuleInfo info) { final List<ModuleItem<?>> inputs = asList(info.inputs()); return filter(inputs, input -> !isInjectable(input.getType())); }
@Override public void process(final Module module) { for (final ModuleItem<?> input : module.getInfo().inputs()) { assignDefaultValue(module, input); } for (final ModuleItem<?> output : module.getInfo().outputs()) { assignDefaultValue(module, output); } }
@Override public void process(final Module module) { for (final ModuleItem<?> input : module.getInfo().inputs()) { if (input.isRequired() && input.getValue(module) == null) { cancel("'" + input.getName() + "' is required but unset."); } } }
@Override public void process(final Module module) { for (final ModuleItem<?> input : module.getInfo().inputs()) { assignDefaultValue(module, input); } for (final ModuleItem<?> output : module.getInfo().outputs()) { assignDefaultValue(module, output); } }
@Override public void process(final Module module) { for (final ModuleItem<?> input : module.getInfo().inputs()) { if (input.isRequired() && input.getValue(module) == null) { cancel("'" + input.getName() + "' is required but unset."); } } }
@Override public void process(final Module module) { for (final ModuleItem<?> input : module.getInfo().inputs()) { if (Stuff.class.isAssignableFrom(input.getType())) { module.setInput(input.getName(), new Stuff()); module.resolveInput(input.getName()); } } }