00001 package edu.ksu.cis.bandera.abstraction.specification.node;
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 import java.util.*;
00039 import edu.ksu.cis.bandera.abstraction.specification.analysis.*;
00040
00041 public final class AQuestionConditionalExp extends PConditionalExp
00042 {
00043 private POrExp _orExp_;
00044 private TQuestion _question_;
00045 private PExp _trueExp_;
00046 private TColon _colon_;
00047 private PConditionalExp _falseExp_;
00048
00049 public AQuestionConditionalExp()
00050 {
00051 }
00052 public AQuestionConditionalExp(
00053 POrExp _orExp_,
00054 TQuestion _question_,
00055 PExp _trueExp_,
00056 TColon _colon_,
00057 PConditionalExp _falseExp_)
00058 {
00059 setOrExp(_orExp_);
00060
00061 setQuestion(_question_);
00062
00063 setTrueExp(_trueExp_);
00064
00065 setColon(_colon_);
00066
00067 setFalseExp(_falseExp_);
00068
00069 }
00070 public void apply(Switch sw)
00071 {
00072 ((Analysis) sw).caseAQuestionConditionalExp(this);
00073 }
00074 public Object clone()
00075 {
00076 return new AQuestionConditionalExp(
00077 (POrExp) cloneNode(_orExp_),
00078 (TQuestion) cloneNode(_question_),
00079 (PExp) cloneNode(_trueExp_),
00080 (TColon) cloneNode(_colon_),
00081 (PConditionalExp) cloneNode(_falseExp_));
00082 }
00083 public TColon getColon()
00084 {
00085 return _colon_;
00086 }
00087 public PConditionalExp getFalseExp()
00088 {
00089 return _falseExp_;
00090 }
00091 public POrExp getOrExp()
00092 {
00093 return _orExp_;
00094 }
00095 public TQuestion getQuestion()
00096 {
00097 return _question_;
00098 }
00099 public PExp getTrueExp()
00100 {
00101 return _trueExp_;
00102 }
00103 void removeChild(Node child)
00104 {
00105 if(_orExp_ == child)
00106 {
00107 _orExp_ = null;
00108 return;
00109 }
00110
00111 if(_question_ == child)
00112 {
00113 _question_ = null;
00114 return;
00115 }
00116
00117 if(_trueExp_ == child)
00118 {
00119 _trueExp_ = null;
00120 return;
00121 }
00122
00123 if(_colon_ == child)
00124 {
00125 _colon_ = null;
00126 return;
00127 }
00128
00129 if(_falseExp_ == child)
00130 {
00131 _falseExp_ = null;
00132 return;
00133 }
00134
00135 }
00136 void replaceChild(Node oldChild, Node newChild)
00137 {
00138 if(_orExp_ == oldChild)
00139 {
00140 setOrExp((POrExp) newChild);
00141 return;
00142 }
00143
00144 if(_question_ == oldChild)
00145 {
00146 setQuestion((TQuestion) newChild);
00147 return;
00148 }
00149
00150 if(_trueExp_ == oldChild)
00151 {
00152 setTrueExp((PExp) newChild);
00153 return;
00154 }
00155
00156 if(_colon_ == oldChild)
00157 {
00158 setColon((TColon) newChild);
00159 return;
00160 }
00161
00162 if(_falseExp_ == oldChild)
00163 {
00164 setFalseExp((PConditionalExp) newChild);
00165 return;
00166 }
00167
00168 }
00169 public void setColon(TColon node)
00170 {
00171 if(_colon_ != null)
00172 {
00173 _colon_.parent(null);
00174 }
00175
00176 if(node != null)
00177 {
00178 if(node.parent() != null)
00179 {
00180 node.parent().removeChild(node);
00181 }
00182
00183 node.parent(this);
00184 }
00185
00186 _colon_ = node;
00187 }
00188 public void setFalseExp(PConditionalExp node)
00189 {
00190 if(_falseExp_ != null)
00191 {
00192 _falseExp_.parent(null);
00193 }
00194
00195 if(node != null)
00196 {
00197 if(node.parent() != null)
00198 {
00199 node.parent().removeChild(node);
00200 }
00201
00202 node.parent(this);
00203 }
00204
00205 _falseExp_ = node;
00206 }
00207 public void setOrExp(POrExp node)
00208 {
00209 if(_orExp_ != null)
00210 {
00211 _orExp_.parent(null);
00212 }
00213
00214 if(node != null)
00215 {
00216 if(node.parent() != null)
00217 {
00218 node.parent().removeChild(node);
00219 }
00220
00221 node.parent(this);
00222 }
00223
00224 _orExp_ = node;
00225 }
00226 public void setQuestion(TQuestion node)
00227 {
00228 if(_question_ != null)
00229 {
00230 _question_.parent(null);
00231 }
00232
00233 if(node != null)
00234 {
00235 if(node.parent() != null)
00236 {
00237 node.parent().removeChild(node);
00238 }
00239
00240 node.parent(this);
00241 }
00242
00243 _question_ = node;
00244 }
00245 public void setTrueExp(PExp node)
00246 {
00247 if(_trueExp_ != null)
00248 {
00249 _trueExp_.parent(null);
00250 }
00251
00252 if(node != null)
00253 {
00254 if(node.parent() != null)
00255 {
00256 node.parent().removeChild(node);
00257 }
00258
00259 node.parent(this);
00260 }
00261
00262 _trueExp_ = node;
00263 }
00264 public String toString()
00265 {
00266 return ""
00267 + toString(_orExp_)
00268 + toString(_question_)
00269 + toString(_trueExp_)
00270 + toString(_colon_)
00271 + toString(_falseExp_);
00272 }
00273 }