001/* This file was generated by SableCC (http://www.sablecc.org/). */
002
003package org.anarres.graphviz.parser.node;
004
005import org.anarres.graphviz.parser.analysis.*;
006
007@SuppressWarnings("nls")
008public final class ALinkEdge extends PEdge
009{
010    private TTokLink _tokLink_;
011
012    public ALinkEdge()
013    {
014        // Constructor
015    }
016
017    public ALinkEdge(
018        @SuppressWarnings("hiding") TTokLink _tokLink_)
019    {
020        // Constructor
021        setTokLink(_tokLink_);
022
023    }
024
025    @Override
026    public Object clone()
027    {
028        return new ALinkEdge(
029            cloneNode(this._tokLink_));
030    }
031
032    public void apply(Switch sw)
033    {
034        ((Analysis) sw).caseALinkEdge(this);
035    }
036
037    public TTokLink getTokLink()
038    {
039        return this._tokLink_;
040    }
041
042    public void setTokLink(TTokLink node)
043    {
044        if(this._tokLink_ != null)
045        {
046            this._tokLink_.parent(null);
047        }
048
049        if(node != null)
050        {
051            if(node.parent() != null)
052            {
053                node.parent().removeChild(node);
054            }
055
056            node.parent(this);
057        }
058
059        this._tokLink_ = node;
060    }
061
062    @Override
063    public String toString()
064    {
065        return ""
066            + toString(this._tokLink_);
067    }
068
069    @Override
070    void removeChild(@SuppressWarnings("unused") Node child)
071    {
072        // Remove child
073        if(this._tokLink_ == child)
074        {
075            this._tokLink_ = null;
076            return;
077        }
078
079        throw new RuntimeException("Not a child.");
080    }
081
082    @Override
083    void replaceChild(@SuppressWarnings("unused") Node oldChild, @SuppressWarnings("unused") Node newChild)
084    {
085        // Replace child
086        if(this._tokLink_ == oldChild)
087        {
088            setTokLink((TTokLink) newChild);
089            return;
090        }
091
092        throw new RuntimeException("Not a child.");
093    }
094}