1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 package org.kit.furia.fragment.soot.representation.internal;
33
34 import soot.*;
35 import org.kit.furia.fragment.soot.representation.*;
36 import soot.jimple.internal.*;
37 import java.util.*;
38
39 public class FStaticInvokeExpr extends AbstractStaticInvokeExpr
40 implements Qable, SpecialConstructContainer
41 {
42
43
44
45 private static final long serialVersionUID = 5584249147548620479L;
46
47 public FStaticInvokeExpr(SootMethodRef methodRef, List args)
48 {
49 super(methodRef, new ValueBox[args.size()]);
50
51 for(int i = 0; i < args.size(); i++)
52 this.argBoxes[i] = Frimp.v().newExprBox((Value) args.get(i));
53 }
54
55
56 public Object clone()
57 {
58 ArrayList clonedArgs = new ArrayList(getArgCount());
59
60 for(int i = 0; i < getArgCount(); i++) {
61 clonedArgs.add(i, Frimp.cloneIfNecessary(getArg(i)));
62 }
63
64 return new FStaticInvokeExpr(methodRef, clonedArgs);
65 }
66
67 public String toQ() throws Exception{
68
69 StringBuffer buffer = new StringBuffer();
70
71 buffer.append(FuriaConstructDefinitions.FURIA_fstaticInvoque+ "(" + Frimp.toQ(methodRef));
72
73 for(int i = 0; i < argBoxes.length; i++)
74 {
75
76 buffer.append(",");
77
78 buffer.append(Frimp.toQ(argBoxes[i].getValue()));
79 }
80
81 buffer.append(")");
82
83 return buffer.toString();
84 }
85
86 public List getContainedSpecialConstructs() {
87 List res = new LinkedList();
88 res.add(methodRef);
89 return res;
90 }
91
92 }