public class WholeProgramInferenceScenesHelper extends Object
The set of annotations inferred for a certain class is stored in an AScene, which writeScenesToJaif() can write into a .jaif file.
 For example, a class field of a class whose fully-qualified name is my.package.MyClass
 will have its inferred type stored in a Scene, and later written into a file named my.package.MyClass.jaif.
 
This class populates the initial Scenes by reading existing .jaif files on the JAIF_FILES_PATH directory. Having more information in those initial .jaif files means that the
 precision achieved by the whole-program inference analysis will be better. writeScenesToJaif() rewrites the initial .jaif files, and may create new ones.
| Modifier and Type | Field and Description | 
|---|---|
static String | 
JAIF_FILES_PATH
Directory where .jaif files will be written to and read from. 
 | 
| Constructor and Description | 
|---|
WholeProgramInferenceScenesHelper(boolean ignoreNullAssignments)  | 
| Modifier and Type | Method and Description | 
|---|---|
protected scenelib.annotations.el.AClass | 
getAClass(String className,
         String jaifPath)
Returns the AClass in an AScene, given a className and a jaifPath. 
 | 
protected String | 
getJaifPath(String className)
Returns the String representing the .jaif path of a class given its name. 
 | 
protected scenelib.annotations.el.AScene | 
getScene(String jaifPath)
Returns the Scene stored in a .jaif file path passed as input. 
 | 
protected void | 
updateAnnotationSetInScene(scenelib.annotations.el.ATypeElement type,
                          AnnotatedTypeFactory atf,
                          String jaifPath,
                          AnnotatedTypeMirror rhsATM,
                          AnnotatedTypeMirror lhsATM,
                          TypeUseLocation defLoc)
Updates the set of annotations in a location of a Scene. 
 | 
void | 
writeScenesToJaif()
Write all modified scenes into .jaif files. 
 | 
public static final String JAIF_FILES_PATH
public WholeProgramInferenceScenesHelper(boolean ignoreNullAssignments)
public void writeScenesToJaif()
updateAnnotationSetInScene(scenelib.annotations.el.ATypeElement, org.checkerframework.framework.type.AnnotatedTypeFactory, java.lang.String, org.checkerframework.framework.type.AnnotatedTypeMirror, org.checkerframework.framework.type.AnnotatedTypeMirror, org.checkerframework.framework.qual.TypeUseLocation).)protected String getJaifPath(String className)
protected scenelib.annotations.el.AScene getScene(String jaifPath)
protected scenelib.annotations.el.AClass getAClass(String className, String jaifPath)
protected void updateAnnotationSetInScene(scenelib.annotations.el.ATypeElement type,
                                          AnnotatedTypeFactory atf,
                                          String jaifPath,
                                          AnnotatedTypeMirror rhsATM,
                                          AnnotatedTypeMirror lhsATM,
                                          TypeUseLocation defLoc)
type - ATypeElement of the Scene which will be modifiedatf - the annotated type factory of a given type system, whose type hierarchy will be
     usedjaifPath - used to identify a ScenerhsATM - the RHS of the annotated type on the source codelhsATM - the LHS of the annotated type on the source codedefLoc - the location where the annotation will be added