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