class JvmBytecode::Field
Constants
- ACCESS_FLAGS
Public Class Methods
decode_serial(cp, io)
click to toggle source
# File lib/jvm_bytecode/field.rb, line 18 def self.decode_serial(cp, io) Array.new(io.read(2).unpack('S>').first) do new(cp).tap { |f| f.decode(io) } end end
new(cp)
click to toggle source
# File lib/jvm_bytecode/field.rb, line 24 def initialize(cp) @cp = cp @name = 0 @descriptor = 0 @attributes = [] end
Public Instance Methods
bytecode()
click to toggle source
# File lib/jvm_bytecode/field.rb, line 39 def bytecode [access_flag, @name, @descriptor].pack('S>3') + @attributes.join_bytecodes end
decode(io)
click to toggle source
# File lib/jvm_bytecode/field.rb, line 44 def decode(io) acc_flag, @name, @descriptor = io.read(6).unpack('S>3') set_access_flag(acc_flag) @attributes = Attributes::Attribute.decode_serial(@cp, io) end
descriptor(d)
click to toggle source
# File lib/jvm_bytecode/field.rb, line 35 def descriptor(d) @descriptor = @cp.index_or_utf8(d) end
name(n)
click to toggle source
# File lib/jvm_bytecode/field.rb, line 31 def name(n) @name = @cp.index_or_utf8(n) end
to_hash()
click to toggle source
# File lib/jvm_bytecode/field.rb, line 51 def to_hash {} end