|
@@ 72-91 (lines=20) @@
|
| 69 |
|
* |
| 70 |
|
* @return array<\AppserverIo\Doppelgaenger\Entities\Definitions\Advice> |
| 71 |
|
*/ |
| 72 |
|
public function lookupAdvice($adviceExpression) |
| 73 |
|
{ |
| 74 |
|
// clean the expression |
| 75 |
|
$adviceExpression = trim(ltrim(rtrim($adviceExpression, '()'), '\\')); |
| 76 |
|
|
| 77 |
|
// if there is an aspect name within the expression we have to filter our search range and cut the expression |
| 78 |
|
$container = $this->container; |
| 79 |
|
if (strpos($adviceExpression, '->')) { |
| 80 |
|
$aspectExpression = strstr($adviceExpression, '->', true); |
| 81 |
|
$container = $this->lookupAspects($aspectExpression); |
| 82 |
|
$adviceExpression = str_replace('->', '', strstr($adviceExpression, '->')); |
| 83 |
|
} |
| 84 |
|
|
| 85 |
|
$matches = array(); |
| 86 |
|
foreach ($container as $aspect) { |
| 87 |
|
$matches = array_merge($matches, $this->lookupEntries($aspect->getAdvices(), $adviceExpression)); |
| 88 |
|
} |
| 89 |
|
|
| 90 |
|
return $matches; |
| 91 |
|
} |
| 92 |
|
|
| 93 |
|
/** |
| 94 |
|
* Will narrow down the choice of aspects to make when looking up pointcuts or advices. |
|
@@ 143-162 (lines=20) @@
|
| 140 |
|
* |
| 141 |
|
* @return array<\AppserverIo\Doppelgaenger\Entities\Definitions\Pointcut> |
| 142 |
|
*/ |
| 143 |
|
public function lookupPointcuts($pointcutExpression) |
| 144 |
|
{ |
| 145 |
|
// clean the expression |
| 146 |
|
$pointcutExpression = trim(ltrim(rtrim($pointcutExpression, '()'), '\\')); |
| 147 |
|
|
| 148 |
|
// if there is an aspect name within the expression we have to filter our search range and cut the expression |
| 149 |
|
$container = $this->container; |
| 150 |
|
if (strpos($pointcutExpression, '->')) { |
| 151 |
|
$aspectExpression = strstr($pointcutExpression, '->', true); |
| 152 |
|
$container = $this->lookupAspects($aspectExpression); |
| 153 |
|
$pointcutExpression = str_replace('->', '', strstr($pointcutExpression, '->')); |
| 154 |
|
} |
| 155 |
|
|
| 156 |
|
$matches = array(); |
| 157 |
|
foreach ($container as $aspect) { |
| 158 |
|
$matches = array_merge($matches, $this->lookupEntries($aspect->getPointcuts(), $pointcutExpression)); |
| 159 |
|
} |
| 160 |
|
|
| 161 |
|
return $matches; |
| 162 |
|
} |
| 163 |
|
|
| 164 |
|
/** |
| 165 |
|
* Will register a complete aspect to the AspectRegister. |