public void addAllCallbacks(Set<Function<Object, Object>> callback) { if (!hasAllCallbacks(callbacks)) { if (callbacks == null) { callbacks = HashSetFactory.make(1); } callbacks.addAll(callback); for (CGNode p : Iterator2Iterable.make(getCallGraph().getPredNodes(this))) { ((AstCGNode) p).addAllCallbacks(callback); } } }
public void addCallback(Function<Object, Object> callback) { if (!hasCallback(callback)) { if (callbacks == null) { callbacks = HashSetFactory.make(1); } callbacks.add(callback); for (CGNode p : Iterator2Iterable.make(getCallGraph().getPredNodes(this))) { ((AstCGNode) p).addCallback(callback); } } }
@Override public boolean equals(Object o) { if (!(o instanceof LexicalOperator)) { return false; } else { LexicalOperator other = (LexicalOperator) o; if (isLoad != other.isLoad) { return false; } else if (!node.equals(other.node)) { return false; } else if (accesses.length != other.accesses.length) { return false; } else { for (int i = 0; i < accesses.length; i++) { if (!accesses[i].equals(other.accesses[i])) { return false; } } for (int i = 0; i < accesses.length; i++) { if (!accesses[i].equals(other.accesses[i])) { return false; } } return true; } } }
@Override public boolean equals(Object o) { if (!(o instanceof LexicalOperator)) { return false; } else { LexicalOperator other = (LexicalOperator) o; if (isLoad != other.isLoad) { return false; } else if (!node.equals(other.node)) { return false; } else if (accesses.length != other.accesses.length) { return false; } else { for (int i = 0; i < accesses.length; i++) { if (!accesses[i].equals(other.accesses[i])) { return false; } } for (int i = 0; i < accesses.length; i++) { if (!accesses[i].equals(other.accesses[i])) { return false; } } return true; } } }
@Override protected ExplicitNode makeNode(IMethod method, Context context) { return new AstCGNode(method, context); }
@Override public boolean addTarget(CallSiteReference site, CGNode node) { if (super.addTarget(site, node)) { if (((AstCGNode) node).callbacks != null) { ((AstCGNode) node).fireCallbacks(); addAllCallbacks(((AstCGNode) node).callbacks); } return true; } else { return false; } } }
@Override public boolean addTarget(CallSiteReference site, CGNode node) { if (super.addTarget(site, node)) { if (((AstCGNode) node).callbacks != null) { ((AstCGNode) node).fireCallbacks(); addAllCallbacks(((AstCGNode) node).callbacks); } return true; } else { return false; } } }
@Override public int hashCode() { return node.hashCode() * accesses[0].hashCode() * accesses.length; } }
@Override public int hashCode() { return node.hashCode() * accesses[0].hashCode() * accesses.length; } }
public void addAllCallbacks(Set<Function<Object, Object>> callback) { if (!hasAllCallbacks(callbacks)) { if (callbacks == null) { callbacks = HashSetFactory.make(1); } callbacks.addAll(callback); for (CGNode p : Iterator2Iterable.make(getCallGraph().getPredNodes(this))) { ((AstCGNode) p).addAllCallbacks(callback); } } }
@Override protected ExplicitNode makeNode(IMethod method, Context context) { return new AstCGNode(method, context); }
public void addCallback(Function<Object, Object> callback) { if (!hasCallback(callback)) { if (callbacks == null) { callbacks = HashSetFactory.make(1); } callbacks.add(callback); for (CGNode p : Iterator2Iterable.make(getCallGraph().getPredNodes(this))) { ((AstCGNode) p).addCallback(callback); } } }