1 2 3 package soot.jimple.parser.node; 4 5 import java.util.*; 6 import soot.jimple.parser.analysis.*; 7 8 public final class AInvokeStatement extends PStatement 9 { 10 private PInvokeExpr _invokeExpr_; 11 private TSemicolon _semicolon_; 12 13 public AInvokeStatement() 14 { 15 } 16 17 public AInvokeStatement( 18 PInvokeExpr _invokeExpr_, 19 TSemicolon _semicolon_) 20 { 21 setInvokeExpr(_invokeExpr_); 22 23 setSemicolon(_semicolon_); 24 25 } 26 public Object clone() 27 { 28 return new AInvokeStatement( 29 (PInvokeExpr) cloneNode(_invokeExpr_), 30 (TSemicolon) cloneNode(_semicolon_)); 31 } 32 33 public void apply(Switch sw) 34 { 35 ((Analysis) sw).caseAInvokeStatement(this); 36 } 37 38 public PInvokeExpr getInvokeExpr() 39 { 40 return _invokeExpr_; 41 } 42 43 public void setInvokeExpr(PInvokeExpr node) 44 { 45 if(_invokeExpr_ != null) 46 { 47 _invokeExpr_.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 _invokeExpr_ = node; 61 } 62 63 public TSemicolon getSemicolon() 64 { 65 return _semicolon_; 66 } 67 68 public void setSemicolon(TSemicolon node) 69 { 70 if(_semicolon_ != null) 71 { 72 _semicolon_.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 _semicolon_ = node; 86 } 87 88 public String toString() 89 { 90 return "" 91 + toString(_invokeExpr_) 92 + toString(_semicolon_); 93 } 94 95 void removeChild(Node child) 96 { 97 if(_invokeExpr_ == child) 98 { 99 _invokeExpr_ = null; 100 return; 101 } 102 103 if(_semicolon_ == child) 104 { 105 _semicolon_ = null; 106 return; 107 } 108 109 } 110 111 void replaceChild(Node oldChild, Node newChild) 112 { 113 if(_invokeExpr_ == oldChild) 114 { 115 setInvokeExpr((PInvokeExpr) newChild); 116 return; 117 } 118 119 if(_semicolon_ == oldChild) 120 { 121 setSemicolon((TSemicolon) newChild); 122 return; 123 } 124 125 } 126 } 127 | Popular Tags |