1 package org.softevo.jdynpur.eval;
2
3 import java.util.HashSet;
4
5 import org.softevo.util.asm.MethodIdentifier;
6
7 public class ExtendedMethodIdentifier extends MethodIdentifier {
8
9 private static final long serialVersionUID = 4979314094302854729L;
10
11 private HashSet<Integer> immutableParameters;
12
13 private HashSet<Integer> mutableParameters;
14
15 private String purity;
16
17 private boolean isStatic;
18
19 public static final String HEAPPURE = "HEAP PURE";
20
21 public static final String PURE = "PURE";
22
23 public static final String IMPURE = "NOT HEAP PURE";
24
25 public ExtendedMethodIdentifier(String className, String methodName,
26 String signature, String purity,
27 HashSet<Integer> immutableParameters,
28 HashSet<Integer> mutableParameters) {
29 super(className, methodName, signature, -1);
30 this.purity = purity.trim();
31 this.immutableParameters = immutableParameters;
32 this.mutableParameters = mutableParameters;
33 }
34
35 public HashSet<Integer> getImmutableParameters() {
36 return immutableParameters;
37 }
38
39 public String getPurity() {
40 return purity;
41 }
42
43 public boolean isPure() {
44 return purity.startsWith(PURE) || purity.startsWith(HEAPPURE);
45 }
46 public void addImutableParameter(int index) {
47 immutableParameters.add(index);
48 }
49
50 public void addMutableParameter(int index) {
51 mutableParameters.add(index);
52 }
53
54 public HashSet<Integer> getMutableParameters() {
55 return mutableParameters;
56 }
57
58 public boolean isStatic() {
59 return isStatic;
60 }
61
62 public void setStatic(boolean value) {
63 this.isStatic = value;
64 }
65 }