Returns a new index object with all class names contained in this and
the given index
public intersect ( |
||
$classNameIndex | ||
return | A new index object |
/** * This method is used to optimize the matching process. * * @param \Neos\Flow\Aop\Builder\ClassNameIndex $classNameIndex * @return \Neos\Flow\Aop\Builder\ClassNameIndex */ public function reduceTargetClassNames(\Neos\Flow\Aop\Builder\ClassNameIndex $classNameIndex) { $classNames = $this->reflectionService->getClassNamesByAnnotation(Flow\ValueObject::class); $annotatedIndex = new \Neos\Flow\Aop\Builder\ClassNameIndex(); $annotatedIndex->setClassNames($classNames); return $classNameIndex->intersect($annotatedIndex); }
/** * @test */ public function intersectOfTwoIndicesWorks() { $index1 = new Aop\Builder\ClassNameIndex(); $index1->setClassNames(['\\Foo\\Bar', '\\Foo\\Baz']); $index2 = new Aop\Builder\ClassNameIndex(); $index2->setClassNames(['\\Foo\\Baz', '\\Foo\\Blubb']); $intersectedIndex = $index1->intersect($index2); $this->assertEquals(['\\Foo\\Baz'], $intersectedIndex->getClassNames()); }
/** * This method is used to optimize the matching process. * * @param ClassNameIndex $classNameIndex * @return ClassNameIndex */ public function reduceTargetClassNames(ClassNameIndex $classNameIndex) { $classNames = $this->reflectionService->getClassesContainingMethodsAnnotatedWith($this->annotation); $annotatedIndex = new ClassNameIndex(); $annotatedIndex->setClassNames($classNames); return $classNameIndex->intersect($annotatedIndex); }
/** * This method is used to optimize the matching process. * * @param ClassNameIndex $classNameIndex * @return ClassNameIndex */ public function reduceTargetClassNames(ClassNameIndex $classNameIndex) { if (interface_exists($this->interfaceOrClassName)) { $classNames = $this->reflectionService->getAllImplementationClassNamesForInterface($this->interfaceOrClassName); } elseif (class_exists($this->interfaceOrClassName)) { $classNames = $this->reflectionService->getAllSubClassNamesForClass($this->interfaceOrClassName); $classNames[] = $this->interfaceOrClassName; } else { $classNames = []; } $filteredIndex = new ClassNameIndex(); $filteredIndex->setClassNames($classNames); return $classNameIndex->intersect($filteredIndex); }
/** * This method is used to optimize the matching process. * * @param ClassNameIndex $classNameIndex * @return ClassNameIndex */ public function reduceTargetClassNames(ClassNameIndex $classNameIndex) { $sessionClasses = new ClassNameIndex(); $sessionClasses->setClassNames($this->objectManager->getClassNamesByScope(ObjectConfiguration::SCOPE_SESSION)); return $classNameIndex->intersect($sessionClasses); }