private <T> ModuleItem<T> getTypedSingleItem(final Module module, final Class<T> type, final Iterable<ModuleItem<?>> items) { Set<Class<?>> types = new HashSet<>(); types.add(type); @SuppressWarnings("unchecked") ModuleItem<T> result = (ModuleItem<T>) getSingleItem(module, types, items); return result; }
private <T> ModuleItem<T> getTypedSingleItem(final Module module, final Class<T> type, final Iterable<ModuleItem<?>> items) { Set<Class<?>> types = new HashSet<>(); types.add(type); @SuppressWarnings("unchecked") ModuleItem<T> result = (ModuleItem<T>) getSingleItem(module, types, items); return result; }
@Override public ModuleItem<?> getSingleOutput(Module module, Collection<Class<?>> types) { return getSingleItem(module, types, module.getInfo().outputs()); }
@Override public ModuleItem<?> getSingleInput(Module module, Collection<Class<?>> types) { return getSingleItem(module, types, module.getInfo().inputs()); }
@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()); }