clean up and refactor some APIs surrounding file I/O and exclusions files. Needed in order to allow clients to use some APIs with application-specific exclusions.

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2249 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
This commit is contained in:
sjfink 2008-01-02 22:27:50 +00:00
parent bfbe4fdd2f
commit 29f015f282
1 changed files with 8 additions and 7 deletions

View File

@ -10,6 +10,7 @@
*****************************************************************************/
package com.ibm.wala.cast.java.client;
import java.io.IOException;
import java.util.Set;
import com.ibm.wala.cast.ir.ssa.AstIRFactory;
@ -37,6 +38,7 @@ import com.ibm.wala.ssa.Value;
import com.ibm.wala.types.ClassLoaderReference;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.config.FileOfClasses;
import com.ibm.wala.util.config.FileProvider;
import com.ibm.wala.util.debug.Assertions;
/**
@ -107,18 +109,17 @@ public class JavaSourceAnalysisEngine extends AbstractAnalysisEngine {
}
}
protected void buildAnalysisScope() {
protected void buildAnalysisScope() throws IOException {
scope = makeSourceAnalysisScope();
if (getExclusionsFile() != null) {
ClassLoader loader = getClass().getClassLoader();
scope.setExclusions(new FileOfClasses(getExclusionsFile(), loader));
scope.setExclusions(new FileOfClasses(FileProvider.getFile(getExclusionsFile())));
}
for( Module M : this.systemEntries) {
for (Module M : this.systemEntries) {
scope.addToScope(scope.getPrimordialLoader(), M);
}
// add user stuff
addApplicationModulesToScope();
}
@ -140,7 +141,7 @@ public class JavaSourceAnalysisEngine extends AbstractAnalysisEngine {
ClassLoaderFactory factory = getClassLoaderFactory(scope.getExclusions(), getTranslatorExtension());
try {
cha = ClassHierarchy.make(getScope(), factory );
cha = ClassHierarchy.make(getScope(), factory);
} catch (ClassHierarchyException e) {
System.err.println("Class Hierarchy construction failed");
System.err.println(e.toString());
@ -159,7 +160,7 @@ public class JavaSourceAnalysisEngine extends AbstractAnalysisEngine {
}
public AnalysisOptions getDefaultOptions(Iterable<Entrypoint> entrypoints) {
AnalysisOptions options = new AnalysisOptions(getScope(),entrypoints);
AnalysisOptions options = new AnalysisOptions(getScope(), entrypoints);
SSAOptions ssaOptions = new SSAOptions();
ssaOptions.setDefaultValues(new SSAOptions.DefaultValues() {