001package org.nasdanika.html.model.app.graph.emf; 002 003import java.util.concurrent.CompletionStage; 004import java.util.function.BiConsumer; 005import java.util.function.Consumer; 006 007import org.nasdanika.common.ProgressMonitor; 008import org.nasdanika.graph.Element; 009import org.nasdanika.graph.processor.ConnectionProcessorConfig; 010import org.nasdanika.graph.processor.ProcessorConfig; 011import org.nasdanika.graph.processor.ProcessorInfo; 012import org.nasdanika.graph.processor.ReflectiveProcessorFactoryProvider; 013import org.nasdanika.html.model.app.graph.WidgetFactory; 014 015public class EObjectReflectiveProcessorFactoryProvider extends ReflectiveProcessorFactoryProvider<Object, WidgetFactory, WidgetFactory> { 016 017 public EObjectReflectiveProcessorFactoryProvider(Object... targets) { 018 super(targets); 019 } 020 021 @SuppressWarnings("unchecked") 022 @Override 023 protected Object createProcessor( 024 ProcessorConfig config, 025 boolean parallel, 026 BiConsumer<Element, BiConsumer<ProcessorInfo<Object>,ProgressMonitor>> infoProvider, 027 Consumer<CompletionStage<?>> endpointWiringStageConsumer, 028 ProgressMonitor progressMonitor) { 029 030 Object processor = super.createProcessor(config, parallel, infoProvider, endpointWiringStageConsumer, progressMonitor); 031 if (processor == null && config instanceof ConnectionProcessorConfig) { 032 return new ConnectionProcessor((ConnectionProcessorConfig<WidgetFactory, WidgetFactory>) config); 033 } 034 035 return processor; 036 } 037 038}