156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson/* This file was generated by SableCC (http://www.sablecc.org/). */
256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodsonpackage com.google.clearsilver.jsilver.syntax.node;
456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodsonimport java.util.*;
656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodsonimport com.google.clearsilver.jsilver.syntax.analysis.*;
756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson@SuppressWarnings("nls")
956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodsonpublic final class AMultipleCommand extends PCommand
1056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson{
1156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    private final LinkedList<PCommand> _command_ = new LinkedList<PCommand>();
1256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
1356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    public AMultipleCommand()
1456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    {
1556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        // Constructor
1656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    }
1756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
1856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    public AMultipleCommand(
1956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        @SuppressWarnings("hiding") List<PCommand> _command_)
2056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    {
2156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        // Constructor
2256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        setCommand(_command_);
2356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
2456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    }
2556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
2656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    @Override
2756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    public Object clone()
2856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    {
2956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        return new AMultipleCommand(
3056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            cloneList(this._command_));
3156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    }
3256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
3356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    public void apply(Switch sw)
3456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    {
3556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        ((Analysis) sw).caseAMultipleCommand(this);
3656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    }
3756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
3856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    public LinkedList<PCommand> getCommand()
3956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    {
4056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        return this._command_;
4156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    }
4256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
4356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    public void setCommand(List<PCommand> list)
4456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    {
4556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        this._command_.clear();
4656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        this._command_.addAll(list);
4756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        for(PCommand e : list)
4856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        {
4956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            if(e.parent() != null)
5056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            {
5156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson                e.parent().removeChild(e);
5256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            }
5356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
5456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            e.parent(this);
5556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        }
5656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    }
5756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
5856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    @Override
5956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    public String toString()
6056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    {
6156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        return ""
6256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            + toString(this._command_);
6356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    }
6456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
6556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    @Override
6656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    void removeChild(@SuppressWarnings("unused") Node child)
6756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    {
6856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        // Remove child
6956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        if(this._command_.remove(child))
7056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        {
7156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            return;
7256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        }
7356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
7456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        throw new RuntimeException("Not a child.");
7556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    }
7656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
7756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    @Override
7856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    void replaceChild(@SuppressWarnings("unused") Node oldChild, @SuppressWarnings("unused") Node newChild)
7956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    {
8056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        // Replace child
8156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        for(ListIterator<PCommand> i = this._command_.listIterator(); i.hasNext();)
8256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        {
8356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            if(i.next() == oldChild)
8456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            {
8556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson                if(newChild != null)
8656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson                {
8756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson                    i.set((PCommand) newChild);
8856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson                    newChild.parent(this);
8956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson                    oldChild.parent(null);
9056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson                    return;
9156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson                }
9256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
9356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson                i.remove();
9456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson                oldChild.parent(null);
9556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson                return;
9656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            }
9756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        }
9856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
9956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        throw new RuntimeException("Not a child.");
10056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    }
10156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson}
102