Packages

  • package root
    Definition Classes
    root
  • package org
    Definition Classes
    root
  • package opalj

    OPAL is a Scala-based framework for the static analysis, manipulation and creation of Java bytecode.

    OPAL is a Scala-based framework for the static analysis, manipulation and creation of Java bytecode. OPAL is designed with performance, scalability and adaptability in mind.

    Its main components are:

    • a library (Common) which provides generally useful data-structures and algorithms for static analyses.
    • a framework for implementing lattice based static analyses (Static Analysis Infrastructure)
    • a framework for parsing Java bytecode (Bytecode Infrastructure) that can be used to create arbitrary representations.
    • a library to create a one-to-one in-memory representation of Java bytecode (Bytecode Disassembler).
    • a library to create a representation of Java bytecode that facilitates writing simple static analyses (Bytecode Representation - org.opalj.br).
    • a scalable, easily customizable framework for the abstract interpretation of Java bytecode (Abstract Interpretation Framework - org.opalj.ai).
    • a library to extract dependencies between code elements and to facilitate checking architecture definitions.
    • a library for the lightweight manipulation and creation of Java bytecode (Bytecode Assembler).

    General Design Decisions

    Thread Safety

    Unless explicitly noted, OPAL is thread safe. I.e., the classes defined by OPAL can be considered to be thread safe unless otherwise stated. (For example, it is possible to read and process class files concurrently without explicit synchronization on the client side.)

    No null Values

    Unless explicitly noted, OPAL does not null values I.e., fields that are accessible will never contain null values and methods will never return null. If a method accepts null as a value for a parameter or returns a null value it is always explicitly documented. In general, the behavior of methods that are passed null values is undefined unless explicitly documented.

    No Typecasts for Collections

    For efficiency reasons, OPAL sometimes uses mutable data-structures internally. After construction time, these data-structures are generally represented using their generic interfaces (e.g., scala.collection.{Set,Map}). However, a downcast (e.g., to add/remove elements) is always forbidden as it would effectively prevent thread-safety. Furthermore, the concrete data-structure is always considered an implementation detail and may change at any time.

    Assertions

    OPAL makes heavy use of Scala's Assertion Facility to facilitate writing correct code. Hence, for production builds (after thorough testing(!)) it is highly recommend to build OPAL again using -Xdisable-assertions.

    Definition Classes
    org
  • package hermes
    Definition Classes
    opalj
  • package queries
    Definition Classes
    hermes
  • ClassFileLocation
  • DefaultFeatureQuery
  • DefaultGroupedFeaturesQuery
  • DuplicateFeatureIDException
  • Feature
  • FeatureQueries
  • FeatureQuery
  • FieldLocation
  • Hermes
  • HermesCLI
  • HermesConfig
  • HermesCore
  • InstructionLocation
  • Location
  • LocationsContainer
  • MethodLocation
  • PackageLocation
  • ProjectConfiguration
  • ProjectFeatures
  • ProjectInstantiation
  • Query
  • Visualization

object Hermes extends JFXApp with HermesCore

Executes all analyses to determine the representativeness of the given projects.

(see Hermes.txt for further details).

