accrue.analysis.readwritesets

## Class ReadWriteSetsAnalysisUtil

- java.lang.Object
- - accrue.analysis.interprocanalysis.AnalysisUtil<ReadWriteSet>
  - - accrue.analysis.readwritesets.ReadWriteSetsAnalysisUtil

-     public class ReadWriteSetsAnalysisUtil
      extends AnalysisUtil<ReadWriteSet>

  `AnalysisUtil` for an analysis that gathers the set of locations read and written by an analysis unit.

- - ### Field Summary

    - ### Fields inherited from class accrue.analysis.interprocanalysis.AnalysisUtil

      `extInfo, instanceInitializersChecked, workQueue`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ReadWriteSetsAnalysisUtil(WorkQueue<ReadWriteSet> workQueue, AnalysisUnit currentAnalysisUnit, AccrueExtensionInfo extInfo)` Make a new analysis helper class

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ExitMap<ReadWriteSet>` | `analyze(polyglot.ast.CodeNode n, ReadWriteSet before)` Analyze the given code with the given current analysis results
    `ReadWriteSet` | `call(polyglot.types.ConstructorInstance ci, polyglot.ast.New n)` Process a constructor call from a new expression
    `ReadWriteSet` | `call(polyglot.types.MethodInstance mi, polyglot.ast.Call n)` Analyze a method call
    `ReadWriteSet` | `constructorCall(polyglot.types.ConstructorInstance ci, polyglot.ast.ConstructorCall n)` Process a constructor call to this() or super(), i.e., from within a constructor.

    - ### Methods inherited from class accrue.analysis.interprocanalysis.AnalysisUtil

      `abstractLocations, abstractLocations, abstractLocations, abstractLocations, abstractLocations, abstractLocations, abstractLocations, abstractLocations, abstractLocations, abstractLocationsForArray, abstractLocationsForArray, abstractLocationsForArray, abstractLocationsImplicitTarget, analysisName, analyzeInitializers, analyzeStaticInitializers, createExitMap, currentAnalysisUnit, currentClass, currentContext, extensionInfo, instanceInitializers, leq, maybeRecursiveCall, pointsTo, pointsTo, pointsTo, pointsTo, pointsTo, pointsTo, pointsTo, pointsTo, pointsTo, pointsToGraph, pointsToThis, process, recordMissingCode, typeSystem, upperBound, workQueue`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ReadWriteSetsAnalysisUtil

          public ReadWriteSetsAnalysisUtil(WorkQueue<ReadWriteSet> workQueue,
                                   AnalysisUnit currentAnalysisUnit,
                                   AccrueExtensionInfo extInfo)

      Make a new analysis helper class
      Parameters:
        `workQueue` - Work queue for the analysis
        `currentAnalysisUnit` - Method and context currently being analyzed
        `extInfo` - Accrue extension information

  - ### Method Detail

    - #### analyze

          public ExitMap<ReadWriteSet> analyze(polyglot.ast.CodeNode n,
                                      ReadWriteSet before)
                                        throws polyglot.types.SemanticException

      Description copied from class: `AnalysisUtil`
      Analyze the given code with the given current analysis results
      Specified by:
        `analyze` in class `AnalysisUtil<ReadWriteSet>`
      Parameters:
        `n` - Code to analyze
        `before` - analysis result before analyzing the given code
      Returns:
        Map from exit condition to analysis result
      Throws:
        `polyglot.types.SemanticException` - thrown if the analysis fails

    - #### call

          public ReadWriteSet call(polyglot.types.MethodInstance mi,
                          polyglot.ast.Call n)

      Analyze a method call
      Parameters:
        `mi` - method being analyzed
        `n` - AST node for the method call
      Returns:
        results of the analysis

    - #### call

          public ReadWriteSet call(polyglot.types.ConstructorInstance ci,
                          polyglot.ast.New n)

      Process a constructor call from a new expression
      Parameters:
        `ci` - constructor being called
        `n` - AST node for the constructor call
      Returns:
        analysis results

    - #### constructorCall

          public ReadWriteSet constructorCall(polyglot.types.ConstructorInstance ci,
                                     polyglot.ast.ConstructorCall n)

      Process a constructor call to this() or super(), i.e., from within a constructor.
      Parameters:
        `ci` - constructor being called
        `n` - AST node for the constructor call
      Returns:
        analysis results