decopule resolveNewVisibilityForNode() method

This commit is contained in:
Tomas Votruba 2018-07-31 11:19:00 +02:00
parent 1cc094845d
commit 1f58b96f05
3 changed files with 29 additions and 36 deletions

View File

@ -89,13 +89,19 @@ CODE_SAMPLE
*/
public function refactor(Node $classConstantNode): ?Node
{
$constantName = $classConstantNode->consts[0]->name->toString();
$this->visibilityModifier->removeOriginalVisibilityFromFlags($classConstantNode);
$nodeParentClassName = $classConstantNode->getAttribute(Attribute::PARENT_CLASS_NAME);
$newVisibility = $this->constantToVisibilityByClass[$nodeParentClassName][$constantName];
$newVisibility = $this->resolveNewVisibilityForNode($classConstantNode);
$this->visibilityModifier->addVisibilityFlag($classConstantNode, $newVisibility);
return $classConstantNode;
}
private function resolveNewVisibilityForNode(ClassConst $classConstantNode): string
{
$nodeParentClassName = $classConstantNode->getAttribute(Attribute::PARENT_CLASS_NAME);
$constantName = $classConstantNode->consts[0]->name->toString();
return $this->constantToVisibilityByClass[$nodeParentClassName][$constantName];
}
}

View File

@ -3,7 +3,6 @@
namespace Rector\Rector\Visibility;
use PhpParser\Node;
use PhpParser\Node\Stmt\Class_;
use PhpParser\Node\Stmt\ClassMethod;
use Rector\Node\Attribute;
use Rector\NodeModifier\VisibilityModifier;
@ -98,25 +97,20 @@ CODE_SAMPLE
*/
public function refactor(Node $classMethodNode): ?Node
{
$nodeParentClassName = $classMethodNode->getAttribute(Attribute::PARENT_CLASS_NAME);
$methodName = $classMethodNode->name->toString();
$newVisibility = $this->methodToVisibilityByClass[$nodeParentClassName][$methodName];
$this->visibilityModifier->removeOriginalVisibilityFromFlags($classMethodNode);
if ($newVisibility === 'public') {
$classMethodNode->flags |= Class_::MODIFIER_PUBLIC;
}
$newVisibility = $this->resolveNewVisibilityForNode($classMethodNode);
if ($newVisibility === 'protected') {
$classMethodNode->flags |= Class_::MODIFIER_PROTECTED;
}
if ($newVisibility === 'private') {
$classMethodNode->flags |= Class_::MODIFIER_PRIVATE;
}
$this->visibilityModifier->addVisibilityFlag($classMethodNode, $newVisibility);
return $classMethodNode;
}
private function resolveNewVisibilityForNode(ClassMethod $classMethodNode): string
{
$methodName = $classMethodNode->name->toString();
$nodeParentClassName = $classMethodNode->getAttribute(Attribute::PARENT_CLASS_NAME);
return $this->methodToVisibilityByClass[$nodeParentClassName][$methodName];
}
}

View File

@ -3,7 +3,6 @@
namespace Rector\Rector\Visibility;
use PhpParser\Node;
use PhpParser\Node\Stmt\Class_;
use PhpParser\Node\Stmt\Property;
use Rector\Node\Attribute;
use Rector\NodeModifier\VisibilityModifier;
@ -92,25 +91,19 @@ CODE_SAMPLE
*/
public function refactor(Node $propertyNode): ?Node
{
$nodeParentClassName = $propertyNode->getAttribute(Attribute::PARENT_CLASS_NAME);
$propertyName = $propertyNode->props[0]->name->toString();
$newVisibility = $this->propertyToVisibilityByClass[$nodeParentClassName][$propertyName];
$this->visibilityModifier->removeOriginalVisibilityFromFlags($propertyNode);
if ($newVisibility === 'public') {
$propertyNode->flags |= Class_::MODIFIER_PUBLIC;
}
if ($newVisibility === 'protected') {
$propertyNode->flags |= Class_::MODIFIER_PROTECTED;
}
if ($newVisibility === 'private') {
$propertyNode->flags |= Class_::MODIFIER_PRIVATE;
}
$newVisibility = $this->resolveNewVisibilityForNode($propertyNode);
$this->visibilityModifier->addVisibilityFlag($propertyNode, $newVisibility);
return $propertyNode;
}
private function resolveNewVisibilityForNode(Property $propertyNode): string
{
$nodeParentClassName = $propertyNode->getAttribute(Attribute::PARENT_CLASS_NAME);
$propertyName = $propertyNode->props[0]->name->toString();
return $this->propertyToVisibilityByClass[$nodeParentClassName][$propertyName];
}
}