/**
* Splits the value of the pointcut designator "pointcut" into an aspect
* class- and a pointcut method part and adds the appropriately configured
* filter to the composite object.
*
* @param string $operator The operator
* @param string $pointcutExpression The pointcut expression (value of the designator)
* @param PointcutFilterComposite $pointcutFilterComposite An instance of the pointcut filter composite. The result (ie. the pointcut filter) will be added to this composite object.
* @return void
* @throws InvalidPointcutExpressionException
*/
protected function parseDesignatorPointcut($operator, $pointcutExpression, PointcutFilterComposite $pointcutFilterComposite)
{
if (strpos($pointcutExpression, '->') === false) {
throw new InvalidPointcutExpressionException('Syntax error: "->" expected in "' . $pointcutExpression . '", defined in ' . $this->sourceHint, 1172219205);
}
list($aspectClassName, $pointcutMethodName) = explode('->', $pointcutExpression, 2);
$pointcutFilter = new PointcutFilter($aspectClassName, $pointcutMethodName);
$pointcutFilter->injectProxyClassBuilder($this->proxyClassBuilder);
$pointcutFilterComposite->addFilter($operator, $pointcutFilter);
}