/* This file was generated by SableCC (http://www.sablecc.org/). */ package soot.jimple.parser.node; import java.util.*; import soot.jimple.parser.analysis.*; @SuppressWarnings("nls") public final class AFieldMember extends PMember { private final LinkedList<PModifier> _modifier_ = new LinkedList<PModifier>(); private PType _type_; private PName _name_; private TSemicolon _semicolon_; public AFieldMember() { // Constructor } public AFieldMember( @SuppressWarnings("hiding") List<PModifier> _modifier_, @SuppressWarnings("hiding") PType _type_, @SuppressWarnings("hiding") PName _name_, @SuppressWarnings("hiding") TSemicolon _semicolon_) { // Constructor setModifier(_modifier_); setType(_type_); setName(_name_); setSemicolon(_semicolon_); } @Override public Object clone() { return new AFieldMember( cloneList(this._modifier_), cloneNode(this._type_), cloneNode(this._name_), cloneNode(this._semicolon_)); } public void apply(Switch sw) { ((Analysis) sw).caseAFieldMember(this); } public LinkedList<PModifier> getModifier() { return this._modifier_; } public void setModifier(List<PModifier> list) { this._modifier_.clear(); this._modifier_.addAll(list); for(PModifier e : list) { if(e.parent() != null) { e.parent().removeChild(e); } e.parent(this); } } public PType getType() { return this._type_; } public void setType(PType node) { if(this._type_ != null) { this._type_.parent(null); } if(node != null) { if(node.parent() != null) { node.parent().removeChild(node); } node.parent(this); } this._type_ = node; } public PName getName() { return this._name_; } public void setName(PName node) { if(this._name_ != null) { this._name_.parent(null); } if(node != null) { if(node.parent() != null) { node.parent().removeChild(node); } node.parent(this); } this._name_ = node; } public TSemicolon getSemicolon() { return this._semicolon_; } public void setSemicolon(TSemicolon node) { if(this._semicolon_ != null) { this._semicolon_.parent(null); } if(node != null) { if(node.parent() != null) { node.parent().removeChild(node); } node.parent(this); } this._semicolon_ = node; } @Override public String toString() { return "" + toString(this._modifier_) + toString(this._type_) + toString(this._name_) + toString(this._semicolon_); } @Override void removeChild(@SuppressWarnings("unused") Node child) { // Remove child if(this._modifier_.remove(child)) { return; } if(this._type_ == child) { this._type_ = null; return; } if(this._name_ == child) { this._name_ = null; return; } if(this._semicolon_ == child) { this._semicolon_ = null; return; } throw new RuntimeException("Not a child."); } @Override void replaceChild(@SuppressWarnings("unused") Node oldChild, @SuppressWarnings("unused") Node newChild) { // Replace child for(ListIterator<PModifier> i = this._modifier_.listIterator(); i.hasNext();) { if(i.next() == oldChild) { if(newChild != null) { i.set((PModifier) newChild); newChild.parent(this); oldChild.parent(null); return; } i.remove(); oldChild.parent(null); return; } } if(this._type_ == oldChild) { setType((PType) newChild); return; } if(this._name_ == oldChild) { setName((PName) newChild); return; } if(this._semicolon_ == oldChild) { setSemicolon((TSemicolon) newChild); return; } throw new RuntimeException("Not a child."); } }