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