Class: JavaClass::ClassFile::AccessFlags

Inherits:
Object
  • Object
show all
Includes:
AccessFlagsConstants
Defined in:
lib/javaclass/classfile/access_flags.rb

Overview

The general JVM access flags.

Author

Peter Kofler

Direct Known Subclasses

ClassAccessFlags

Constant Summary

Constants included from AccessFlagsConstants

JavaClass::ClassFile::AccessFlagsConstants::ACC_ABSTRACT, JavaClass::ClassFile::AccessFlagsConstants::ACC_ACC_BRIDGE, JavaClass::ClassFile::AccessFlagsConstants::ACC_ANNOTATION, JavaClass::ClassFile::AccessFlagsConstants::ACC_ENUM, JavaClass::ClassFile::AccessFlagsConstants::ACC_FINAL, JavaClass::ClassFile::AccessFlagsConstants::ACC_IMPLICIT, JavaClass::ClassFile::AccessFlagsConstants::ACC_INTERFACE, JavaClass::ClassFile::AccessFlagsConstants::ACC_MANDATED, JavaClass::ClassFile::AccessFlagsConstants::ACC_MODULE, JavaClass::ClassFile::AccessFlagsConstants::ACC_NATIVE, JavaClass::ClassFile::AccessFlagsConstants::ACC_PRIVATE, JavaClass::ClassFile::AccessFlagsConstants::ACC_PROTECTED, JavaClass::ClassFile::AccessFlagsConstants::ACC_PUBLIC, JavaClass::ClassFile::AccessFlagsConstants::ACC_STATIC, JavaClass::ClassFile::AccessFlagsConstants::ACC_STRICT, JavaClass::ClassFile::AccessFlagsConstants::ACC_SUPER, JavaClass::ClassFile::AccessFlagsConstants::ACC_SYNCHRONIZED, JavaClass::ClassFile::AccessFlagsConstants::ACC_SYNTHETIC, JavaClass::ClassFile::AccessFlagsConstants::ACC_TRANSIENT, JavaClass::ClassFile::AccessFlagsConstants::ACC_VARARGS, JavaClass::ClassFile::AccessFlagsConstants::ACC_VOLATILE

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(flags) ⇒ AccessFlags

Returns a new instance of AccessFlags.



14
15
16
17
18
# File 'lib/javaclass/classfile/access_flags.rb', line 14

def initialize(flags)
  @flags = flags
  correct_flags
  assert_flags
end

Instance Attribute Details

#flagsObject (readonly)

Returns the value of attribute flags.



12
13
14
# File 'lib/javaclass/classfile/access_flags.rb', line 12

def flags
  @flags
end

Instance Method Details

#abstract?Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/javaclass/classfile/access_flags.rb', line 63

def abstract?
  is? ACC_ABSTRACT
end

#annotation?Boolean

Returns:

  • (Boolean)


79
80
81
# File 'lib/javaclass/classfile/access_flags.rb', line 79

def annotation?
  is? ACC_ANNOTATION
end

#enum?Boolean

Returns:

  • (Boolean)


75
76
77
# File 'lib/javaclass/classfile/access_flags.rb', line 75

def enum?
  is? ACC_ENUM
end

#final?Boolean

Returns:

  • (Boolean)


59
60
61
# File 'lib/javaclass/classfile/access_flags.rb', line 59

def final?
  is? ACC_FINAL
end

#flags_hexObject

Return the hex word of the flag.



88
89
90
# File 'lib/javaclass/classfile/access_flags.rb', line 88

def flags_hex
  format '%4.4X', @flags
end

#interface?Boolean

Returns:

  • (Boolean)


71
72
73
# File 'lib/javaclass/classfile/access_flags.rb', line 71

def interface?
  is? ACC_INTERFACE
end

#is?(flag) ⇒ Boolean

Return true if the bit flag is set.

Returns:

  • (Boolean)


37
38
39
# File 'lib/javaclass/classfile/access_flags.rb', line 37

def is?(flag)
  (@flags & flag) != 0
end

#module?Boolean

Returns:

  • (Boolean)


83
84
85
# File 'lib/javaclass/classfile/access_flags.rb', line 83

def module?
  is? ACC_MODULE
end

#private?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/javaclass/classfile/access_flags.rb', line 47

def private?
  is? ACC_PRIVATE
end

#protected?Boolean

Returns:

  • (Boolean)


51
52
53
# File 'lib/javaclass/classfile/access_flags.rb', line 51

def protected?
  is? ACC_PROTECTED
end

#public?Boolean Also known as: accessible?

Return true if the class is public.

Returns:

  • (Boolean)


42
43
44
# File 'lib/javaclass/classfile/access_flags.rb', line 42

def public?
  is? ACC_PUBLIC
end

#static?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/javaclass/classfile/access_flags.rb', line 55

def static?
  is? ACC_STATIC
end

#synthetic?Boolean

Returns:

  • (Boolean)


67
68
69
# File 'lib/javaclass/classfile/access_flags.rb', line 67

def synthetic?
  is? ACC_SYNTHETIC
end