Packages

package bi

Implementation of a library for parsing Java bytecode and creating arbitrary representations.

OPAL's primary representation of Java byte code is the org.opalj.br representation which is defined in the respective package. A second representation that represents bytecode one-by-one is found in the org.opalj.da package.

This Package

Common constants and type definitions used across OPAL.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. bi
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. sealed trait AccessFlag extends PrimitiveAccessFlagsMatcher

    A class, field or method declaration's access flags.

    A class, field or method declaration's access flags. An access flag (e.g., public or static) is basically just a specific bit that can be combined with other access flags to create an integer based bit vector that represents all flags defined for a class, method or field declaration. Access flags are generally context dependent and the same value means different things depending on the context.

  2. final type AccessFlagsContext = bi.AccessFlagsContexts.Value
  3. class AccessFlagsIterator extends Iterator[AccessFlag]

    Enables iterating over a class( file member)'s access flags.

    Enables iterating over a class( file member)'s access flags. I.e., given the access flags of a class file, a field or a method, it is then possible to iterate over the flags (synthetic, public, deprecated, etc.) that are set.

  4. sealed trait AccessFlagsMatcher extends AnyRef

    Matches a given access flags bit array and enables the construction of complex matchers.

  5. final type AttributeParent = bi.AttributesParent.Value
  6. final type ConstantPoolTag = bi.ConstantPoolTags.Value
  7. trait PrimitiveAccessFlagsMatcher extends AccessFlagsMatcher
  8. sealed abstract class ReferenceKind extends AnyRef

    Common super class of the reference_kinds used by the constant pool's CONSTANT_MethodHandle_info structure.

  9. sealed trait VisibilityModifier extends AccessFlag

    Common supertype of all explicit visibility modifiers/access flags.

