in jar-infer/jar-infer-lib/src/main/java/com/uber/nullaway/jarinfer/DefinitelyDerefedParamsDriver.java [179:220]
public MethodParamAnnotations run(
String inPaths,
String pkgName,
String outPath,
boolean annotateBytecode,
boolean stripJarSignatures,
boolean includeNonPublicClasses,
boolean dbg,
boolean vbs)
throws IOException, ClassHierarchyException {
DEBUG = dbg;
VERBOSE = vbs;
this.annotateBytecode = annotateBytecode;
this.stripJarSignatures = stripJarSignatures;
Set<String> setInPaths = new HashSet<>(Arrays.asList(inPaths.split(",")));
analysisStartTime = System.currentTimeMillis();
for (String inPath : setInPaths) {
analyzeFile(pkgName, inPath, includeNonPublicClasses);
if (this.annotateBytecode) {
String outFile = outPath;
if (setInPaths.size() > 1) {
outFile =
outPath
+ "/"
+ FilenameUtils.getBaseName(inPath)
+ "-annotated."
+ FilenameUtils.getExtension(inPath);
}
writeAnnotations(inPath, outFile);
}
}
if (!this.annotateBytecode) {
new File(outPath).getParentFile().mkdirs();
if (outPath.endsWith(".astubx")) {
writeModel(new DataOutputStream(new FileOutputStream(outPath)));
} else {
writeModelJAR(outPath);
}
}
lastOutPath = outPath;
return nonnullParams;
}