original_string: public function getNode(NodePath $nodePath, array $data = null)
      {
          if (empty($data)) {
              $data = $this->data;
          }
          $nodePath = $nodePath->popFirst($nodeName);
          $nodeName = $this->encodeNodeName($nodeName);
          if (!isset($data[$nodeName])) {
              return null;
          }
          if ($nodePath->isEmpty()) {
              return $data[$nodeName];
          } else {
              return $this->getNode($nodePath, $data[$nodeName]);
          }
      }
code: public function getNode(NodePath $nodePath, array $data = null)
      {
          if (empty($data)) {
              $data = $this->data;
          }
          $nodePath = $nodePath->popFirst($nodeName);
          $nodeName = $this->encodeNodeName($nodeName);
          if (!isset($data[$nodeName])) {
              return null;
          }
          if ($nodePath->isEmpty()) {
              return $data[$nodeName];
          } else {
              return $this->getNode($nodePath, $data[$nodeName]);
          }
      }
code_tokens: public function getNode ( NodePath $ nodePath , array $ data = null ) { if ( empty ( $ data ) ) { $ data = $ this -> data ; } $ nodePath = $ nodePath -> popFirst ( $ nodeName ) ; $ nodeName = $ this -> encodeNodeName ( $ nodeName ) ; if ( ! isset ( $ data [ $ nodeName ] ) ) { return null ; } if ( $ nodePath -> isEmpty ( ) ) { return $ data [ $ nodeName ] ; } else { return $ this -> getNode ( $ nodePath , $ data [ $ nodeName ] ) ; } }
docstring: Get structure of a particular node.
  @param NodePath $nodePath Node path.
  @param array $data Optional structure data (for recursive call).
  @return array|null Null in case the node path does not exist.
docstring_tokens: Get structure of a particular node .