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 AGraphGraphType extends PGraphType
009{
010    private TKwGraph _kwGraph_;
011
012    public AGraphGraphType()
013    {
014        // Constructor
015    }
016
017    public AGraphGraphType(
018        @SuppressWarnings("hiding") TKwGraph _kwGraph_)
019    {
020        // Constructor
021        setKwGraph(_kwGraph_);
022
023    }
024
025    @Override
026    public Object clone()
027    {
028        return new AGraphGraphType(
029            cloneNode(this._kwGraph_));
030    }
031
032    public void apply(Switch sw)
033    {
034        ((Analysis) sw).caseAGraphGraphType(this);
035    }
036
037    public TKwGraph getKwGraph()
038    {
039        return this._kwGraph_;
040    }
041
042    public void setKwGraph(TKwGraph node)
043    {
044        if(this._kwGraph_ != null)
045        {
046            this._kwGraph_.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._kwGraph_ = node;
060    }
061
062    @Override
063    public String toString()
064    {
065        return ""
066            + toString(this._kwGraph_);
067    }
068
069    @Override
070    void removeChild(@SuppressWarnings("unused") Node child)
071    {
072        // Remove child
073        if(this._kwGraph_ == child)
074        {
075            this._kwGraph_ = 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._kwGraph_ == oldChild)
087        {
088            setKwGraph((TKwGraph) newChild);
089            return;
090        }
091
092        throw new RuntimeException("Not a child.");
093    }
094}