Class: JavaClass::AccessFlags

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

Overview

The access flags of a class or interface.

Author

Peter Kofler

Constant Summary collapse

ACC_PUBLIC =

Access flags as defined by JVM spec.

0x0001
ACC_FINAL =
0x0010
ACC_SUPER =

old invokespecial instruction semantics

0x0020
ACC_INTERFACE =
0x0200
ACC_ABSTRACT =
0x0400
ACC_OTHER =
0xffff ^ ACC_PUBLIC ^ ACC_FINAL ^ ACC_SUPER ^ ACC_INTERFACE ^ ACC_ABSTRACT

Instance Method Summary collapse

Constructor Details

#initialize(data, pos) ⇒ AccessFlags

Returns a new instance of AccessFlags.



17
18
19
20
21
22
# File 'lib/javaclass/access_flags.rb', line 17

def initialize(data, pos)
  @flags = data.u2(pos)
  raise "inconsistent flags #{flags}" if abstract? && final?
  raise "inconsistent flags #{flags}" if interface? && (!abstract? || final?)
  raise "inconsistent flags #{flags}" if (@flags & ACC_OTHER) != 0
end

Instance Method Details

#abstract?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/javaclass/access_flags.rb', line 34

def abstract?
 (@flags & ACC_ABSTRACT) != 0
end

#final?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/javaclass/access_flags.rb', line 30

def final?
 (@flags & ACC_FINAL) != 0
end

#interface?Boolean

Returns:

  • (Boolean)


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

def interface?
 (@flags & ACC_INTERFACE) != 0
end

#public?Boolean Also known as: accessible?

Return true if the class is public.

Returns:

  • (Boolean)


25
26
27
# File 'lib/javaclass/access_flags.rb', line 25

def public?
 (@flags & ACC_PUBLIC) != 0
end