00001 package edu.ksu.cis.bandera.specification.predicate.node;
00002
00003
00004
00005 import java.util.*;
00006 import edu.ksu.cis.bandera.specification.predicate.analysis.*;
00007
00008 public final class AStrongNameArrayAccess extends PArrayAccess
00009 {
00010 private PName _name_;
00011 private TLBracket _lBracket_;
00012 private PExp _exp_;
00013 private TRBracket _rBracket_;
00014
00015 public AStrongNameArrayAccess()
00016 {
00017 }
00018 public AStrongNameArrayAccess(
00019 PName _name_,
00020 TLBracket _lBracket_,
00021 PExp _exp_,
00022 TRBracket _rBracket_)
00023 {
00024 setName(_name_);
00025
00026 setLBracket(_lBracket_);
00027
00028 setExp(_exp_);
00029
00030 setRBracket(_rBracket_);
00031
00032 }
00033 public void apply(Switch sw)
00034 {
00035 ((Analysis) sw).caseAStrongNameArrayAccess(this);
00036 }
00037 public Object clone()
00038 {
00039 return new AStrongNameArrayAccess(
00040 (PName) cloneNode(_name_),
00041 (TLBracket) cloneNode(_lBracket_),
00042 (PExp) cloneNode(_exp_),
00043 (TRBracket) cloneNode(_rBracket_));
00044 }
00045 public PExp getExp()
00046 {
00047 return _exp_;
00048 }
00049 public TLBracket getLBracket()
00050 {
00051 return _lBracket_;
00052 }
00053 public PName getName()
00054 {
00055 return _name_;
00056 }
00057 public TRBracket getRBracket()
00058 {
00059 return _rBracket_;
00060 }
00061 void removeChild(Node child)
00062 {
00063 if(_name_ == child)
00064 {
00065 _name_ = null;
00066 return;
00067 }
00068
00069 if(_lBracket_ == child)
00070 {
00071 _lBracket_ = null;
00072 return;
00073 }
00074
00075 if(_exp_ == child)
00076 {
00077 _exp_ = null;
00078 return;
00079 }
00080
00081 if(_rBracket_ == child)
00082 {
00083 _rBracket_ = null;
00084 return;
00085 }
00086
00087 }
00088 void replaceChild(Node oldChild, Node newChild)
00089 {
00090 if(_name_ == oldChild)
00091 {
00092 setName((PName) newChild);
00093 return;
00094 }
00095
00096 if(_lBracket_ == oldChild)
00097 {
00098 setLBracket((TLBracket) newChild);
00099 return;
00100 }
00101
00102 if(_exp_ == oldChild)
00103 {
00104 setExp((PExp) newChild);
00105 return;
00106 }
00107
00108 if(_rBracket_ == oldChild)
00109 {
00110 setRBracket((TRBracket) newChild);
00111 return;
00112 }
00113
00114 }
00115 public void setExp(PExp node)
00116 {
00117 if(_exp_ != null)
00118 {
00119 _exp_.parent(null);
00120 }
00121
00122 if(node != null)
00123 {
00124 if(node.parent() != null)
00125 {
00126 node.parent().removeChild(node);
00127 }
00128
00129 node.parent(this);
00130 }
00131
00132 _exp_ = node;
00133 }
00134 public void setLBracket(TLBracket node)
00135 {
00136 if(_lBracket_ != null)
00137 {
00138 _lBracket_.parent(null);
00139 }
00140
00141 if(node != null)
00142 {
00143 if(node.parent() != null)
00144 {
00145 node.parent().removeChild(node);
00146 }
00147
00148 node.parent(this);
00149 }
00150
00151 _lBracket_ = node;
00152 }
00153 public void setName(PName node)
00154 {
00155 if(_name_ != null)
00156 {
00157 _name_.parent(null);
00158 }
00159
00160 if(node != null)
00161 {
00162 if(node.parent() != null)
00163 {
00164 node.parent().removeChild(node);
00165 }
00166
00167 node.parent(this);
00168 }
00169
00170 _name_ = node;
00171 }
00172 public void setRBracket(TRBracket node)
00173 {
00174 if(_rBracket_ != null)
00175 {
00176 _rBracket_.parent(null);
00177 }
00178
00179 if(node != null)
00180 {
00181 if(node.parent() != null)
00182 {
00183 node.parent().removeChild(node);
00184 }
00185
00186 node.parent(this);
00187 }
00188
00189 _rBracket_ = node;
00190 }
00191 public String toString()
00192 {
00193 return ""
00194 + toString(_name_)
00195 + toString(_lBracket_)
00196 + toString(_exp_)
00197 + toString(_rBracket_);
00198 }
00199 }