| @@ 9-32 (lines=24) @@ | ||
| 6 | use ProxyManager\Generator\ParameterGenerator; |
|
| 7 | use Zend\Code\Generator\PropertyGenerator; |
|
| 8 | ||
| 9 | class GetMethodReplacement extends MethodGenerator |
|
| 10 | { |
|
| 11 | /** |
|
| 12 | * Constructor |
|
| 13 | */ |
|
| 14 | public function __construct(PropertyGenerator $methodReplacementsProperty) |
|
| 15 | { |
|
| 16 | parent::__construct('getMethodReplacement'); |
|
| 17 | $methodReplacementsProperty = $methodReplacementsProperty->getName(); |
|
| 18 | $this->setVisibility(self::VISIBILITY_PRIVATE); |
|
| 19 | ||
| 20 | $this->setParameter(new ParameterGenerator('methodName')); |
|
| 21 | ||
| 22 | $body = |
|
| 23 | "foreach (\$this->$methodReplacementsProperty as \$replacementDefinition) {\n" |
|
| 24 | . " if (\$replacementDefinition->getMethod()->isEqualTo(\$methodName)) {\n" |
|
| 25 | . " return \$replacementDefinition;\n" |
|
| 26 | . " }\n" |
|
| 27 | . "}\n\n" |
|
| 28 | . "throw new \\RuntimeException(sprintf(\"Method replacement for %s does not exists.\", \$methodName));\n"; |
|
| 29 | ||
| 30 | $this->setBody($body); |
|
| 31 | } |
|
| 32 | } |
|
| 33 | ||
| @@ 9-32 (lines=24) @@ | ||
| 6 | use ProxyManager\Generator\ParameterGenerator; |
|
| 7 | use Zend\Code\Generator\PropertyGenerator; |
|
| 8 | ||
| 9 | class HasMethodReplacement extends MethodGenerator |
|
| 10 | { |
|
| 11 | /** |
|
| 12 | * Constructor |
|
| 13 | */ |
|
| 14 | public function __construct(PropertyGenerator $methodReplacementsProperty) |
|
| 15 | { |
|
| 16 | parent::__construct('hasMethodReplacement'); |
|
| 17 | $methodReplacementsProperty = $methodReplacementsProperty->getName(); |
|
| 18 | $this->setVisibility(self::VISIBILITY_PRIVATE); |
|
| 19 | ||
| 20 | $this->setParameter(new ParameterGenerator('methodName')); |
|
| 21 | ||
| 22 | $body = |
|
| 23 | "foreach (\$this->$methodReplacementsProperty as \$replacementDefinition) {\n" |
|
| 24 | . " if (\$replacementDefinition->getMethod()->isEqualTo(\$methodName)) {\n" |
|
| 25 | . " return true;\n" |
|
| 26 | . " }\n" |
|
| 27 | . "}\n\n" |
|
| 28 | . "return false;\n"; |
|
| 29 | ||
| 30 | $this->setBody($body); |
|
| 31 | } |
|
| 32 | } |
|
| 33 | ||