Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. AnnotationHelper.php

function AnnotationHelper::changeAnnotationNode

1 call to AnnotationHelper::changeAnnotationNode()
AnnotationHelper::fixAnnotation in vendor/slevomat/coding-standard/SlevomatCodingStandard/Helpers/AnnotationHelper.php

File

vendor/slevomat/coding-standard/SlevomatCodingStandard/Helpers/AnnotationHelper.php, line 315

Class

AnnotationHelper
@internal

Namespace

SlevomatCodingStandard\Helpers

Code

private static function changeAnnotationNode(PhpDocTagNode $tagNode, Node $nodeToChange, Node $changedNode) : PhpDocTagNode {
    static $visitor;
    static $traverser;
    if ($visitor === null) {
        $visitor = new class  extends AbstractNodeVisitor {
            
            /** @var Node */
            private $nodeToChange;
            
            /** @var Node */
            private $changedNode;
            
            /**
             * @return Node|list<Node>|NodeTraverser::*|null
             */
            public function enterNode(Node $node) {
                if ($node->getAttribute(Attribute::ORIGINAL_NODE) === $this->nodeToChange) {
                    return $this->changedNode;
                }
                return null;
            }
            public function setNodeToChange(Node $nodeToChange) : void {
                $this->nodeToChange = $nodeToChange;
            }
            public function setChangedNode(Node $changedNode) : void {
                $this->changedNode = $changedNode;
            }

};
    }
    if ($traverser === null) {
        $traverser = new NodeTraverser([
            $visitor,
        ]);
    }
    $visitor->setNodeToChange($nodeToChange);
    $visitor->setChangedNode($changedNode);
    [
        $changedTagNode,
    ] = $traverser->traverse([
        $tagNode,
    ]);
    return $changedTagNode;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal