Package

org.opalj

bi

Permalink

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

    Permalink

    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. type AccessFlagsContext = bi.AccessFlagsContexts.Value

    Permalink
  3. class AccessFlagsIterator extends Iterator[AccessFlag]

    Permalink

    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

    Permalink

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

  5. type AttributeParent = bi.AttributesParent.Value

    Permalink
  6. type ConstantPoolTag = bi.ConstantPoolTags.Value

    Permalink
  7. trait PrimitiveAccessFlagsMatcher extends AccessFlagsMatcher

    Permalink
  8. sealed abstract class ReferenceKind extends AnyRef

    Permalink

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

  9. sealed trait VisibilityModifier extends AccessFlag

    Permalink

    Common supertype of all explicit visibility modifiers/access flags.

Value Members

  1. object ACC_ABSTRACT extends AccessFlag

    Permalink
  2. object ACC_ANNOTATION extends AccessFlag

    Permalink
  3. object ACC_BRIDGE extends AccessFlag

    Permalink
  4. object ACC_DYNAMIC_PHASE extends AccessFlag

    Permalink

    Note

    Only used in combination with Java 9 modules.

    ,

    From the JVM 9 specification: "Indicates that the package is concealed in the static phase, i.e., at compile time, but is exported in the dynamic phase, i.e., at run time."

  5. object ACC_ENUM extends AccessFlag

    Permalink
  6. object ACC_FINAL extends AccessFlag

    Permalink
  7. object ACC_INTERFACE extends AccessFlag

    Permalink
  8. object ACC_MANDATED extends AccessFlag

    Permalink
  9. object ACC_MODULE extends AccessFlag

    Permalink

    Identifies a class as defining a Java 9 module.

    Identifies a class as defining a Java 9 module.

    Note

    Only used in combination with Java 9 modules.

    ,

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

    ,

    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".

  10. object ACC_NATIVE extends AccessFlag

    Permalink
  11. object ACC_PRIVATE extends VisibilityModifier

    Permalink
  12. object ACC_PROTECTED extends VisibilityModifier

    Permalink
  13. object ACC_PUBLIC extends VisibilityModifier

    Permalink
  14. object ACC_STATIC extends AccessFlag

    Permalink
  15. object ACC_STATIC_PHASE extends AccessFlag

    Permalink

    Note

    Only used in combination with Java 9 modules.

    ,

    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."

  16. object ACC_STRICT extends AccessFlag

    Permalink
  17. object ACC_SUPER extends AccessFlag

    Permalink
  18. object ACC_SYNCHRONIZED extends AccessFlag

    Permalink
  19. object ACC_SYNTHETIC extends AccessFlag

    Permalink
  20. object ACC_TRANSIENT extends AccessFlag

    Permalink
  21. object ACC_TRANSITIVE extends AccessFlag

    Permalink

    Indicates that any module which depends on the current module, implicitly declares a dependence on the module indicated by this entry.

  22. object ACC_VARARGS extends AccessFlag

    Permalink
  23. object ACC_VOLATILE extends AccessFlag

    Permalink
  24. object AccessFlags

    Permalink

    Convenience methods related to access flags.

  25. object AccessFlagsContexts extends Enumeration

    Permalink

    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.

  26. object AccessFlagsIterator

    Permalink

    Factory for creating AccessFlagsIterator objects.

  27. object AccessFlagsMatcher

    Permalink

    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(),...) => ... }
  28. object AnnotationDefaultAttribute

    Permalink

    Common properties of AnnotationDefault attributes.

  29. object AttributesParent extends Enumeration

    Permalink

    Enumeration of all class file structures that can have attributes.

  30. object BootstrapMethodsAttribute

    Permalink
  31. final val ClassFileMagic: Int(-889275714)

    Permalink

    Every Java class file starts with "0xCAFEBABE".

  32. object CodeAttribute

    Permalink
  33. object ConstantPoolTags extends Enumeration

    Permalink

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

  34. object ConstantValueAttribute

    Permalink
  35. object DeprecatedAttribute

    Permalink
  36. object EnclosingMethodAttribute

    Permalink
  37. object ExceptionsAttribute

    Permalink
  38. object InnerClassesAttribute

    Permalink
  39. final val Java1MajorVersion: Int(45)

    Permalink
  40. final val Java5MajorVersion: Int(49)

    Permalink
  41. final val Java6MajorVersion: Int(50)

    Permalink
  42. final val Java7MajorVersion: Int(51)

    Permalink
  43. final val Java8MajorVersion: Int(52)

    Permalink
  44. final val Java9MajorVersion: Int(53)

    Permalink
  45. object LineNumberTableAttribute

    Permalink
  46. object LocalVariableTableAttribute

    Permalink
  47. object LocalVariableTypeTableAttribute

    Permalink
  48. object MethodParametersAttribute

    Permalink
  49. object PrimitiveAccessFlagsMatcher

    Permalink

    Extractor for the bitmask used by a PrimitiveAccessFlagsMatcher.

  50. object REF_getField extends ReferenceKind with Product with Serializable

    Permalink
  51. object REF_getStatic extends ReferenceKind with Product with Serializable

    Permalink
  52. object REF_invokeInterface extends ReferenceKind with Product with Serializable

    Permalink
  53. object REF_invokeSpecial extends ReferenceKind with Product with Serializable

    Permalink
  54. object REF_invokeStatic extends ReferenceKind with Product with Serializable

    Permalink
  55. object REF_invokeVirtual extends ReferenceKind with Product with Serializable

    Permalink
  56. object REF_newInvokeSpecial extends ReferenceKind with Product with Serializable

    Permalink
  57. object REF_putField extends ReferenceKind with Product with Serializable

    Permalink
  58. object REF_putStatic extends ReferenceKind with Product with Serializable

    Permalink
  59. object ReferenceKind

    Permalink

    Factory for ReferenceKind objects.

  60. object RuntimeInvisibleAnnotationsAttribute

    Permalink

    Common properties of RuntimeInvisibleAnnotations.

  61. object RuntimeInvisibleParameterAnnotationsAttribute

    Permalink

    Common properties of the RuntimeInvisibleParameterAnnotations attribute.

  62. object RuntimeInvisibleTypeAnnotationsAttribute

    Permalink

    Common properties of RuntimeInvisibleTypeAnnotations attributes.

  63. object RuntimeVisibleAnnotationsAttribute

    Permalink

    Common properties of RuntimeVisibleAnnotations attributes.

  64. object RuntimeVisibleParameterAnnotationsAttribute

    Permalink

    Common properties of RuntimeVisibleParameterAnnotations attributes.

  65. object RuntimeVisibleTypeAnnotationsAttribute

    Permalink

    Common properties of RuntimeVisibleTypeAnnotations attributes.

  66. object SignatureAttribute

    Permalink
  67. object SourceDebugExtensionAttribute

    Permalink
  68. object SourceFileAttribute

    Permalink
  69. object StackMapTableAttribute

    Permalink
  70. object SyntheticAttribute

    Permalink
  71. object VisibilityModifier

    Permalink

    Defines extractor methods related to visibility modifiers.

  72. final lazy val isCurrentJREAtLeastJava8: Boolean

    Permalink

    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.

  73. def jdkVersion(majorVersion: Int): String

    Permalink

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

  74. package reader

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped