1 2 3 package soot.jimple.parser.node; 4 5 import java.util.*; 6 import soot.jimple.parser.analysis.*; 7 8 public final class AArrayRef extends PArrayRef 9 { 10 private TIdentifier _identifier_; 11 private PFixedArrayDescriptor _fixedArrayDescriptor_; 12 13 public AArrayRef() 14 { 15 } 16 17 public AArrayRef( 18 TIdentifier _identifier_, 19 PFixedArrayDescriptor _fixedArrayDescriptor_) 20 { 21 setIdentifier(_identifier_); 22 23 setFixedArrayDescriptor(_fixedArrayDescriptor_); 24 25 } 26 public Object clone() 27 { 28 return new AArrayRef( 29 (TIdentifier) cloneNode(_identifier_), 30 (PFixedArrayDescriptor) cloneNode(_fixedArrayDescriptor_)); 31 } 32 33 public void apply(Switch sw) 34 { 35 ((Analysis) sw).caseAArrayRef(this); 36 } 37 38 public TIdentifier getIdentifier() 39 { 40 return _identifier_; 41 } 42 43 public void setIdentifier(TIdentifier node) 44 { 45 if(_identifier_ != null) 46 { 47 _identifier_.parent(null); 48 } 49 50 if(node != null) 51 { 52 if(node.parent() != null) 53 { 54 node.parent().removeChild(node); 55 } 56 57 node.parent(this); 58 } 59 60 _identifier_ = node; 61 } 62 63 public PFixedArrayDescriptor getFixedArrayDescriptor() 64 { 65 return _fixedArrayDescriptor_; 66 } 67 68 public void setFixedArrayDescriptor(PFixedArrayDescriptor node) 69 { 70 if(_fixedArrayDescriptor_ != null) 71 { 72 _fixedArrayDescriptor_.parent(null); 73 } 74 75 if(node != null) 76 { 77 if(node.parent() != null) 78 { 79 node.parent().removeChild(node); 80 } 81 82 node.parent(this); 83 } 84 85 _fixedArrayDescriptor_ = node; 86 } 87 88 public String toString() 89 { 90 return "" 91 + toString(_identifier_) 92 + toString(_fixedArrayDescriptor_); 93 } 94 95 void removeChild(Node child) 96 { 97 if(_identifier_ == child) 98 { 99 _identifier_ = null; 100 return; 101 } 102 103 if(_fixedArrayDescriptor_ == child) 104 { 105 _fixedArrayDescriptor_ = null; 106 return; 107 } 108 109 } 110 111 void replaceChild(Node oldChild, Node newChild) 112 { 113 if(_identifier_ == oldChild) 114 { 115 setIdentifier((TIdentifier) newChild); 116 return; 117 } 118 119 if(_fixedArrayDescriptor_ == oldChild) 120 { 121 setFixedArrayDescriptor((PFixedArrayDescriptor) newChild); 122 return; 123 } 124 125 } 126 } 127 | Popular Tags |