00001 package edu.ksu.cis.bandera.specification.node;
00002
00003
00004
00005 import java.util.*;
00006 import edu.ksu.cis.bandera.specification.analysis.*;
00007
00008 public final class APredicateExp extends PExp
00009 {
00010 private PName _name_;
00011 private TLParen _lParen_;
00012 private PArgs _args_;
00013 private TRParen _rParen_;
00014
00015 public APredicateExp()
00016 {
00017 }
00018 public APredicateExp(
00019 PName _name_,
00020 TLParen _lParen_,
00021 PArgs _args_,
00022 TRParen _rParen_)
00023 {
00024 setName(_name_);
00025
00026 setLParen(_lParen_);
00027
00028 setArgs(_args_);
00029
00030 setRParen(_rParen_);
00031
00032 }
00033 public void apply(Switch sw)
00034 {
00035 ((Analysis) sw).caseAPredicateExp(this);
00036 }
00037 public Object clone()
00038 {
00039 return new APredicateExp(
00040 (PName) cloneNode(_name_),
00041 (TLParen) cloneNode(_lParen_),
00042 (PArgs) cloneNode(_args_),
00043 (TRParen) cloneNode(_rParen_));
00044 }
00045 public PArgs getArgs()
00046 {
00047 return _args_;
00048 }
00049 public TLParen getLParen()
00050 {
00051 return _lParen_;
00052 }
00053 public PName getName()
00054 {
00055 return _name_;
00056 }
00057 public TRParen getRParen()
00058 {
00059 return _rParen_;
00060 }
00061 void removeChild(Node child)
00062 {
00063 if(_name_ == child)
00064 {
00065 _name_ = null;
00066 return;
00067 }
00068
00069 if(_lParen_ == child)
00070 {
00071 _lParen_ = null;
00072 return;
00073 }
00074
00075 if(_args_ == child)
00076 {
00077 _args_ = null;
00078 return;
00079 }
00080
00081 if(_rParen_ == child)
00082 {
00083 _rParen_ = 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(_lParen_ == oldChild)
00097 {
00098 setLParen((TLParen) newChild);
00099 return;
00100 }
00101
00102 if(_args_ == oldChild)
00103 {
00104 setArgs((PArgs) newChild);
00105 return;
00106 }
00107
00108 if(_rParen_ == oldChild)
00109 {
00110 setRParen((TRParen) newChild);
00111 return;
00112 }
00113
00114 }
00115 public void setArgs(PArgs node)
00116 {
00117 if(_args_ != null)
00118 {
00119 _args_.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 _args_ = node;
00133 }
00134 public void setLParen(TLParen node)
00135 {
00136 if(_lParen_ != null)
00137 {
00138 _lParen_.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 _lParen_ = 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 setRParen(TRParen node)
00173 {
00174 if(_rParen_ != null)
00175 {
00176 _rParen_.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 _rParen_ = node;
00190 }
00191 public String toString()
00192 {
00193 return ""
00194 + toString(_name_)
00195 + toString(_lParen_)
00196 + toString(_args_)
00197 + toString(_rParen_);
00198 }
00199 }