View Javadoc

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  }