/**
* This file is licensed under the University of Illinois/NCSA Open Source License. See LICENSE.TXT for details.
*/
package edu.illinois.keshmesh.walaconfig;
import com.ibm.wala.ipa.callgraph.Context;
import com.ibm.wala.ipa.callgraph.ContextItem;
import com.ibm.wala.ipa.callgraph.ContextKey;
import com.ibm.wala.ipa.callgraph.propagation.InstanceKey;
/**
*
* @author Mohsen Vakilian
* @author Stas Negara
*
*
*/
public class ReceiverStringContext implements Context {
private final ReceiverString receiverString;
public ReceiverStringContext(ReceiverString receiverString) {
if (receiverString == null) {
throw new IllegalArgumentException("null receiverString");
}
this.receiverString = receiverString;
}
public InstanceKey getReceiver() {
return receiverString.getReceiver();
}
@Override
public boolean equals(Object o) {
return (o instanceof ReceiverStringContext) && ((ReceiverStringContext) o).receiverString.equals(receiverString);
}
@Override
public int hashCode() {
return receiverString.hashCode();
}
@Override
public String toString() {
return "ReceiverStringContext: " + receiverString.toString();
}
public ContextItem get(ContextKey name) {
if (KObjectSensitiveContextSelector.RECEIVER_STRING.equals(name)) {
return receiverString;
} else {
return null;
}
}
}