> */ public function getNodeTypes() : array { return [StaticCall::class]; } /** * @param StaticCall $node */ public function refactor(Node $node) : ?Node { foreach ($this->staticMethodRenames as $staticMethodRename) { if (!$this->isName($node->name, $staticMethodRename->getOldMethod())) { continue; } if (!$this->isObjectType($node->class, $staticMethodRename->getOldObjectType())) { continue; } return $this->rename($node, $staticMethodRename); } return null; } /** * @param mixed[] $configuration */ public function configure(array $configuration) : void { Assert::allIsAOf($configuration, RenameStaticMethod::class); $this->staticMethodRenames = $configuration; } private function rename(StaticCall $staticCall, RenameStaticMethod $renameStaticMethod) : StaticCall { $staticCall->name = new Identifier($renameStaticMethod->getNewMethod()); if ($renameStaticMethod->hasClassChanged()) { $staticCall->class = new FullyQualified($renameStaticMethod->getNewClass()); } return $staticCall; } }