Code Duplication    Length = 29-29 lines in 2 locations

src/SQLParser/Node/Table.php 1 location

@@ 221-249 (lines=29) @@
218
     *
219
     * @param VisitorInterface $visitor
220
     */
221
    public function walk(VisitorInterface $visitor)
222
    {
223
        $node = $this;
224
        $result = $visitor->enterNode($node);
225
        if ($result instanceof NodeInterface) {
226
            $node = $result;
227
        }
228
        if ($result !== NodeTraverser::DONT_TRAVERSE_CHILDREN) {
229
            if (is_array($this->refClause)) {
230
                foreach ($this->refClause as $key => $operand) {
231
                    $result2 = $operand->walk($visitor);
232
                    if ($result2 === NodeTraverser::REMOVE_NODE) {
233
                        unset($this->refClause[$key]);
234
                    } elseif ($result2 instanceof NodeInterface) {
235
                        $this->refClause[$key] = $result2;
236
                    }
237
                }
238
            } elseif ($this->refClause) {
239
                $result2 = $this->refClause->walk($visitor);
240
                if ($result2 === NodeTraverser::REMOVE_NODE) {
241
                    $this->refClause = null;
242
                } elseif ($result2 instanceof NodeInterface) {
243
                    $this->refClause = $result2;
244
                }
245
            }
246
        }
247
248
        return $visitor->leaveNode($node);
249
    }
250
}
251

src/SQLParser/Node/Expression.php 1 location

@@ 235-263 (lines=29) @@
232
     *
233
     * @param VisitorInterface $visitor
234
     */
235
    public function walk(VisitorInterface $visitor)
236
    {
237
        $node = $this;
238
        $result = $visitor->enterNode($node);
239
        if ($result instanceof NodeInterface) {
240
            $node = $result;
241
        }
242
        if ($result !== NodeTraverser::DONT_TRAVERSE_CHILDREN) {
243
            if (is_array($this->subTree)) {
244
                foreach ($this->subTree as $key => $operand) {
245
                    $result2 = $operand->walk($visitor);
246
                    if ($result2 === NodeTraverser::REMOVE_NODE) {
247
                        unset($this->subTree[$key]);
248
                    } elseif ($result2 instanceof NodeInterface) {
249
                        $this->subTree[$key] = $result2;
250
                    }
251
                }
252
            } else {
253
                $result2 = $this->subTree->walk($visitor);
254
                if ($result2 === NodeTraverser::REMOVE_NODE) {
255
                    $this->subTree = [];
256
                } elseif ($result2 instanceof NodeInterface) {
257
                    $this->subTree = $result2;
258
                }
259
            }
260
        }
261
262
        return $visitor->leaveNode($node);
263
    }
264
265
    /**
266
     * Returns if this node should be removed from the tree.