configureOptions($optionsResolver); $options = $optionsResolver->resolve($options); $builder = $this->createDataflowBuilder(); $builder->setName($this->getLabel()); $this->buildDataflow($builder, $options); $dataflow = $builder->getDataflow(); if ($dataflow instanceof LoggerAwareInterface && $this->logger instanceof LoggerInterface) { $dataflow->setLogger($this->logger); } return $dataflow->process(); } protected function createDataflowBuilder(): DataflowBuilder { return new DataflowBuilder(); } /** * @codeCoverageIgnore */ protected function configureOptions(OptionsResolver $optionsResolver): void { } abstract protected function buildDataflow(DataflowBuilder $builder, array $options): void; }