convert to Java 8 Function and Predicate

This commit is contained in:
Julian Dolby 2017-11-11 20:29:04 -05:00
parent 26d354d1fc
commit 8d65788aef
98 changed files with 188 additions and 411 deletions

View File

@ -15,6 +15,7 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.function.Predicate;
import com.ibm.wala.cast.ir.ssa.AstAssertInstruction;
import com.ibm.wala.cast.java.ipa.modref.AstJavaModRef;
@ -35,7 +36,6 @@ import com.ibm.wala.ssa.SSAInstruction;
import com.ibm.wala.ssa.SSAMonitorInstruction;
import com.ibm.wala.ssa.SSAPutInstruction;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.graph.traverse.DFS;

View File

@ -11,3 +11,4 @@ javacProjectSettings = true
bin.excludes = dat/core-modules/.eslintrc,\
dat/core-modules/.gitignore,\
dat/core-modules/.gitkeep
javacDefaultEncoding.. = UTF-8

View File

@ -16,6 +16,7 @@ import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Properties;
import java.util.function.Supplier;
import org.junit.Assert;
@ -35,7 +36,6 @@ import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis;
import com.ibm.wala.ipa.cha.ClassHierarchyException;
import com.ibm.wala.util.NullProgressMonitor;
import com.ibm.wala.util.ProgressMaster;
import com.ibm.wala.util.functions.Function;
import com.ibm.wala.util.io.CommandLine;
import com.ibm.wala.util.io.FileProvider;
import com.ibm.wala.util.io.FileUtil;
@ -80,7 +80,7 @@ public class HTMLCGBuilder {
* @throws IOException
* @throws ClassHierarchyException
*/
public static CGBuilderResult buildHTMLCG(String src, int timeout, CGBuilderType builderType, Function<Void, JSSourceExtractor> fExtractor)
public static CGBuilderResult buildHTMLCG(String src, int timeout, CGBuilderType builderType, Supplier<JSSourceExtractor> fExtractor)
throws ClassHierarchyException, IOException {
CGBuilderResult res = new CGBuilderResult();
URL url = null;

View File

@ -16,6 +16,7 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.util.Collections;
import java.util.Set;
import java.util.function.Predicate;
import com.ibm.wala.cast.ipa.callgraph.CAstAnalysisScope;
import com.ibm.wala.cast.ir.ssa.AstIRFactory;
@ -41,7 +42,6 @@ import com.ibm.wala.ssa.IR;
import com.ibm.wala.ssa.IRFactory;
import com.ibm.wala.ssa.SSAOptions;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.WalaException;
import com.ibm.wala.util.collections.Pair;

View File

@ -15,6 +15,7 @@ import java.net.URL;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
import java.util.function.Supplier;
import com.ibm.wala.cast.ipa.callgraph.CAstAnalysisScope;
import com.ibm.wala.cast.ir.ssa.AstIRFactory;
@ -45,7 +46,6 @@ import com.ibm.wala.util.MonitorUtil.IProgressMonitor;
import com.ibm.wala.util.NullProgressMonitor;
import com.ibm.wala.util.WalaException;
import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.functions.Function;
/**
* Utility class for building call graphs.
@ -89,11 +89,11 @@ public class FieldBasedCGUtil {
this.translatorFactory = translatorFactory;
}
public Pair<JSCallGraph, PointerAnalysis<ObjectVertex>> buildCG(URL url, BuilderType builderType, boolean supportFullPointerAnalysis, Function<Void, JSSourceExtractor> fExtractor) throws WalaException, CancelException {
public Pair<JSCallGraph, PointerAnalysis<ObjectVertex>> buildCG(URL url, BuilderType builderType, boolean supportFullPointerAnalysis, Supplier<JSSourceExtractor> fExtractor) throws WalaException, CancelException {
return buildCG(url, builderType, new NullProgressMonitor(), supportFullPointerAnalysis, fExtractor);
}
public Pair<JSCallGraph, PointerAnalysis<ObjectVertex>> buildCG(URL url, BuilderType builderType, IProgressMonitor monitor, boolean supportFullPointerAnalysis, Function<Void, JSSourceExtractor> fExtractor) throws WalaException, CancelException {
public Pair<JSCallGraph, PointerAnalysis<ObjectVertex>> buildCG(URL url, BuilderType builderType, IProgressMonitor monitor, boolean supportFullPointerAnalysis, Supplier<JSSourceExtractor> fExtractor) throws WalaException, CancelException {
if (url.getFile().endsWith(".js")) {
return buildScriptCG(url, builderType, monitor, supportFullPointerAnalysis);
} else {
@ -116,7 +116,7 @@ public class FieldBasedCGUtil {
return buildCG(loaders, scripts, builderType, monitor, supportFullPointerAnalysis);
}
public Pair<JSCallGraph, PointerAnalysis<ObjectVertex>> buildPageCG(URL url, BuilderType builderType, IProgressMonitor monitor, boolean supportFullPointerAnalysis, Function<Void, JSSourceExtractor> fExtractor) throws WalaException, CancelException {
public Pair<JSCallGraph, PointerAnalysis<ObjectVertex>> buildPageCG(URL url, BuilderType builderType, IProgressMonitor monitor, boolean supportFullPointerAnalysis, Supplier<JSSourceExtractor> fExtractor) throws WalaException, CancelException {
JavaScriptLoaderFactory loaders = new WebPageLoaderFactory(translatorFactory);
SourceModule[] scripts = JSCallGraphBuilderUtil.makeHtmlScope(url, loaders, fExtractor);
return buildCG(loaders, scripts, builderType, monitor, supportFullPointerAnalysis);

View File

@ -16,6 +16,7 @@ import java.io.IOException;
import java.net.JarURLConnection;
import java.net.URL;
import java.util.Set;
import java.util.function.Supplier;
import org.junit.Assert;
@ -52,7 +53,6 @@ import com.ibm.wala.ssa.IRFactory;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.WalaException;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.functions.Function;
import com.ibm.wala.util.io.FileProvider;
/**
@ -169,11 +169,11 @@ public class JSCallGraphBuilderUtil extends com.ibm.wala.cast.js.ipa.callgraph.J
return CG;
}
public static JSCFABuilder makeHTMLCGBuilder(URL url, Function<Void, JSSourceExtractor> fExtractor) throws WalaException {
public static JSCFABuilder makeHTMLCGBuilder(URL url, Supplier<JSSourceExtractor> fExtractor) throws WalaException {
return makeHTMLCGBuilder(url, CGBuilderType.ZERO_ONE_CFA, fExtractor);
}
public static JSCFABuilder makeHTMLCGBuilder(URL url, CGBuilderType builderType, Function<Void, JSSourceExtractor> fExtractor) throws WalaException {
public static JSCFABuilder makeHTMLCGBuilder(URL url, CGBuilderType builderType, Supplier<JSSourceExtractor> fExtractor) throws WalaException {
IRFactory<IMethod> irFactory = AstIRFactory.makeDefaultFactory();
CAstRewriterFactory<?, ?> preprocessor = builderType.extractCorrelatedPairs ? new CorrelatedPairExtractorFactory(translatorFactory, url) : null;
JavaScriptLoaderFactory loaders = new WebPageLoaderFactory(translatorFactory, preprocessor);
@ -186,7 +186,7 @@ public class JSCallGraphBuilderUtil extends com.ibm.wala.cast.js.ipa.callgraph.J
return builder;
}
public static SourceModule[] makeHtmlScope(URL url, JavaScriptLoaderFactory loaders, Function<Void,JSSourceExtractor> fExtractor) {
public static SourceModule[] makeHtmlScope(URL url, JavaScriptLoaderFactory loaders, Supplier<JSSourceExtractor> fExtractor) {
Set<Module> scripts = HashSetFactory.make();
JavaScriptLoader.addBootstrapFile(WebUtil.preamble);
@ -205,14 +205,14 @@ public class JSCallGraphBuilderUtil extends com.ibm.wala.cast.js.ipa.callgraph.J
return scriptsArray;
}
public static CallGraph makeHTMLCG(URL url, Function<Void, JSSourceExtractor> fExtractor) throws IllegalArgumentException, CancelException, WalaException {
public static CallGraph makeHTMLCG(URL url, Supplier<JSSourceExtractor> fExtractor) throws IllegalArgumentException, CancelException, WalaException {
SSAPropagationCallGraphBuilder b = makeHTMLCGBuilder(url, fExtractor);
CallGraph CG = b.makeCallGraph(b.getOptions());
dumpCG(b.getCFAContextInterpreter(), b.getPointerAnalysis(), CG);
return CG;
}
public static CallGraph makeHTMLCG(URL url, CGBuilderType builderType, Function<Void, JSSourceExtractor> fExtractor) throws IllegalArgumentException,
public static CallGraph makeHTMLCG(URL url, CGBuilderType builderType, Supplier<JSSourceExtractor> fExtractor) throws IllegalArgumentException,
CancelException, WalaException {
PropagationCallGraphBuilder b = makeHTMLCGBuilder(url, builderType, fExtractor);
CallGraph CG = b.makeCallGraph(b.getOptions());

View File

@ -15,7 +15,8 @@ import java.net.URL;
import java.util.Collections;
import java.util.Iterator;
import java.util.Set;
import java.util.function.Function;
import java.util.function.Predicate;
import org.junit.Assert;
import org.junit.Test;
@ -53,19 +54,17 @@ import com.ibm.wala.ssa.SymbolTable;
import com.ibm.wala.types.MethodReference;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.NullProgressMonitor;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.WalaException;
import com.ibm.wala.util.collections.EmptyIterator;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.collections.MapIterator;
import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.functions.Function;
import com.ibm.wala.util.intset.OrdinalSet;
import com.ibm.wala.util.strings.Atom;
public abstract class TestPointerAnalyses {
private final class CheckPointers extends Predicate<Pair<Set<Pair<CGNode, NewSiteReference>>, Set<Pair<CGNode, NewSiteReference>>>> {
private final class CheckPointers implements Predicate<Pair<Set<Pair<CGNode, NewSiteReference>>, Set<Pair<CGNode, NewSiteReference>>>> {
private Set<Pair<String,Integer>> map(Set<Pair<CGNode, NewSiteReference>> sites) {
Set<Pair<String,Integer>> result = HashSetFactory.make();
for(Pair<CGNode,NewSiteReference> s : sites) {

View File

@ -11,10 +11,11 @@
package com.ibm.wala.cast.js.callgraph.fieldbased.flowgraph;
import java.util.function.Function;
import com.ibm.wala.classLoader.IMethod;
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
import com.ibm.wala.ipa.cha.IClassHierarchy;
import com.ibm.wala.util.functions.Function;
public class FilteredFlowGraphBuilder extends FlowGraphBuilder {

View File

@ -14,6 +14,7 @@ import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.function.Predicate;
import com.ibm.wala.analysis.pointers.HeapGraph;
import com.ibm.wala.cast.ipa.callgraph.AstHeapModel;
@ -57,7 +58,6 @@ import com.ibm.wala.ssa.SSANewInstruction;
import com.ibm.wala.types.TypeReference;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.MonitorUtil.IProgressMonitor;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.CompoundIterator;
import com.ibm.wala.util.collections.HashMapFactory;
import com.ibm.wala.util.collections.HashSetFactory;

View File

@ -19,17 +19,17 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.Stack;
import java.util.function.Supplier;
import com.ibm.wala.cast.tree.CAstSourcePositionMap.Position;
import com.ibm.wala.util.collections.HashMapFactory;
import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.functions.Function;
public class DefaultSourceExtractor extends DomLessSourceExtractor{
public static Function<Void,JSSourceExtractor> factory = new Function<Void,JSSourceExtractor>() {
public static Supplier<JSSourceExtractor> factory = new Supplier<JSSourceExtractor>() {
@Override
public JSSourceExtractor apply(Void object) {
public JSSourceExtractor get() {
return new DefaultSourceExtractor();
}
};

View File

@ -23,6 +23,7 @@ import java.util.Collections;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.function.Supplier;
import java.util.regex.Pattern;
import org.apache.commons.io.ByteOrderMark;
@ -32,7 +33,6 @@ import com.ibm.wala.cast.ir.translator.TranslatorToCAst.Error;
import com.ibm.wala.cast.js.html.jericho.JerichoHtmlParser;
import com.ibm.wala.cast.tree.CAstSourcePositionMap.Position;
import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.functions.Function;
/**
* extracts JavaScript source code from HTML, with no model of the actual
@ -42,9 +42,9 @@ public class DomLessSourceExtractor extends JSSourceExtractor {
private static final Pattern LEGAL_JS_IDENTIFIER_REGEXP = Pattern.compile("^[a-zA-Z$_][a-zA-Z\\d$_]*$");
private static final Pattern LEGAL_JS_KEYWORD_REGEXP = Pattern.compile("^((break)|(case)|(catch)|(continue)|(debugger)|(default)|(delete)|(do)|(else)|(finally)|(for)|(function)|(if)|(in)|(instanceof)|(new)|(return)|(switch)|(this)|(throw)|(try)|(typeof)|(var)|(void)|(while)|(with))$");
public static Function<Void,JSSourceExtractor> factory = new Function<Void,JSSourceExtractor>() {
public static Supplier<JSSourceExtractor> factory = new Supplier<JSSourceExtractor>() {
@Override
public JSSourceExtractor apply(Void object) {
public JSSourceExtractor get() {
return new DomLessSourceExtractor();
}
};

View File

@ -18,11 +18,11 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Set;
import java.util.function.Supplier;
import com.ibm.wala.cast.ir.translator.TranslatorToCAst.Error;
import com.ibm.wala.cast.js.html.jericho.JerichoHtmlParser;
import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.functions.Function;
public class WebUtil {
@ -47,9 +47,9 @@ public class WebUtil {
* such file exists)
* @throws Error
*/
public static Pair<Set<MappedSourceModule>,File> extractScriptFromHTML(URL url, Function<Void,JSSourceExtractor> fSourceExtractor) throws Error {
public static Pair<Set<MappedSourceModule>,File> extractScriptFromHTML(URL url, Supplier<JSSourceExtractor> fSourceExtractor) throws Error {
try {
JSSourceExtractor extractor = fSourceExtractor.apply(null);
JSSourceExtractor extractor = fSourceExtractor.get();
Set<MappedSourceModule> sources = extractor.extractSources(url, factory.getParser(), new IdentityUrlResolver());
return Pair.make(sources, extractor.getTempFile());
} catch (IOException e) {

View File

@ -13,6 +13,7 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import com.ibm.wala.cast.js.loader.JavaScriptLoader;
import com.ibm.wala.cast.js.types.JavaScriptMethods;
@ -26,7 +27,6 @@ import com.ibm.wala.ipa.callgraph.CallGraph;
import com.ibm.wala.util.collections.HashMapFactory;
import com.ibm.wala.util.collections.MapUtil;
import com.ibm.wala.util.collections.Util;
import com.ibm.wala.util.functions.Function;
/**
* Utility class to serialize call graphs as JSON objects.

View File

@ -13,6 +13,7 @@ package com.ibm.wala.cast.ipa.callgraph;
import java.util.ConcurrentModificationException;
import java.util.Iterator;
import java.util.Set;
import java.util.function.Function;
import com.ibm.wala.cast.ir.cfg.AstInducedCFG;
import com.ibm.wala.cast.ir.ssa.AstLexicalRead;
@ -35,7 +36,6 @@ import com.ibm.wala.types.MethodReference;
import com.ibm.wala.types.TypeReference;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.functions.Function;
public class AstCallGraph extends ExplicitCallGraph {
public AstCallGraph(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) {

View File

@ -17,7 +17,9 @@ import com.ibm.wala.classLoader.CallSiteReference;
import com.ibm.wala.classLoader.CodeScanner;
import com.ibm.wala.classLoader.IMethod;
import com.ibm.wala.classLoader.NewSiteReference;
import com.ibm.wala.ipa.callgraph.*;
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
import com.ibm.wala.ipa.callgraph.CGNode;
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
import com.ibm.wala.ipa.callgraph.propagation.cfa.ContextInsensitiveSSAInterpreter;
import com.ibm.wala.ssa.IR;
import com.ibm.wala.util.collections.EmptyIterator;

View File

@ -18,8 +18,18 @@ import java.util.Set;
import com.ibm.wala.analysis.reflection.ReflectionContextInterpreter;
import com.ibm.wala.cast.ipa.callgraph.AstCallGraph.AstCGNode;
import com.ibm.wala.cast.ipa.callgraph.ScopeMappingInstanceKeys.ScopeMappingInstanceKey;
import com.ibm.wala.cast.ir.ssa.*;
import com.ibm.wala.cast.ir.ssa.AstAssertInstruction;
import com.ibm.wala.cast.ir.ssa.AstEchoInstruction;
import com.ibm.wala.cast.ir.ssa.AstGlobalRead;
import com.ibm.wala.cast.ir.ssa.AstGlobalWrite;
import com.ibm.wala.cast.ir.ssa.AstIRFactory;
import com.ibm.wala.cast.ir.ssa.AstInstructionVisitor;
import com.ibm.wala.cast.ir.ssa.AstIsDefinedInstruction;
import com.ibm.wala.cast.ir.ssa.AstLexicalAccess.Access;
import com.ibm.wala.cast.ir.ssa.AstLexicalRead;
import com.ibm.wala.cast.ir.ssa.AstLexicalWrite;
import com.ibm.wala.cast.ir.ssa.EachElementGetInstruction;
import com.ibm.wala.cast.ir.ssa.EachElementHasNextInstruction;
import com.ibm.wala.cast.ir.translator.AstTranslator;
import com.ibm.wala.cast.loader.AstMethod;
import com.ibm.wala.cast.loader.AstMethod.LexicalInformation;

View File

@ -12,6 +12,7 @@ package com.ibm.wala.cast.ipa.callgraph;
import java.util.Collection;
import java.util.Iterator;
import java.util.function.Predicate;
import com.ibm.wala.classLoader.IClass;
import com.ibm.wala.classLoader.NewSiteReference;
@ -23,7 +24,6 @@ import com.ibm.wala.ipa.callgraph.propagation.InstanceKeyFactory;
import com.ibm.wala.ipa.callgraph.propagation.PointerKey;
import com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder;
import com.ibm.wala.types.TypeReference;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.CompoundIterator;
import com.ibm.wala.util.collections.EmptyIterator;
import com.ibm.wala.util.collections.FilterIterator;

View File

@ -12,6 +12,7 @@ package com.ibm.wala.cast.ipa.lexical;
import java.util.Collection;
import java.util.Map;
import java.util.function.Function;
import com.ibm.wala.cast.ipa.callgraph.ScopeMappingInstanceKeys.ScopeMappingInstanceKey;
import com.ibm.wala.cast.ir.ssa.AstLexicalAccess.Access;
@ -27,7 +28,6 @@ import com.ibm.wala.ssa.SSAInstruction;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.collections.Iterator2Iterable;
import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.functions.Function;
import com.ibm.wala.util.intset.OrdinalSet;
/**

View File

@ -17,7 +17,6 @@ import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import com.ibm.wala.cast.ir.ssa.AstIRFactory;
import com.ibm.wala.cast.ir.ssa.analysis.LiveAnalysis;
import com.ibm.wala.cast.loader.AstMethod;
import com.ibm.wala.cast.loader.AstMethod.DebuggingInformation;

View File

@ -19,6 +19,8 @@ import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.function.Function;
import java.util.function.Predicate;
import com.ibm.wala.cast.tree.CAstSourcePositionMap.Position;
import com.ibm.wala.classLoader.IClass;
@ -27,12 +29,10 @@ import com.ibm.wala.classLoader.IMethod;
import com.ibm.wala.classLoader.ModuleEntry;
import com.ibm.wala.ipa.cha.IClassHierarchy;
import com.ibm.wala.types.TypeName;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.HashMapFactory;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.collections.MapIterator;
import com.ibm.wala.util.functions.Function;
import com.ibm.wala.util.strings.Atom;
import com.ibm.wala.util.warnings.Warning;

View File

@ -12,9 +12,9 @@ package com.ibm.wala.cast.util;
import java.util.Iterator;
import java.util.Map;
import java.util.function.Predicate;
import com.ibm.wala.cast.tree.CAstNode;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.HashMapFactory;
import com.ibm.wala.util.graph.traverse.DFSDiscoverTimeIterator;

View File

@ -15,17 +15,16 @@
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="false"/>
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot; javaProject=&quot;com.ibm.wala.core.tests&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#10;"/>
<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;com.ibm.wala.core.tests&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/com.ibm.wala.core.testdata/bin&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/com.ibm.wala.core.testdata/@dot&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/com.ibm.wala.core.testdata/src&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;com.ibm.wala.core.testdata&quot; type=&quot;1&quot;/&gt;&#10;"/>
<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot; javaProject=&quot;com.ibm.wala.core.tests&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#10;"/>
<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;com.ibm.wala.core.tests&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/com.ibm.wala.core.testdata/bin&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/com.ibm.wala.core.testdata/src&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry path=&quot;3&quot; projectName=&quot;com.ibm.wala.core.testdata&quot; type=&quot;1&quot;/&gt;&#10;"/>
</listAttribute>
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/1.7.0 25/"/>
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/ikvm-8.1.5717.0"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value=""/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.ibm.wala.core.tests"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx800M -verbose:gc -Dcom.ibm.wala.util.fixedpoint.impl.verbose=true"/>
</launchConfiguration>

View File

@ -11,11 +11,11 @@
package com.ibm.wala.core.tests.basic;
import java.util.List;
import java.util.function.Predicate;
import org.junit.Assert;
import org.junit.Test;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.graph.Graph;
import com.ibm.wala.util.graph.impl.SlowSparseNumberedGraph;
import com.ibm.wala.util.graph.traverse.DFSAllPathsFinder;

View File

@ -11,6 +11,7 @@
package com.ibm.wala.core.tests.callGraph;
import java.io.IOException;
import java.util.function.Function;
import org.junit.Test;
@ -24,7 +25,6 @@ import com.ibm.wala.ipa.cha.ClassHierarchyException;
import com.ibm.wala.ipa.cha.ClassHierarchyFactory;
import com.ibm.wala.ipa.cha.IClassHierarchy;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.functions.Function;
public class CHACallGraphTest {

View File

@ -13,6 +13,7 @@ package com.ibm.wala.core.tests.callGraph;
import java.io.File;
import java.io.IOException;
import java.util.function.Predicate;
import java.util.jar.JarFile;
import org.junit.Test;
@ -36,7 +37,6 @@ import com.ibm.wala.shrikeCT.InvalidClassFileException;
import com.ibm.wala.types.ClassLoaderReference;
import com.ibm.wala.types.MethodReference;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.io.TemporaryFile;
public class Java7CallGraphTest extends DynamicCallGraphTestBase {

View File

@ -21,6 +21,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.function.Predicate;
import java.util.zip.GZIPInputStream;
import org.apache.tools.ant.Project;
@ -39,7 +40,6 @@ import com.ibm.wala.types.ClassLoaderReference;
import com.ibm.wala.types.MethodReference;
import com.ibm.wala.types.Selector;
import com.ibm.wala.types.TypeReference;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.io.TemporaryFile;
@ -147,7 +147,7 @@ public abstract class DynamicCallGraphTestBase extends WalaTestCase {
}
protected void checkEdges(CallGraph staticCG) throws IOException {
checkEdges(staticCG, Predicate.<MethodReference>truePred());
checkEdges(staticCG, (MethodReference x) -> { return true; });
}
protected void checkEdges(CallGraph staticCG, Predicate<MethodReference> filter) throws IOException {
@ -170,7 +170,7 @@ public abstract class DynamicCallGraphTestBase extends WalaTestCase {
}
protected void checkNodes(CallGraph staticCG) throws IOException {
checkNodes(staticCG, Predicate.<MethodReference>truePred());
checkNodes(staticCG, (MethodReference x) -> { return true; });
}
protected void checkNodes(CallGraph staticCG, Predicate<MethodReference> filter) throws IOException {

View File

@ -15,6 +15,7 @@ import java.io.IOException;
import java.util.Collection;
import java.util.Iterator;
import java.util.Properties;
import java.util.function.Predicate;
import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil;
import com.ibm.wala.examples.properties.WalaExamplesProperties;
@ -33,7 +34,6 @@ import com.ibm.wala.ipa.cha.ClassHierarchyFactory;
import com.ibm.wala.properties.WalaProperties;
import com.ibm.wala.types.ClassLoaderReference;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.WalaException;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.config.AnalysisScopeReader;
@ -196,7 +196,7 @@ public class PDFCallGraph {
* <li> {@link LocalPointerKey}
* </ul>
*/
private static class ApplicationLoaderFilter extends Predicate<CGNode> {
private static class ApplicationLoaderFilter implements Predicate<CGNode> {
@Override public boolean test(CGNode o) {
if (o == null)

View File

@ -13,6 +13,7 @@ package com.ibm.wala.examples.drivers;
import java.io.File;
import java.io.IOException;
import java.util.Properties;
import java.util.function.Predicate;
import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil;
import com.ibm.wala.examples.properties.WalaExamplesProperties;
@ -36,7 +37,6 @@ import com.ibm.wala.ipa.slicer.Slicer.DataDependenceOptions;
import com.ibm.wala.ipa.slicer.Statement;
import com.ibm.wala.properties.WalaProperties;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.WalaException;
import com.ibm.wala.util.config.AnalysisScopeReader;
import com.ibm.wala.util.debug.Assertions;

View File

@ -14,6 +14,7 @@ import java.io.File;
import java.io.IOException;
import java.util.Collection;
import java.util.Properties;
import java.util.function.Predicate;
import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil;
import com.ibm.wala.core.tests.slicer.SlicerTest;
@ -47,7 +48,6 @@ import com.ibm.wala.ssa.SSAInstruction;
import com.ibm.wala.ssa.SSAInvokeInstruction;
import com.ibm.wala.types.TypeReference;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.WalaException;
import com.ibm.wala.util.config.AnalysisScopeReader;
import com.ibm.wala.util.debug.Assertions;

View File

@ -14,6 +14,7 @@ import java.io.File;
import java.io.IOException;
import java.util.Collection;
import java.util.Properties;
import java.util.function.Predicate;
import com.ibm.wala.classLoader.IClass;
import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil;
@ -24,7 +25,6 @@ import com.ibm.wala.ipa.cha.ClassHierarchyFactory;
import com.ibm.wala.ipa.cha.IClassHierarchy;
import com.ibm.wala.properties.WalaProperties;
import com.ibm.wala.types.ClassLoaderReference;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.WalaException;
import com.ibm.wala.util.collections.CollectionFilter;
import com.ibm.wala.util.config.AnalysisScopeReader;

View File

@ -14,6 +14,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Iterator;
import java.util.function.IntFunction;
import com.ibm.wala.classLoader.IClass;
import com.ibm.wala.classLoader.IField;
@ -28,7 +29,6 @@ import com.ibm.wala.util.collections.EmptyIterator;
import com.ibm.wala.util.collections.IntMapIterator;
import com.ibm.wala.util.debug.Assertions;
import com.ibm.wala.util.debug.UnimplementedError;
import com.ibm.wala.util.functions.IntFunction;
import com.ibm.wala.util.graph.AbstractNumberedGraph;
import com.ibm.wala.util.graph.NumberedEdgeManager;
import com.ibm.wala.util.graph.NumberedGraph;

View File

@ -13,12 +13,12 @@ package com.ibm.wala.analysis.pointers;
import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
import java.util.function.Predicate;
import com.ibm.wala.ipa.callgraph.propagation.HeapModel;
import com.ibm.wala.ipa.callgraph.propagation.InstanceKey;
import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis;
import com.ibm.wala.ipa.callgraph.propagation.PointerKey;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.graph.Graph;
import com.ibm.wala.util.graph.impl.NumberedNodeIterator;
import com.ibm.wala.util.graph.traverse.DFS;

View File

@ -13,6 +13,8 @@ package com.ibm.wala.analysis.reflection.java7;
import java.lang.ref.SoftReference;
import java.util.Iterator;
import java.util.Map;
import java.util.function.Function;
import java.util.function.Predicate;
import com.ibm.wala.cfg.ControlFlowGraph;
import com.ibm.wala.classLoader.CallSiteReference;
@ -44,11 +46,9 @@ import com.ibm.wala.ssa.SSAPutInstruction;
import com.ibm.wala.types.FieldReference;
import com.ibm.wala.types.MethodReference;
import com.ibm.wala.types.TypeReference;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.HashMapFactory;
import com.ibm.wala.util.collections.MapIterator;
import com.ibm.wala.util.functions.Function;
import com.ibm.wala.util.intset.IntSet;
import com.ibm.wala.util.intset.IntSetUtil;

View File

@ -15,12 +15,13 @@ import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.function.Predicate;
import com.ibm.wala.classLoader.IMethod;
import com.ibm.wala.shrikeBT.Constants;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.CompoundIterator;
import com.ibm.wala.util.collections.EmptyIterator;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.collections.Iterator2Collection;
import com.ibm.wala.util.collections.IteratorPlusOne;
@ -227,13 +228,13 @@ public abstract class AbstractCFG<I, T extends IBasicBlock<I>> implements Contro
throw new IllegalArgumentException("N is null");
}
if (N.equals(exit())) {
return Predicate.filter(iterator(), new Predicate<T>() {
return new FilterIterator<>(iterator(), new Predicate<T>() {
@Override
public boolean test(T o) {
int i = getNumber(o);
return normalToExit.get(i) || exceptionalToExit.get(i);
}
}).iterator();
});
} else {
int number = getNumber(N);
boolean normalIn = getNumberOfNormalIn(N) > 0;
@ -340,13 +341,13 @@ public abstract class AbstractCFG<I, T extends IBasicBlock<I>> implements Contro
Iterator<T> iterateExceptionalPredecessors(T N) {
if (N.equals(exit())) {
return Predicate.filter(iterator(), new Predicate<T>() {
return new FilterIterator<>(iterator(), new Predicate<T>() {
@Override
public boolean test(T o) {
int i = getNumber(o);
return exceptionalToExit.get(i);
}
}).iterator();
});
} else {
return exceptionalEdgeManager.getPredNodes(N);
}
@ -354,13 +355,13 @@ public abstract class AbstractCFG<I, T extends IBasicBlock<I>> implements Contro
Iterator<T> iterateNormalPredecessors(T N) {
if (N.equals(exit())) {
return Predicate.filter(iterator(), new Predicate<T>() {
return new FilterIterator<>(iterator(), new Predicate<T>() {
@Override
public boolean test(T o) {
int i = getNumber(o);
return normalToExit.get(i);
}
}).iterator();
});
} else {
int number = getNumber(N);
if (number > 0 && fallThru.get(number - 1)) {

View File

@ -11,8 +11,8 @@
package com.ibm.wala.dataflow.IFDS;
import java.util.Iterator;
import java.util.function.Predicate;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.Iterator2Collection;
import com.ibm.wala.util.debug.Assertions;
@ -76,7 +76,7 @@ public class BackwardsSupergraph<T, P> implements ISupergraph<T, P> {
/**
* a filter that accepts only exit nodes from the original graph.
*/
private class ExitFilter extends Predicate {
private class ExitFilter implements Predicate {
/*
* @see com.ibm.wala.util.Filter#accepts(java.lang.Object)
*/

View File

@ -22,6 +22,7 @@
package com.ibm.wala.dataflow.IFDS;
import java.util.Iterator;
import java.util.function.Predicate;
import com.ibm.wala.cfg.ControlFlowGraph;
import com.ibm.wala.ipa.callgraph.CGNode;
@ -32,7 +33,6 @@ import com.ibm.wala.ipa.cha.IClassHierarchy;
import com.ibm.wala.ssa.SSAAbstractInvokeInstruction;
import com.ibm.wala.ssa.SSAInstruction;
import com.ibm.wala.ssa.analysis.IExplodedBasicBlock;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.EmptyIterator;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.debug.Assertions;

View File

@ -45,6 +45,8 @@ import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.function.Predicate;
import com.ibm.wala.analysis.reflection.InstanceKeyWithNode;
import com.ibm.wala.classLoader.CallSiteReference;
@ -113,7 +115,6 @@ import com.ibm.wala.ssa.SSAArrayStoreInstruction;
import com.ibm.wala.ssa.SSAInstruction;
import com.ibm.wala.ssa.SSANewInstruction;
import com.ibm.wala.ssa.SSAPutInstruction;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.ArraySet;
import com.ibm.wala.util.collections.ArraySetMultiMap;
import com.ibm.wala.util.collections.HashMapFactory;
@ -127,7 +128,6 @@ import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.collections.Util;
import com.ibm.wala.util.debug.Assertions;
import com.ibm.wala.util.debug.UnimplementedError;
import com.ibm.wala.util.functions.Function;
import com.ibm.wala.util.intset.IntSet;
import com.ibm.wala.util.intset.IntSetAction;
import com.ibm.wala.util.intset.MutableIntSet;
@ -517,7 +517,7 @@ public class DemandRefinementPointsTo extends AbstractDemandPointsTo {
*/
@Override
public Collection<InstanceKey> getPointsTo(PointerKey pk) {
return getPointsTo(pk, Predicate.<InstanceKey> falsePred()).snd;
return getPointsTo(pk, (InstanceKey k) -> { return false; }).snd;
}
/**
@ -525,7 +525,7 @@ public class DemandRefinementPointsTo extends AbstractDemandPointsTo {
* <code>null</code> if the points-to set can't be computed in the allocated budget
*/
public Collection<InstanceKeyAndState> getPointsToWithStates(PointerKey pk) {
return getPointsToWithStates(pk, Predicate.<InstanceKey> falsePred()).snd;
return getPointsToWithStates(pk, (InstanceKey k) -> { return false; }).snd;
}
/**

View File

@ -13,6 +13,7 @@ package com.ibm.wala.escape;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.function.Predicate;
import com.ibm.wala.ssa.DefUse;
import com.ibm.wala.ssa.IR;
@ -21,7 +22,6 @@ import com.ibm.wala.ssa.SSACFG;
import com.ibm.wala.ssa.SSACFG.BasicBlock;
import com.ibm.wala.ssa.SSAInstruction;
import com.ibm.wala.ssa.SSAReturnInstruction;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.collections.Iterator2Collection;
import com.ibm.wala.util.debug.Assertions;

View File

@ -20,6 +20,8 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.jar.Attributes;
import java.util.jar.JarFile;
import java.util.jar.Manifest;
@ -39,7 +41,6 @@ import com.ibm.wala.types.Descriptor;
import com.ibm.wala.types.MethodReference;
import com.ibm.wala.types.TypeName;
import com.ibm.wala.types.TypeReference;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.HashMapFactory;
import com.ibm.wala.util.collections.HashSetFactory;
@ -47,7 +48,6 @@ import com.ibm.wala.util.collections.MapIterator;
import com.ibm.wala.util.collections.MapUtil;
import com.ibm.wala.util.config.SetOfClasses;
import com.ibm.wala.util.debug.Assertions;
import com.ibm.wala.util.functions.Function;
import com.ibm.wala.util.io.RtJar;
import com.ibm.wala.util.strings.Atom;
import com.ibm.wala.util.strings.ImmutableByteArray;

View File

@ -13,6 +13,7 @@ package com.ibm.wala.ipa.callgraph;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.function.Function;
import com.ibm.wala.dataflow.graph.BitVectorSolver;
import com.ibm.wala.fixpoint.BitVectorVariable;
@ -20,7 +21,6 @@ import com.ibm.wala.ipa.modref.GenReach;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.CancelRuntimeException;
import com.ibm.wala.util.collections.HashMapFactory;
import com.ibm.wala.util.functions.Function;
import com.ibm.wala.util.graph.impl.GraphInverter;
import com.ibm.wala.util.intset.OrdinalSet;

View File

@ -16,6 +16,8 @@ import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.Stack;
import java.util.function.Function;
import java.util.function.Predicate;
import com.ibm.wala.classLoader.CallSiteReference;
import com.ibm.wala.classLoader.IMethod;
@ -35,7 +37,6 @@ import com.ibm.wala.shrikeBT.IInvokeInstruction;
import com.ibm.wala.ssa.DefUse;
import com.ibm.wala.ssa.IR;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.ComposedIterator;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.HashMapFactory;
@ -43,7 +44,6 @@ import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.collections.Iterator2Collection;
import com.ibm.wala.util.collections.IteratorUtil;
import com.ibm.wala.util.collections.MapIterator;
import com.ibm.wala.util.functions.Function;
import com.ibm.wala.util.graph.NumberedEdgeManager;
import com.ibm.wala.util.intset.IntSet;
import com.ibm.wala.util.intset.IntSetUtil;

View File

@ -15,6 +15,8 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.function.IntFunction;
import java.util.function.Predicate;
import com.ibm.wala.cfg.ControlFlowGraph;
import com.ibm.wala.classLoader.CallSiteReference;
@ -32,14 +34,12 @@ import com.ibm.wala.ssa.IR;
import com.ibm.wala.ssa.ISSABasicBlock;
import com.ibm.wala.ssa.SSAInstruction;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.EmptyIterator;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.collections.IntMapIterator;
import com.ibm.wala.util.collections.SparseVector;
import com.ibm.wala.util.debug.Assertions;
import com.ibm.wala.util.functions.IntFunction;
import com.ibm.wala.util.graph.NumberedEdgeManager;
import com.ibm.wala.util.intset.BasicNaturalRelation;
import com.ibm.wala.util.intset.IBinaryNaturalRelation;

View File

@ -13,6 +13,7 @@ package com.ibm.wala.ipa.callgraph.impl;
import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
import java.util.function.Predicate;
import com.ibm.wala.classLoader.CallSiteReference;
import com.ibm.wala.classLoader.IMethod;
@ -21,7 +22,6 @@ import com.ibm.wala.ipa.callgraph.CallGraph;
import com.ibm.wala.ipa.callgraph.Context;
import com.ibm.wala.ipa.cha.IClassHierarchy;
import com.ibm.wala.types.MethodReference;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.graph.Graph;

View File

@ -11,6 +11,8 @@
package com.ibm.wala.ipa.callgraph.propagation;
import java.util.Iterator;
import java.util.function.Function;
import java.util.function.Predicate;
import com.ibm.wala.classLoader.IClass;
import com.ibm.wala.classLoader.IMethod;
@ -18,11 +20,9 @@ import com.ibm.wala.classLoader.NewSiteReference;
import com.ibm.wala.ipa.callgraph.CGNode;
import com.ibm.wala.ipa.callgraph.CallGraph;
import com.ibm.wala.ipa.callgraph.Context;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.MapIterator;
import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.functions.Function;
/**
* An {@link InstanceKey} which represents a {@link NewSiteReference} in some {@link IMethod}. Note that this differs from

View File

@ -12,6 +12,8 @@ package com.ibm.wala.ipa.callgraph.propagation;
import java.util.Collection;
import java.util.Iterator;
import java.util.function.Function;
import java.util.function.Predicate;
import com.ibm.wala.classLoader.IClass;
import com.ibm.wala.classLoader.NewSiteReference;
@ -20,13 +22,11 @@ import com.ibm.wala.ipa.callgraph.CallGraph;
import com.ibm.wala.ipa.cha.IClassHierarchy;
import com.ibm.wala.ssa.SSAInstruction;
import com.ibm.wala.types.TypeReference;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.ComposedIterator;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.MapIterator;
import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.debug.Assertions;
import com.ibm.wala.util.functions.Function;
/**
* An instance key which represents a unique set for each concrete type.

View File

@ -11,8 +11,8 @@
package com.ibm.wala.ipa.callgraph.propagation;
import java.util.Iterator;
import java.util.function.Predicate;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.IVector;
import com.ibm.wala.util.collections.SimpleVector;

View File

@ -16,6 +16,7 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.function.Predicate;
import com.ibm.wala.fixedpoint.impl.GeneralStatement;
import com.ibm.wala.fixpoint.AbstractOperator;
@ -25,7 +26,6 @@ import com.ibm.wala.fixpoint.IFixedPointSystem;
import com.ibm.wala.fixpoint.IVariable;
import com.ibm.wala.fixpoint.UnaryOperator;
import com.ibm.wala.fixpoint.UnaryStatement;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.CompoundIterator;
import com.ibm.wala.util.collections.EmptyIterator;
import com.ibm.wala.util.collections.FilterIterator;

View File

@ -14,6 +14,7 @@ import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.function.Predicate;
import com.ibm.wala.classLoader.IClass;
import com.ibm.wala.classLoader.SyntheticMethod;
@ -31,8 +32,9 @@ import com.ibm.wala.ssa.SSACheckCastInstruction;
import com.ibm.wala.types.TypeReference;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.MonitorUtil.IProgressMonitor;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.collections.Iterator2Collection;
/**
* A helper class which can modify a {@link PropagationCallGraphBuilder} to deal with reflective factory methods.
@ -78,7 +80,7 @@ public class ReflectionHandler {
}
}
};
Collection<Statement> casts = Predicate.filter(slice.iterator(), f);
Collection<Statement> casts = Iterator2Collection.toSet(new FilterIterator<>(slice.iterator(), f));
changedNodes.addAll(modifyFactoryInterpreter(st, casts, builder.getContextInterpreter(), builder.getClassHierarchy()));
}
for (Iterator<CGNode> it = changedNodes.iterator(); it.hasNext();) {

View File

@ -18,6 +18,7 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.function.Consumer;
import com.ibm.wala.analysis.reflection.CloneInterpreter;
import com.ibm.wala.cfg.ControlFlowGraph;
@ -78,7 +79,6 @@ import com.ibm.wala.util.MonitorUtil.IProgressMonitor;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.debug.Assertions;
import com.ibm.wala.util.debug.UnimplementedError;
import com.ibm.wala.util.functions.VoidFunction;
import com.ibm.wala.util.intset.IntIterator;
import com.ibm.wala.util.intset.IntSet;
import com.ibm.wala.util.intset.IntSetAction;
@ -510,7 +510,7 @@ public abstract class SSAPropagationCallGraphBuilder extends PropagationCallGrap
private class CrossProductRec {
private final InstanceKey[][] invariants;
private final VoidFunction<InstanceKey[]> f;
private final Consumer<InstanceKey[]> f;
private final SSAAbstractInvokeInstruction call;
private final CGNode caller;
private final int[] params;
@ -518,7 +518,7 @@ public abstract class SSAPropagationCallGraphBuilder extends PropagationCallGrap
private final InstanceKey[] keys;
private CrossProductRec(InstanceKey[][] invariants, SSAAbstractInvokeInstruction call, CGNode caller,
VoidFunction<InstanceKey[]> f) {
Consumer<InstanceKey[]> f) {
this.invariants = invariants;
this.f = f;
this.call = call;
@ -530,7 +530,7 @@ public abstract class SSAPropagationCallGraphBuilder extends PropagationCallGrap
protected void rec(final int pi, final int rhsi) {
if (pi == params.length) {
f.apply(keys);
f.accept(keys);
} else {
final int p = params[pi];
InstanceKey[] ik = invariants != null ? invariants[p] : null;
@ -1743,9 +1743,9 @@ public abstract class SSAPropagationCallGraphBuilder extends PropagationCallGrap
@Override
public void act(final int x) {
new CrossProductRec(constParams, call, node,
new VoidFunction<InstanceKey[]>() {
new Consumer<InstanceKey[]>() {
@Override
public void apply(InstanceKey[] v) {
public void accept(InstanceKey[] v) {
IClass recv = null;
if (call.getCallSite().isDispatch()) {
recv = v[0].getConcreteType();
@ -2009,7 +2009,7 @@ public abstract class SSAPropagationCallGraphBuilder extends PropagationCallGrap
}
protected void iterateCrossProduct(final CGNode caller, final SSAAbstractInvokeInstruction call, final InstanceKey[][] invariants,
final VoidFunction<InstanceKey[]> f) {
final Consumer<InstanceKey[]> f) {
new CrossProductRec(invariants, call, caller, f).rec(0, 0);
}
@ -2022,9 +2022,9 @@ public abstract class SSAPropagationCallGraphBuilder extends PropagationCallGrap
// associated with the instruction
final CallSiteReference site = instruction.getCallSite();
final Set<CGNode> targets = HashSetFactory.make();
VoidFunction<InstanceKey[]> f = new VoidFunction<InstanceKey[]>() {
Consumer<InstanceKey[]> f = new Consumer<InstanceKey[]>() {
@Override
public void apply(InstanceKey[] v) {
public void accept(InstanceKey[] v) {
IClass recv = null;
if (site.isDispatch()) {
recv = v[0].getConcreteType();

View File

@ -11,16 +11,16 @@
package com.ibm.wala.ipa.callgraph.propagation;
import java.util.Iterator;
import java.util.function.Function;
import java.util.function.Predicate;
import com.ibm.wala.classLoader.IClass;
import com.ibm.wala.classLoader.NewSiteReference;
import com.ibm.wala.ipa.callgraph.CGNode;
import com.ibm.wala.ipa.callgraph.CallGraph;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.MapIterator;
import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.functions.Function;
/**
* An {@link InstanceKey} which represents the set of all allocation sites

View File

@ -14,6 +14,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.Map;
import java.util.function.Predicate;
import com.ibm.wala.analysis.typeInference.TypeAbstraction;
import com.ibm.wala.analysis.typeInference.TypeInference;
@ -36,7 +37,7 @@ import com.ibm.wala.ipa.cha.IClassHierarchy;
import com.ibm.wala.ssa.IR;
import com.ibm.wala.ssa.SymbolTable;
import com.ibm.wala.types.TypeReference;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.HashMapFactory;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.debug.Assertions;
@ -175,15 +176,14 @@ public class TypeBasedHeapModel implements HeapModel {
}
@Override
@SuppressWarnings("unchecked")
public Iterator<PointerKey> iteratePointerKeys() {
initAllPKeys();
return Predicate.filter(pKeys.values().iterator(), new Predicate() {
return new FilterIterator<>(pKeys.values().iterator(), new Predicate() {
@Override
public boolean test(Object o) {
return o instanceof PointerKey;
}
}).iterator();
});
}
@Override

View File

@ -12,6 +12,8 @@ package com.ibm.wala.ipa.cfg;
import java.util.Iterator;
import java.util.Set;
import java.util.function.Function;
import java.util.function.Predicate;
import com.ibm.wala.cfg.ControlFlowGraph;
import com.ibm.wala.cfg.IBasicBlock;
@ -21,13 +23,11 @@ import com.ibm.wala.ipa.callgraph.CallGraph;
import com.ibm.wala.ssa.ISSABasicBlock;
import com.ibm.wala.ssa.SSAAbstractInvokeInstruction;
import com.ibm.wala.ssa.SSAInstruction;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.IndiscriminateFilter;
import com.ibm.wala.util.collections.MapIterator;
import com.ibm.wala.util.debug.Assertions;
import com.ibm.wala.util.debug.UnimplementedError;
import com.ibm.wala.util.functions.Function;
import com.ibm.wala.util.graph.NumberedGraph;
import com.ibm.wala.util.graph.impl.SlowSparseNumberedGraph;
import com.ibm.wala.util.intset.BitVector;

View File

@ -11,6 +11,7 @@
package com.ibm.wala.ipa.cfg;
import java.util.Map;
import java.util.function.Predicate;
import com.ibm.wala.cfg.ControlFlowGraph;
import com.ibm.wala.ipa.callgraph.CGNode;
@ -19,7 +20,6 @@ import com.ibm.wala.ssa.IR;
import com.ibm.wala.ssa.SSAInstruction;
import com.ibm.wala.ssa.analysis.ExplodedControlFlowGraph;
import com.ibm.wala.ssa.analysis.IExplodedBasicBlock;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.HashMapFactory;
/**

View File

@ -17,11 +17,11 @@ import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.function.Predicate;
import com.ibm.wala.cfg.ControlFlowGraph;
import com.ibm.wala.cfg.IBasicBlock;
import com.ibm.wala.classLoader.IMethod;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.Iterator2Collection;
import com.ibm.wala.util.graph.AbstractNumberedGraph;

View File

@ -20,6 +20,7 @@ import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import com.ibm.wala.classLoader.ArrayClass;
import com.ibm.wala.classLoader.ClassLoaderFactory;
@ -43,7 +44,6 @@ import com.ibm.wala.util.collections.MapIterator;
import com.ibm.wala.util.collections.MapUtil;
import com.ibm.wala.util.debug.Assertions;
import com.ibm.wala.util.debug.UnimplementedError;
import com.ibm.wala.util.functions.Function;
import com.ibm.wala.util.ref.CacheReference;
import com.ibm.wala.util.ref.ReferenceCleanser;
import com.ibm.wala.util.strings.Atom;

View File

@ -14,6 +14,7 @@ import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import com.ibm.wala.classLoader.IClass;
import com.ibm.wala.classLoader.IField;
@ -33,7 +34,6 @@ import com.ibm.wala.ssa.SSAInstruction;
import com.ibm.wala.ssa.SSANewInstruction;
import com.ibm.wala.ssa.SSAPutInstruction;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.functions.Function;
import com.ibm.wala.util.intset.OrdinalSet;
/**

View File

@ -14,6 +14,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
import java.util.function.Predicate;
import com.ibm.wala.dataflow.graph.AbstractMeetOperator;
import com.ibm.wala.dataflow.graph.BitVectorFramework;
@ -44,7 +45,6 @@ import com.ibm.wala.ssa.analysis.ExplodedControlFlowGraph;
import com.ibm.wala.ssa.analysis.IExplodedBasicBlock;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.CancelRuntimeException;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.HashMapFactory;
import com.ibm.wala.util.collections.Iterator2Collection;

View File

@ -17,6 +17,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.function.Predicate;
import com.ibm.wala.analysis.stackMachine.AbstractIntStackMachine;
import com.ibm.wala.cfg.ControlFlowGraph;
@ -52,7 +53,6 @@ import com.ibm.wala.ssa.SSAPhiInstruction;
import com.ibm.wala.ssa.SSAPiInstruction;
import com.ibm.wala.ssa.SSAReturnInstruction;
import com.ibm.wala.types.TypeReference;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.HashMapFactory;
import com.ibm.wala.util.collections.HashSetFactory;

View File

@ -11,12 +11,12 @@
package com.ibm.wala.ipa.slicer;
import java.util.Iterator;
import java.util.function.Predicate;
import com.ibm.wala.dataflow.IFDS.ISupergraph;
import com.ibm.wala.ipa.callgraph.CGNode;
import com.ibm.wala.ipa.callgraph.propagation.InstanceKey;
import com.ibm.wala.ssa.SSAAbstractInvokeInstruction;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.EmptyIterator;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.debug.Assertions;

View File

@ -17,6 +17,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import com.ibm.wala.cfg.AbstractCFG;
import com.ibm.wala.cfg.BytecodeCFG;
@ -36,7 +37,6 @@ import com.ibm.wala.util.collections.Iterator2Collection;
import com.ibm.wala.util.collections.MapIterator;
import com.ibm.wala.util.debug.Assertions;
import com.ibm.wala.util.debug.UnimplementedError;
import com.ibm.wala.util.functions.Function;
import com.ibm.wala.util.graph.impl.NumberedNodeIterator;
import com.ibm.wala.util.intset.BitVector;
import com.ibm.wala.util.intset.IntSet;

View File

@ -4,6 +4,8 @@ import java.io.File;
import java.net.URI;
import java.util.Collections;
import java.util.Set;
import java.util.function.Predicate;
import java.util.function.Consumer;
import com.ibm.wala.classLoader.IClass;
import com.ibm.wala.classLoader.IMethod;
@ -18,10 +20,8 @@ import com.ibm.wala.ipa.slicer.SDG;
import com.ibm.wala.ipa.slicer.Slicer.ControlDependenceOptions;
import com.ibm.wala.ipa.slicer.Slicer.DataDependenceOptions;
import com.ibm.wala.util.MonitorUtil.IProgressMonitor;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.functions.VoidFunction;
import com.ibm.wala.util.io.FileUtil;
public class APKCallGraphDriver {
@ -55,10 +55,10 @@ public class APKCallGraphDriver {
} catch (Throwable e) {
// no timeout specified
}
FileUtil.recurseFiles(new VoidFunction<File>() {
FileUtil.recurseFiles(new Consumer<File>() {
@Override
public void apply(File apk) {
public void accept(File apk) {
System.gc();
System.err.println("Analyzing " + apk + "...");
try {

View File

@ -20,6 +20,8 @@ import java.net.URI;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.function.Function;
import java.util.function.Predicate;
import com.ibm.wala.classLoader.IClass;
import com.ibm.wala.classLoader.NewSiteReference;
@ -53,12 +55,10 @@ import com.ibm.wala.types.MethodReference;
import com.ibm.wala.types.TypeReference;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.MonitorUtil.IProgressMonitor;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.collections.MapIterator;
import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.functions.Function;
import com.ibm.wala.util.io.TemporaryFile;
public class DalvikCallGraphTestBase extends DynamicCallGraphTestBase {

View File

@ -21,6 +21,8 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Consumer;
import java.util.function.Predicate;
import org.junit.Assert;
import org.junit.Test;
@ -35,11 +37,9 @@ import com.ibm.wala.types.ClassLoaderReference;
import com.ibm.wala.types.MethodReference;
import com.ibm.wala.types.TypeReference;
import com.ibm.wala.util.NullProgressMonitor;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.HashMapFactory;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.functions.VoidFunction;
import com.ibm.wala.util.io.FileUtil;
public abstract class DroidBenchCGTest extends DalvikCallGraphTestBase {
@ -161,9 +161,9 @@ public abstract class DroidBenchCGTest extends DalvikCallGraphTestBase {
public static Collection<Object[]> generateData(String droidBenchRoot, final URI[] androidLibs, final File androidJavaJar, final String filter) {
final List<Object[]> files = new LinkedList<>();
FileUtil.recurseFiles(new VoidFunction<File>() {
FileUtil.recurseFiles(new Consumer<File>() {
@Override
public void apply(File f) {
public void accept(File f) {
Set<MethodReference> uncalled = uncalledFunctions.get(f.getName());
if (uncalled == null) {
uncalled = Collections.emptySet();

View File

@ -16,6 +16,7 @@ import static com.ibm.wala.dalvik.test.util.Util.getJavaJar;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.util.function.Predicate;
import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil;
import com.ibm.wala.ipa.callgraph.AnalysisScope;
@ -28,7 +29,6 @@ import com.ibm.wala.shrikeCT.InvalidClassFileException;
import com.ibm.wala.types.ClassLoaderReference;
import com.ibm.wala.types.MethodReference;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.io.TemporaryFile;

View File

@ -46,6 +46,7 @@ import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.function.Predicate;
import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil;
import com.ibm.wala.core.tests.util.TestConstants;
@ -88,7 +89,6 @@ import com.ibm.wala.types.ClassLoaderReference;
import com.ibm.wala.types.TypeReference;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.NullProgressMonitor;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.ProgressMaster;
import com.ibm.wala.util.WalaException;
import com.ibm.wala.util.collections.Pair;

View File

@ -13,6 +13,7 @@ package com.ibm.wala.cast.js.client;
import java.io.IOException;
import java.util.Collections;
import java.util.Set;
import java.util.function.Function;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Plugin;
@ -57,7 +58,6 @@ import com.ibm.wala.util.NullProgressMonitor;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.config.SetOfClasses;
import com.ibm.wala.util.functions.Function;
public class EclipseJavaScriptAnalysisEngine<I extends InstanceKey> extends EclipseProjectSourceAnalysisEngine<IJavaScriptProject, I> {

View File

@ -10,13 +10,13 @@
*******************************************************************************/
package com.ibm.wala.ide.util;
import java.util.function.Function;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.wst.jsdt.core.IJavaScriptProject;
import org.eclipse.wst.jsdt.core.JavaScriptCore;
import com.ibm.wala.util.functions.Function;
public class JavaScriptHeadlessUtil extends HeadlessUtil {
public static IJavaScriptProject getJavaScriptProjectFromWorkspace(final String projectName) {

View File

@ -17,6 +17,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
@ -55,7 +56,6 @@ import com.ibm.wala.ide.util.HeadlessUtil.Parser;
import com.ibm.wala.ipa.callgraph.AnalysisScope;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.functions.Function;
import com.ibm.wala.util.graph.Graph;
import com.ibm.wala.util.graph.impl.SlowSparseNumberedGraph;

View File

@ -11,6 +11,7 @@
package com.ibm.wala.examples.drivers;
import java.util.Collection;
import java.util.function.Predicate;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.window.ApplicationWindow;
@ -23,7 +24,6 @@ import com.ibm.wala.ipa.cha.ClassHierarchy;
import com.ibm.wala.ipa.cha.ClassHierarchyFactory;
import com.ibm.wala.ipa.cha.IClassHierarchy;
import com.ibm.wala.types.ClassLoaderReference;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.CollectionFilter;
import com.ibm.wala.util.config.AnalysisScopeReader;
import com.ibm.wala.util.graph.Graph;

View File

@ -11,6 +11,7 @@
package com.ibm.wala.ide.ui;
import java.util.Iterator;
import java.util.function.Predicate;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.viewers.IStructuredSelection;
@ -23,7 +24,6 @@ import com.ibm.wala.ssa.SSAGetInstruction;
import com.ibm.wala.ssa.SSAInstruction;
import com.ibm.wala.ssa.SSAPhiInstruction;
import com.ibm.wala.ssa.analysis.IExplodedBasicBlock;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.WalaException;
import com.ibm.wala.util.debug.Assertions;
import com.ibm.wala.util.graph.Graph;

View File

@ -14,6 +14,7 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.function.Function;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
@ -24,7 +25,6 @@ import org.eclipse.core.runtime.IPath;
import com.ibm.wala.classLoader.ModuleEntry;
import com.ibm.wala.ide.classloader.EclipseSourceFileModule;
import com.ibm.wala.util.debug.Assertions;
import com.ibm.wala.util.functions.Function;
import com.ibm.wala.util.io.CommandLine;
public class HeadlessUtil {

View File

@ -58,6 +58,7 @@ import java.util.Deque;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.function.Predicate;
import org.scandroid.domain.CodeElement;
import org.scandroid.domain.FieldElement;
@ -90,7 +91,6 @@ import com.ibm.wala.ipa.cha.ClassHierarchy;
import com.ibm.wala.ssa.ISSABasicBlock;
import com.ibm.wala.types.ClassLoaderReference;
import com.ibm.wala.types.TypeReference;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.graph.Graph;
import com.ibm.wala.util.graph.GraphSlicer;

View File

@ -10,7 +10,6 @@ Export-Package: com.ibm.wala.dataflow.graph,
com.ibm.wala.util.collections,
com.ibm.wala.util.config,
com.ibm.wala.util.debug,
com.ibm.wala.util.functions,
com.ibm.wala.util.graph,
com.ibm.wala.util.graph.dominators,
com.ibm.wala.util.graph.impl,

View File

@ -10,6 +10,7 @@
*******************************************************************************/
package com.ibm.wala.fixedpoint.impl;
import java.util.function.Predicate;
import java.util.Iterator;
import java.util.Set;
@ -18,7 +19,6 @@ import com.ibm.wala.fixpoint.IFixedPointStatement;
import com.ibm.wala.fixpoint.IFixedPointSystem;
import com.ibm.wala.fixpoint.IVariable;
import com.ibm.wala.fixpoint.UnaryStatement;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.EmptyIterator;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.HashSetFactory;
@ -95,7 +95,7 @@ public class DefaultFixedPointSystem<T extends IVariable<T>> implements IFixedPo
@Override
@SuppressWarnings({ "unchecked", "rawtypes" })
public Iterator<AbstractStatement> getStatements() {
return new FilterIterator(graph.iterator(), new Predicate() {
return new FilterIterator(graph.iterator(), new Predicate<Object>() {
@Override public boolean test(Object x) {
return x instanceof AbstractStatement;
}

View File

@ -1,138 +0,0 @@
/*******************************************************************************
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html.
*
* This file is a derivative of code released by the University of
* California under the terms listed below.
*
* Refinement Analysis Tools is Copyright (c) 2007 The Regents of the
* University of California (Regents). Provided that this notice and
* the following two paragraphs are included in any distribution of
* Refinement Analysis Tools or its derivative work, Regents agrees
* not to assert any of Regents' copyright rights in Refinement
* Analysis Tools against recipient for recipient's reproduction,
* preparation of derivative works, public display, public
* performance, distribution or sublicensing of Refinement Analysis
* Tools and derivative works, in source code and object code form.
* This agreement not to assert does not confer, by implication,
* estoppel, or otherwise any license or rights in any intellectual
* property of Regents, including, but not limited to, any patents
* of Regents or Regents' employees.
*
* IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT,
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
* INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE
* AND ITS DOCUMENTATION, EVEN IF REGENTS HAS BEEN ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE AND FURTHER DISCLAIMS ANY STATUTORY
* WARRANTY OF NON-INFRINGEMENT. THE SOFTWARE AND ACCOMPANYING
* DOCUMENTATION, IF ANY, PROVIDED HEREUNDER IS PROVIDED "AS
* IS". REGENTS HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT,
* UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
*/
package com.ibm.wala.util;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
/**
* Interface for defining an arbitrary predicate on {@link Object}s.
*/
public abstract class Predicate<T> {
@SuppressWarnings("rawtypes")
public static final Predicate FALSE = new Predicate() {
@Override
public boolean test(Object o) {
return false;
}
};
@SuppressWarnings("rawtypes")
public static final Predicate TRUE = FALSE.not();
public static <T> Predicate<T> truePred() {
return TRUE;
}
public static <T> Predicate<T> falsePred() {
return FALSE;
}
/** Test whether an {@link Object} satisfies this {@link Predicate} */
public abstract boolean test(T t);
/** Return a predicate that is a negation of this predicate */
public Predicate<T> not() {
final Predicate<T> originalPredicate = this;
return new Predicate<T>() {
@Override
public boolean test(T t) {
return !originalPredicate.test(t);
}
};
}
/**
* Return a predicate that is a conjunction of this predicate and another predicate
*/
public Predicate<T> and(final Predicate<T> conjunct) {
final Predicate<T> originalPredicate = this;
return new Predicate<T>() {
@Override
public boolean test(T t) {
return originalPredicate.test(t) && conjunct.test(t);
}
};
}
/**
* Return a predicate that is a conjunction of this predicate and another predicate
*/
public Predicate<T> or(final Predicate<T> disjunct) {
final Predicate<T> originalPredicate = this;
return new Predicate<T>() {
@Override
public boolean test(T t) {
return originalPredicate.test(t) || disjunct.test(t);
}
};
}
/**
* Create the predicate "is an element of c"
*/
public static <T> Predicate<T> isElementOf(final Collection<T> c) {
return new Predicate<T>() {
@Override
public boolean test(T t) {
return c.contains(t);
}
};
}
/**
* Filter a collection: generate a new list from an existing collection, consisting of the elements satisfying some predicate.
*
* @throws IllegalArgumentException if src == null
*/
public static <T> List<T> filter(Iterator<T> src, Predicate<T> pred) throws IllegalArgumentException {
if (src == null) {
throw new IllegalArgumentException("src == null");
}
ArrayList<T> result = new ArrayList<>();
for (; src.hasNext();) {
T curElem = src.next();
if (pred.test(curElem))
result.add(curElem);
}
return result;
}
}

View File

@ -12,13 +12,11 @@
package com.ibm.wala.util.collections;
import java.util.Collection;
import com.ibm.wala.util.Predicate;
import java.util.function.Predicate;
/**
* A filter defined by set membership
*/
public class CollectionFilter<T> extends Predicate<T> {
public class CollectionFilter<T> implements Predicate<T> {
private final Collection<? extends T> S;

View File

@ -12,8 +12,7 @@ package com.ibm.wala.util.collections;
import java.util.Iterator;
import java.util.NoSuchElementException;
import com.ibm.wala.util.Predicate;
import java.util.function.Predicate;
/**
* A <code>FilterIterator</code> filters an <code>Iterator</code> to generate a new one.

View File

@ -1,36 +0,0 @@
/*******************************************************************************
* Copyright (c) 2011 IBM Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package com.ibm.wala.util.collections;
import com.ibm.wala.util.Predicate;
/**
* A migration aid, to move from Filter to Predicate
*/
@Deprecated
public class FilterPredicate<T> extends Predicate<T> {
public static <T> FilterPredicate<T> toPredicate(Predicate<T> f) {
return new FilterPredicate<>(f);
}
private final Predicate<T> f;
private FilterPredicate(Predicate<T> f) {
this.f = f;
}
@Override
public boolean test(T t) {
return f.test(t);
}
}

View File

@ -10,12 +10,12 @@
*******************************************************************************/
package com.ibm.wala.util.collections;
import com.ibm.wala.util.Predicate;
import java.util.function.Predicate;
/**
* intersection of two filters
*/
public class Filtersection<T> extends Predicate<T> {
public class Filtersection<T> implements Predicate<T> {
final private Predicate<T> a;
final private Predicate<T> b;

View File

@ -10,12 +10,13 @@
*******************************************************************************/
package com.ibm.wala.util.collections;
import com.ibm.wala.util.Predicate;
import java.util.function.Predicate;
/**
* A filter that accepts everything.
*/
public class IndiscriminateFilter<T> extends Predicate<T> {
public class IndiscriminateFilter<T> implements Predicate<T> {
public static <T> IndiscriminateFilter<T> singleton() {
return new IndiscriminateFilter<>();

View File

@ -11,8 +11,8 @@
package com.ibm.wala.util.collections;
import java.util.Iterator;
import java.util.function.IntFunction;
import com.ibm.wala.util.functions.IntFunction;
import com.ibm.wala.util.intset.IntIterator;
/**

View File

@ -11,9 +11,8 @@
package com.ibm.wala.util.collections;
import java.util.Iterator;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.functions.Function;
import java.util.function.Function;
import java.util.function.Predicate;
/**
* utilities dealing with Iterators
*/

View File

@ -13,8 +13,7 @@ package com.ibm.wala.util.collections;
import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
import com.ibm.wala.util.functions.Function;
import java.util.function.Function;
/**
* An <code>MapIterator</code> maps an <code>Iterator</code> contents to produce a new Iterator

View File

@ -10,12 +10,12 @@
*******************************************************************************/
package com.ibm.wala.util.collections;
import com.ibm.wala.util.Predicate;
import java.util.function.Predicate;
/**
* A filter "A or B"
*/
public class OrFilter<T> extends Predicate<T> {
public class OrFilter<T> implements Predicate<T> {
public static <T> OrFilter<T> createOrFilter(Predicate<T> a, Predicate<T> b) {
if (a == null || b == null) {

View File

@ -51,9 +51,8 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.functions.Function;
import java.util.function.Function;
import java.util.function.Predicate;
/**
* Miscellaneous utility functions.

View File

@ -1,20 +0,0 @@
/*******************************************************************************
* Copyright (c) 2002 - 2006 IBM Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package com.ibm.wala.util.functions;
/**
*/
public interface Function<X,Y> {
Y apply(X object);
}

View File

@ -1,19 +0,0 @@
/*******************************************************************************
* Copyright (c) 2002 - 2006 IBM Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package com.ibm.wala.util.functions;
/**
*/
public interface IntFunction<T> {
T apply(int i);
}

View File

@ -1,17 +0,0 @@
/*******************************************************************************
* Copyright (c) 2013 IBM Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package com.ibm.wala.util.functions;
public interface VoidFunction<T> {
void apply(T v);
}

View File

@ -12,8 +12,7 @@ package com.ibm.wala.util.graph;
import java.util.Iterator;
import java.util.Map;
import com.ibm.wala.util.functions.Function;
import java.util.function.Function;
public class GXL {

View File

@ -11,6 +11,7 @@
package com.ibm.wala.util.graph;
import java.util.Iterator;
import java.util.function.Predicate;
import com.ibm.wala.dataflow.graph.AbstractMeetOperator;
import com.ibm.wala.dataflow.graph.BitVectorFramework;
@ -24,7 +25,6 @@ import com.ibm.wala.fixpoint.BitVectorVariable;
import com.ibm.wala.fixpoint.UnaryOperator;
import com.ibm.wala.util.CancelException;
import com.ibm.wala.util.MonitorUtil.IProgressMonitor;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.Iterator2Collection;
import com.ibm.wala.util.debug.Assertions;

View File

@ -17,14 +17,14 @@ import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.function.Predicate;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.collections.Iterator2Collection;
import com.ibm.wala.util.collections.IteratorUtil;
import com.ibm.wala.util.debug.Assertions;
import com.ibm.wala.util.functions.Function;
import com.ibm.wala.util.graph.impl.GraphInverter;
import com.ibm.wala.util.graph.traverse.DFS;
@ -70,7 +70,7 @@ public class GraphSlicer {
@Override
public Iterator<T> iterator() {
return Predicate.filter(g.iterator(), p).iterator();
return new FilterIterator<>(g.iterator(), p);
}
@Override
@ -101,7 +101,7 @@ public class GraphSlicer {
@Override
public Iterator<T> getPredNodes(T n) {
return Predicate.filter(g.getPredNodes(n), p).iterator();
return new FilterIterator<>(g.getPredNodes(n), p);
}
@Override
@ -111,7 +111,7 @@ public class GraphSlicer {
@Override
public Iterator<T> getSuccNodes(T n) {
return Predicate.filter(g.getSuccNodes(n), p).iterator();
return new FilterIterator<>(g.getSuccNodes(n), p);
}
@Override

View File

@ -17,8 +17,8 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Predicate;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.HashMapFactory;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.collections.NonNullSingletonIterator;

View File

@ -18,8 +18,8 @@ import java.util.Map;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
import java.util.function.Predicate;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.HashMapFactory;
import com.ibm.wala.util.collections.HashSetFactory;

View File

@ -12,8 +12,8 @@ package com.ibm.wala.util.graph.traverse;
import java.util.Iterator;
import java.util.List;
import java.util.function.Predicate;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.Pair;
import com.ibm.wala.util.graph.Graph;

View File

@ -15,8 +15,8 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.function.Predicate;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.HashMapFactory;
import com.ibm.wala.util.collections.NonNullSingletonIterator;
import com.ibm.wala.util.graph.Graph;

View File

@ -24,11 +24,11 @@ import java.nio.file.Files;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.regex.Pattern;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.functions.VoidFunction;
/**
* Simple utilities for accessing files.
@ -190,7 +190,7 @@ public class FileUtil {
}
}
public static void recurseFiles(VoidFunction<File> action, final Predicate<File> filter, File top) {
public static void recurseFiles(Consumer<File> action, final Predicate<File> filter, File top) {
if (top.isDirectory()) {
for(File f : top.listFiles(new FileFilter() {
@Override
@ -201,7 +201,7 @@ public class FileUtil {
recurseFiles(action, filter, f);
}
} else {
action.apply(top);
action.accept(top);
}
}
}

View File

@ -3,14 +3,14 @@ package com.ibm.wala.util.io;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.jar.JarFile;
import com.ibm.wala.util.PlatformUtil;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.ArrayIterator;
import com.ibm.wala.util.collections.FilterIterator;
import com.ibm.wala.util.collections.MapIterator;
import com.ibm.wala.util.functions.Function;
public class RtJar {

View File

@ -13,8 +13,8 @@ package com.ibm.wala.util.tables;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Map;
import java.util.function.Predicate;
import com.ibm.wala.util.Predicate;
import com.ibm.wala.util.collections.HashSetFactory;
/**