public class ZeroCallEdgeResolver<Field,Fact,Stmt,Method> extends ResolverTemplate<Field,Fact,Stmt,Method,CallEdge<Field,Fact,Stmt,Method>>
debugger, incomingEdges, resolvedAccessPath
Constructor and Description |
---|
ZeroCallEdgeResolver(PerAccessPathMethodAnalyzer<Field,Fact,Stmt,Method> analyzer,
ZeroHandler<Field> zeroHandler,
Debugger<Field,Fact,Stmt,Method> debugger) |
Modifier and Type | Method and Description |
---|---|
void |
applySummaries(WrappedFactAtStatement<Field,Fact,Stmt,Method> factAtStmt) |
protected ResolverTemplate<Field,Fact,Stmt,Method,CallEdge<Field,Fact,Stmt,Method>> |
createNestedResolver(AccessPath<Field> newAccPath) |
boolean |
equals(java.lang.Object obj) |
protected AccessPath<Field> |
getAccessPathOf(CallEdge<Field,Fact,Stmt,Method> inc) |
protected ZeroCallEdgeResolver<Field,Fact,Stmt,Method> |
getOrCreateNestedResolver(AccessPath<Field> newAccPath) |
int |
hashCode() |
boolean |
hasIncomingEdges() |
void |
interest(Resolver<Field,Fact,Stmt,Method> resolver) |
protected void |
log(java.lang.String message) |
protected void |
processIncomingGuaranteedPrefix(CallEdge<Field,Fact,Stmt,Method> inc) |
protected void |
processIncomingPotentialPrefix(CallEdge<Field,Fact,Stmt,Method> inc) |
void |
resolve(FlowFunction.Constraint<Field> constraint,
InterestCallback<Field,Fact,Stmt,Method> callback) |
java.lang.String |
toString() |
addIncoming, isLocked, lock, unlock
canBeResolvedEmpty, isInterestGiven, registerCallback
public void resolve(FlowFunction.Constraint<Field> constraint, InterestCallback<Field,Fact,Stmt,Method> callback)
protected ZeroCallEdgeResolver<Field,Fact,Stmt,Method> getOrCreateNestedResolver(AccessPath<Field> newAccPath)
public java.lang.String toString()
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
protected AccessPath<Field> getAccessPathOf(CallEdge<Field,Fact,Stmt,Method> inc)
getAccessPathOf
in class ResolverTemplate<Field,Fact,Stmt,Method,CallEdge<Field,Fact,Stmt,Method>>
protected void processIncomingGuaranteedPrefix(CallEdge<Field,Fact,Stmt,Method> inc)
processIncomingGuaranteedPrefix
in class ResolverTemplate<Field,Fact,Stmt,Method,CallEdge<Field,Fact,Stmt,Method>>
protected void processIncomingPotentialPrefix(CallEdge<Field,Fact,Stmt,Method> inc)
processIncomingPotentialPrefix
in class ResolverTemplate<Field,Fact,Stmt,Method,CallEdge<Field,Fact,Stmt,Method>>
protected ResolverTemplate<Field,Fact,Stmt,Method,CallEdge<Field,Fact,Stmt,Method>> createNestedResolver(AccessPath<Field> newAccPath)
createNestedResolver
in class ResolverTemplate<Field,Fact,Stmt,Method,CallEdge<Field,Fact,Stmt,Method>>
public void applySummaries(WrappedFactAtStatement<Field,Fact,Stmt,Method> factAtStmt)
protected void log(java.lang.String message)
public boolean hasIncomingEdges()