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 AOrInclusiveOrExp extends PInclusiveOrExp
00042 {
00043 private PInclusiveOrExp _inclusiveOrExp_;
00044 private TBitOr _bitOr_;
00045 private PExclusiveOrExp _exclusiveOrExp_;
00046
00047 public AOrInclusiveOrExp()
00048 {
00049 }
00050 public AOrInclusiveOrExp(
00051 PInclusiveOrExp _inclusiveOrExp_,
00052 TBitOr _bitOr_,
00053 PExclusiveOrExp _exclusiveOrExp_)
00054 {
00055 setInclusiveOrExp(_inclusiveOrExp_);
00056
00057 setBitOr(_bitOr_);
00058
00059 setExclusiveOrExp(_exclusiveOrExp_);
00060
00061 }
00062 public void apply(Switch sw)
00063 {
00064 ((Analysis) sw).caseAOrInclusiveOrExp(this);
00065 }
00066 public Object clone()
00067 {
00068 return new AOrInclusiveOrExp(
00069 (PInclusiveOrExp) cloneNode(_inclusiveOrExp_),
00070 (TBitOr) cloneNode(_bitOr_),
00071 (PExclusiveOrExp) cloneNode(_exclusiveOrExp_));
00072 }
00073 public TBitOr getBitOr()
00074 {
00075 return _bitOr_;
00076 }
00077 public PExclusiveOrExp getExclusiveOrExp()
00078 {
00079 return _exclusiveOrExp_;
00080 }
00081 public PInclusiveOrExp getInclusiveOrExp()
00082 {
00083 return _inclusiveOrExp_;
00084 }
00085 void removeChild(Node child)
00086 {
00087 if(_inclusiveOrExp_ == child)
00088 {
00089 _inclusiveOrExp_ = null;
00090 return;
00091 }
00092
00093 if(_bitOr_ == child)
00094 {
00095 _bitOr_ = null;
00096 return;
00097 }
00098
00099 if(_exclusiveOrExp_ == child)
00100 {
00101 _exclusiveOrExp_ = null;
00102 return;
00103 }
00104
00105 }
00106 void replaceChild(Node oldChild, Node newChild)
00107 {
00108 if(_inclusiveOrExp_ == oldChild)
00109 {
00110 setInclusiveOrExp((PInclusiveOrExp) newChild);
00111 return;
00112 }
00113
00114 if(_bitOr_ == oldChild)
00115 {
00116 setBitOr((TBitOr) newChild);
00117 return;
00118 }
00119
00120 if(_exclusiveOrExp_ == oldChild)
00121 {
00122 setExclusiveOrExp((PExclusiveOrExp) newChild);
00123 return;
00124 }
00125
00126 }
00127 public void setBitOr(TBitOr node)
00128 {
00129 if(_bitOr_ != null)
00130 {
00131 _bitOr_.parent(null);
00132 }
00133
00134 if(node != null)
00135 {
00136 if(node.parent() != null)
00137 {
00138 node.parent().removeChild(node);
00139 }
00140
00141 node.parent(this);
00142 }
00143
00144 _bitOr_ = node;
00145 }
00146 public void setExclusiveOrExp(PExclusiveOrExp node)
00147 {
00148 if(_exclusiveOrExp_ != null)
00149 {
00150 _exclusiveOrExp_.parent(null);
00151 }
00152
00153 if(node != null)
00154 {
00155 if(node.parent() != null)
00156 {
00157 node.parent().removeChild(node);
00158 }
00159
00160 node.parent(this);
00161 }
00162
00163 _exclusiveOrExp_ = node;
00164 }
00165 public void setInclusiveOrExp(PInclusiveOrExp node)
00166 {
00167 if(_inclusiveOrExp_ != null)
00168 {
00169 _inclusiveOrExp_.parent(null);
00170 }
00171
00172 if(node != null)
00173 {
00174 if(node.parent() != null)
00175 {
00176 node.parent().removeChild(node);
00177 }
00178
00179 node.parent(this);
00180 }
00181
00182 _inclusiveOrExp_ = node;
00183 }
00184 public String toString()
00185 {
00186 return ""
00187 + toString(_inclusiveOrExp_)
00188 + toString(_bitOr_)
00189 + toString(_exclusiveOrExp_);
00190 }
00191 }