Value Members

  1. final val ClassFileMagic: Int(-889275714)

    Every Java class file starts with "0xCAFEBABE".

  2. final val Java10MajorVersion: Int(54)
  3. final val Java10Version: UShortPair
  4. final val Java11MajorVersion: Int(55)
  5. final val Java11Version: UShortPair
  6. final val Java12MajorVersion: Int(56)
  7. final val Java12Version: UShortPair
  8. final val Java13MajorVersion: Int(57)
  9. final val Java13Version: UShortPair
  10. final val Java14MajorVersion: Int(58)
  11. final val Java14Version: UShortPair
  12. final val Java15MajorVersion: Int(59)
  13. final val Java15Version: UShortPair
  14. final val Java16MajorVersion: Int(60)
  15. final val Java16Version: UShortPair
  16. final val Java1MajorVersion: Int(45)
  17. final val Java5MajorVersion: Int(49)
  18. final val Java5Version: UShortPair
  19. final val Java6MajorVersion: Int(50)
  20. final val Java6Version: UShortPair
  21. final val Java7MajorVersion: Int(51)
  22. final val Java7Version: UShortPair
  23. final val Java8MajorVersion: Int(52)
  24. final val Java8Version: UShortPair
  25. final val Java9MajorVersion: Int(53)
  26. final val Java9Version: UShortPair
  27. final val LatestSupportedJavaMajorVersion: Int(60)

    The latest major version supported by OPAL; this constant is adapted whenever a new version is supported.

  28. final val LatestSupportedJavaVersion: UShortPair

    The latest version supported by OPAL; this constant is adapted whenever a new version is supported.

  29. val MissingLibraryWarning: String
  30. final lazy val isCurrentJREAtLeastJava10: Boolean
  31. final lazy val isCurrentJREAtLeastJava11: Boolean
  32. final lazy val isCurrentJREAtLeastJava15: Boolean
  33. final lazy val isCurrentJREAtLeastJava16: Boolean
  34. final lazy val isCurrentJREAtLeastJava8: Boolean

    Returns true if the current JRE is at least Java 8 or a newer version.

    Returns true if the current JRE is at least Java 8 or a newer version.

    Note

    This method makes some assumptions how the version numbers will evolve.

  35. def jdkVersion(majorVersion: Int): String

    Returns a textual representation of the Java version used to create the respective class file.

  36. final def warnMissingLibrary(implicit ctx: LogContext): Unit
  37. object ACC_ABSTRACT extends AccessFlag
  38. object ACC_ANNOTATION extends AccessFlag
  39. object ACC_BRIDGE extends AccessFlag
  40. object ACC_ENUM extends AccessFlag
  41. object ACC_FINAL extends AccessFlag
  42. object ACC_INTERFACE extends AccessFlag
  43. object ACC_MANDATED extends AccessFlag
  44. object ACC_MODULE extends AccessFlag

    Identifies a class as defining a Java 9 module.

    Identifies a class as defining a Java 9 module.

    Note

    From the specification: "If ACC_MODULE is set in ClassFile.access_flags, then no other flag in ClassFile.access_flags may be set." The name of the class has to be "/module-info".

    ,

    super_class, interfaces_count, fields_count, methods_count: zero. I.e., a module does not have a super class.

  45. object ACC_NATIVE extends AccessFlag
  46. object ACC_OPEN extends AccessFlag
  47. object ACC_PRIVATE extends VisibilityModifier
  48. object ACC_PROTECTED extends VisibilityModifier
  49. object ACC_PUBLIC extends VisibilityModifier
  50. object ACC_STATIC extends AccessFlag
  51. object ACC_STATIC_PHASE extends AccessFlag

    Note

    From the JVM 9 specification: "Indicates that this [inter-module] dependence is mandatory in the static phase, i.e., at compile time, but is optional in the dynamic phase, i.e., at run time."

    ,

    Only used in combination with Java 9 modules.

  52. object ACC_STRICT extends AccessFlag
  53. object ACC_SUPER extends AccessFlag
  54. object ACC_SYNCHRONIZED extends AccessFlag
  55. object ACC_SYNTHETIC extends AccessFlag
  56. object ACC_TRANSIENT extends AccessFlag
  57. object ACC_TRANSITIVE extends AccessFlag

    Note

    From the JVM 9 specification: "Indicates that any module which depends on the current module, implicitly declares a dependence on the module indicated by this entry."

    ,

    Only used in combination with Java 9 modules.

  58. object ACC_VARARGS extends AccessFlag
  59. object ACC_VOLATILE extends AccessFlag
  60. object AccessFlags

    Convenience methods related to access flags.

  61. object AccessFlagsContexts extends Enumeration

    Enumeration of the different contexts in which the JVM Spec.

    Enumeration of the different contexts in which the JVM Spec. uses access_flags fields and also an enumeration which access_flags are found in which context.

  62. object AccessFlagsIterator

    Factory for creating AccessFlagsIterator objects.

  63. object AccessFlagsMatcher

    Predefines several access flags matchers.

    Predefines several access flags matchers.

    Example:
    1. The predefined matchers are used in the following way:

      method match { case Method(PUBLIC_STATIC(),...) => ... }
      field match { case Field(PUBLIC_STATIC_FINAL(),...) => ... }
  64. object AnnotationDefaultAttribute

    Common properties of AnnotationDefault attributes.

  65. object AttributesParent extends Enumeration

    Enumeration of all class file structures that can have attributes.

  66. object BootstrapMethodsAttribute
  67. object CodeAttribute
  68. object ConstantPoolTags extends Enumeration

    A constant pool tag identifies the type of a specific entry in the constant pool.

  69. object ConstantValueAttribute
  70. object DeprecatedAttribute
  71. object EnclosingMethodAttribute
  72. object ExceptionsAttribute
  73. object InnerClassesAttribute
  74. object LineNumberTableAttribute
  75. object LocalVariableTableAttribute
  76. object LocalVariableTypeTableAttribute
  77. object MethodParametersAttribute
  78. object ModuleAttribute
  79. object ModuleMainClassAttribute
  80. object ModulePackagesAttribute
  81. object NestHostAttribute
  82. object NestMembersAttribute
  83. object PrimitiveAccessFlagsMatcher

    Extractor for the bitmask used by a PrimitiveAccessFlagsMatcher.

  84. object REF_getField extends ReferenceKind with Product with Serializable
  85. object REF_getStatic extends ReferenceKind with Product with Serializable
  86. object REF_invokeInterface extends ReferenceKind with Product with Serializable
  87. object REF_invokeSpecial extends ReferenceKind with Product with Serializable
  88. object REF_invokeStatic extends ReferenceKind with Product with Serializable
  89. object REF_invokeVirtual extends ReferenceKind with Product with Serializable
  90. object REF_newInvokeSpecial extends ReferenceKind with Product with Serializable
  91. object REF_putField extends ReferenceKind with Product with Serializable
  92. object REF_putStatic extends ReferenceKind with Product with Serializable
  93. object RecordAttribute
  94. object ReferenceKind

    Factory for ReferenceKind objects.

  95. object RuntimeInvisibleAnnotationsAttribute

    Common properties of RuntimeInvisibleAnnotations.

  96. object RuntimeInvisibleParameterAnnotationsAttribute

    Common properties of the RuntimeInvisibleParameterAnnotations attribute.

  97. object RuntimeInvisibleTypeAnnotationsAttribute

    Common properties of RuntimeInvisibleTypeAnnotations attributes.

  98. object RuntimeVisibleAnnotationsAttribute

    Common properties of RuntimeVisibleAnnotations attributes.

  99. object RuntimeVisibleParameterAnnotationsAttribute

    Common properties of RuntimeVisibleParameterAnnotations attributes.

  100. object RuntimeVisibleTypeAnnotationsAttribute

    Common properties of RuntimeVisibleTypeAnnotations attributes.

  101. object SignatureAttribute
  102. object SourceDebugExtensionAttribute
  103. object SourceFileAttribute
  104. object StackMapTableAttribute
  105. object SyntheticAttribute
  106. object VisibilityModifier

    Defines extractor methods related to visibility modifiers.

Inherited from AnyRef

Inherited from Any

Ungrouped