private boolean collect( FlowGraph graph, List<Tuple2<InputDescription, ExternalIoDescriptionProcessor>> inputs, List<Tuple2<OutputDescription, ExternalIoDescriptionProcessor>> outputs) { assert graph != null; assert inputs != null; assert outputs != null; boolean valid = true; Repository externals = environment.getExternals(); for (FlowIn<?> port : graph.getFlowInputs()) { InputDescription desc = port.getDescription(); ExternalIoDescriptionProcessor processor = externals.findProcessor(desc); if (processor != null) { inputs.add(Tuples.of(desc, processor)); } else { environment.error("{0}を処理するプロセッサが見つかりませんでした。", desc.getClass().getName()); valid = false; } } for (FlowOut<?> port : graph.getFlowOutputs()) { OutputDescription desc = port.getDescription(); ExternalIoDescriptionProcessor processor = externals.findProcessor(desc); if (processor != null) { outputs.add(Tuples.of(desc, processor)); } else { valid = false; } } return valid; }
private <T> void normalize( List<Tuple2<T, ExternalIoDescriptionProcessor>> list, Map<Class<?>, ExternalIoDescriptionProcessor> actives) { assert list != null; assert actives != null; for (ListIterator<Tuple2<T, ExternalIoDescriptionProcessor>> iter = list.listIterator(); iter.hasNext(); ) { Tuple2<T, ExternalIoDescriptionProcessor> tuple = iter.next(); ExternalIoDescriptionProcessor normal = actives.get(tuple._2.getClass()); iter.set(Tuples.of(tuple._1, normal)); } }