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 }