Source
Hermes.scala
Linear Supertypes
HermesCore, HermesConfig, JFXApp, DelayedInit, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Hermes
  2. HermesCore
  3. HermesConfig
  4. JFXApp
  5. DelayedInit
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final lazy val Config: Config

    The global configuration file.

    The global configuration file.

    Definition Classes
    HermesConfig
  5. final lazy val MaxLocations: Int

    The number of locations per feature pre project that is stored.

    The number of locations per feature pre project that is stored.

    Definition Classes
    HermesConfig
  6. final val MaxLocationsKey: String

    The config key of the number of locations per feature pre project that is stored.

    The config key of the number of locations per feature pre project that is stored.

    Definition Classes
    HermesConfig
  7. val analysesFinished: BooleanProperty
    Definition Classes
    HermesCore
  8. val analysisTimesStage: Stage
  9. def analyzeCorpus(runAsDaemons: Boolean): Thread

    Executes the queries for all projects.

    Executes the queries for all projects. Basically, the queries are executed in parallel for each project.

    Definition Classes
    HermesCore
    Note

    This method is only intended to be called once!

  10. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  11. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  12. val corpusAnalysisTime: LongProperty
    Definition Classes
    HermesCore
  13. def createFileMenuItems(): List[MenuItem]
  14. def delayedInit(x: ⇒ Unit): Unit
    Definition Classes
    JFXApp → DelayedInit
  15. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  17. def exportMapping(writer: BufferedWriter): Unit
    Definition Classes
    HermesCore
  18. def exportMapping(file: File): Unit

    Exports the mapping between a feature query class and its feature queries.

    Exports the mapping between a feature query class and its feature queries.

    For the feature ids the following substitution scheme is used:

    • \\ is replaced by \\\\
    • new line ('\\n') is replaced by \\n
    • , is replaced by \\,
    file

    The file to which the mapping will be written.

    Definition Classes
    HermesCore
  19. def exportStatistics(writer: BufferedWriter, exportProjectStatistics: Boolean): Unit
    Definition Classes
    HermesCore
  20. def exportStatistics(file: File, exportProjectStatistics: Boolean = true): Unit
    Definition Classes
    HermesCore
  21. val featureComparator: Comparator[Feature[URL]]
  22. lazy val featureIDs: List[(String, FeatureQuery)]

    The list of unique features derived by enabled feature queries; one feature query may be referenced by multiple unique feature queries.

    The list of unique features derived by enabled feature queries; one feature query may be referenced by multiple unique feature queries.

    Definition Classes
    HermesCore
  23. lazy val featureMatrix: ObservableBuffer[ProjectFeatures[URL]]

    The matrix containing for each project the extensions of all features.

    The matrix containing for each project the extensions of all features.

    Definition Classes
    HermesCore
  24. lazy val featureQueries: List[FeatureQuery]

    The list of enabled feature queries.

    The list of enabled feature queries.

    Definition Classes
    HermesCore
  25. val featureQueryColumns: List[TableColumn[ProjectFeatures[URL], Feature[URL]]]
  26. val featuresTableView: TableView[ProjectFeatures[URL]]
  27. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  28. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  29. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  30. def hostServices: HostServices
    Definition Classes
    JFXApp
  31. def initialize(configFile: File): Unit

    Reads the initial, overall configuration.

    Reads the initial, overall configuration. This method or setConfig has to be called before Hermes can be used.

    Definition Classes
    HermesConfig
  32. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  33. val locationsView: ListView[Location[URL]]
  34. def main(args: Array[String]): Unit
    Definition Classes
    JFXApp
  35. val mainPane: HiddenSidesPane
  36. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  37. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  38. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  39. lazy val parameters: Parameters
    Attributes
    protected
    Definition Classes
    JFXApp
  40. lazy val perFeatureCounts: Array[IntegerProperty]

    Summary of the number of occurrences of a feature across all projects.

    Summary of the number of occurrences of a feature across all projects.

    Definition Classes
    HermesCore
  41. val preferences: Preferences
  42. var primitiveFeatureIndex: Int
  43. val projectColumn: TableColumn[ProjectFeatures[URL], String]
  44. lazy val projectConfigurations: List[ProjectConfiguration]

    The set of all project configurations.

    The set of all project configurations.

    Definition Classes
    HermesCore
  45. lazy val registeredQueries: List[Query]

    The list of all registered feature queries.

    The list of all registered feature queries.

    Definition Classes
    HermesCore
  46. def renderConfig: String

    Textual representation of the configuration related to OPAL/Hermes.

    Textual representation of the configuration related to OPAL/Hermes.

    Definition Classes
    HermesConfig
  47. def reportProgress(f: ⇒ Double): Unit

    Called to report the progress.

    Called to report the progress. If the double value is 1.0 the analyses has finished. Note that report progress is executed concurrently, but f must not be called concurrently and may need to be scheduled as part of the UI thread if the progress is visualized.

    Definition Classes
    HermesHermesCore
  48. val rootPane: BorderPane
  49. def setConfig(config: Config): Unit

    Sets the used configuration object.

    Sets the used configuration object.

    Definition Classes
    HermesConfig
  50. val showFeatureQueryResults: GridPane
  51. val stage: PrimaryStage
    Definition Classes
    JFXApp
  52. def stopApp(): Unit
    Definition Classes
    JFXApp
  53. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  54. def toString(): String
    Definition Classes
    AnyRef → Any
  55. def updateProjectData(f: ⇒ Unit): Unit

    Note that update project data is executed concurrently, but f must not be called concurrently and may need to be scheduled as part of the UI thread if the affected data is visualized.

    Note that update project data is executed concurrently, but f must not be called concurrently and may need to be scheduled as part of the UI thread if the affected data is visualized.

    Definition Classes
    HermesHermesCore
  56. final val usage: String
  57. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  58. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  59. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from HermesCore

Inherited from HermesConfig

Inherited from JFXApp

Inherited from DelayedInit

Inherited from AnyRef

Inherited from Any

Ungrouped