コード例 #1
0
 /**
  * @test
  */
 public function applyUnionWorks()
 {
     $index1 = new \TYPO3\Flow\Aop\Builder\ClassNameIndex();
     $index1->setClassNames(array('\\Foo\\Bar', '\\Foo\\Baz'));
     $index2 = new \TYPO3\Flow\Aop\Builder\ClassNameIndex();
     $index2->setClassNames(array('\\Foo\\Baz', '\\Foo\\Blubb'));
     $index1->applyUnion($index2);
     $index1->sort();
     $this->assertEquals(array('\\Foo\\Bar', '\\Foo\\Baz', '\\Foo\\Blubb'), $index1->getClassNames());
 }
コード例 #2
0
 /**
  * This method is used to optimize the matching process.
  *
  * @param \TYPO3\Flow\Aop\Builder\ClassNameIndex $classNameIndex
  * @return \TYPO3\Flow\Aop\Builder\ClassNameIndex
  */
 public function reduceTargetClassNames(\TYPO3\Flow\Aop\Builder\ClassNameIndex $classNameIndex)
 {
     if ($this->filters === array()) {
         $this->buildPointcutFilters();
     }
     $result = new \TYPO3\Flow\Aop\Builder\ClassNameIndex();
     foreach ($this->filters as $resources) {
         /** @var $filterForResource \TYPO3\Flow\Aop\Pointcut\PointcutFilterInterface */
         foreach ($resources as $filterForResource) {
             $result->applyUnion($filterForResource->reduceTargetClassNames($classNameIndex));
         }
     }
     return $result;
 }