package jqian.sootex.location;
import jqian.Global;
import soot.Scene;
import soot.SootField;
import soot.Type;
public class UnknownInstObject extends CommonInstObject{
// auto clean
private static UnknownInstObject _instance;
protected static void reset(){
_instance = null;
}
public static UnknownInstObject v(){
if(_instance==null){
_instance = new UnknownInstObject();
Global.v().regesiterResetableGlobals(UnknownInstObject.class);
}
return _instance;
}
public static class UnknownHeapField extends HeapField {
private UnknownHeapField(CommonInstObject obj){
super(obj, AnyField.v());
}
@Override
public Type getType() {
return Scene.v().getObjectType();
}
}
protected final HeapField _field;
private UnknownInstObject() {
_field = new UnknownHeapField(this);
}
public Type getType(){
return Scene.v().getObjectType();
}
public HeapField getField(final SootField field){
return _field;
}
public HeapField getField(){
return _field;
}
public HeapField[] getAllFields(){
HeapField[] fields = new HeapField[1];
fields[0] = _field;
return fields;
}
public String toString(){
return "*";
}
}