1 2 3 package soot.jimple.parser.node; 4 5 import java.util.*; 6 import soot.jimple.parser.analysis.*; 7 8 public final class AArrayDescriptor extends PArrayDescriptor 9 { 10 private TLBracket _lBracket_; 11 private PImmediate _immediate_; 12 private TRBracket _rBracket_; 13 14 public AArrayDescriptor() 15 { 16 } 17 18 public AArrayDescriptor( 19 TLBracket _lBracket_, 20 PImmediate _immediate_, 21 TRBracket _rBracket_) 22 { 23 setLBracket(_lBracket_); 24 25 setImmediate(_immediate_); 26 27 setRBracket(_rBracket_); 28 29 } 30 public Object clone() 31 { 32 return new AArrayDescriptor( 33 (TLBracket) cloneNode(_lBracket_), 34 (PImmediate) cloneNode(_immediate_), 35 (TRBracket) cloneNode(_rBracket_)); 36 } 37 38 public void apply(Switch sw) 39 { 40 ((Analysis) sw).caseAArrayDescriptor(this); 41 } 42 43 public TLBracket getLBracket() 44 { 45 return _lBracket_; 46 } 47 48 public void setLBracket(TLBracket node) 49 { 50 if(_lBracket_ != null) 51 { 52 _lBracket_.parent(null); 53 } 54 55 if(node != null) 56 { 57 if(node.parent() != null) 58 { 59 node.parent().removeChild(node); 60 } 61 62 node.parent(this); 63 } 64 65 _lBracket_ = node; 66 } 67 68 public PImmediate getImmediate() 69 { 70 return _immediate_; 71 } 72 73 public void setImmediate(PImmediate node) 74 { 75 if(_immediate_ != null) 76 { 77 _immediate_.parent(null); 78 } 79 80 if(node != null) 81 { 82 if(node.parent() != null) 83 { 84 node.parent().removeChild(node); 85 } 86 87 node.parent(this); 88 } 89 90 _immediate_ = node; 91 } 92 93 public TRBracket getRBracket() 94 { 95 return _rBracket_; 96 } 97 98 public void setRBracket(TRBracket node) 99 { 100 if(_rBracket_ != null) 101 { 102 _rBracket_.parent(null); 103 } 104 105 if(node != null) 106 { 107 if(node.parent() != null) 108 { 109 node.parent().removeChild(node); 110 } 111 112 node.parent(this); 113 } 114 115 _rBracket_ = node; 116 } 117 118 public String toString() 119 { 120 return "" 121 + toString(_lBracket_) 122 + toString(_immediate_) 123 + toString(_rBracket_); 124 } 125 126 void removeChild(Node child) 127 { 128 if(_lBracket_ == child) 129 { 130 _lBracket_ = null; 131 return; 132 } 133 134 if(_immediate_ == child) 135 { 136 _immediate_ = null; 137 return; 138 } 139 140 if(_rBracket_ == child) 141 { 142 _rBracket_ = null; 143 return; 144 } 145 146 } 147 148 void replaceChild(Node oldChild, Node newChild) 149 { 150 if(_lBracket_ == oldChild) 151 { 152 setLBracket((TLBracket) newChild); 153 return; 154 } 155 156 if(_immediate_ == oldChild) 157 { 158 setImmediate((PImmediate) newChild); 159 return; 160 } 161 162 if(_rBracket_ == oldChild) 163 { 164 setRBracket((TRBracket) newChild); 165 return; 166 } 167 168 } 169 } 170 | Popular Tags |