Module: JavaClass::ConstantFactory

Defined in:
lib/javaclass/constant.rb

Overview

Constantを新規に作成するためのユーティリティ

Class Method Summary collapse

Class Method Details

.class_constant(name_index = nil) ⇒ Object

クラスを示すConstantを生成する。

*name_index::クラス名を示すconstant_poolのインデックス



517
518
519
# File 'lib/javaclass/constant.rb', line 517

def class_constant(name_index=nil)
  ClassConstant.new( nil, Constant::CONSTANT_Class, name_index )
end

.fieldref(class_name_index = nil, name_and_type_index = nil) ⇒ Object

フィールドを示すConstantを生成する。

*class_name_index::フィールドorメソッドを持つクラス名を示すconstant_poolのインデックス *name_and_type_index::フィールドorメソッドの名前とディスクリプタを示すconstant_poolのインデックス



511
512
513
# File 'lib/javaclass/constant.rb', line 511

def fieldref(class_name_index=nil, name_and_type_index=nil)
  FieldRefConstant.new( nil, Constant::CONSTANT_Fieldref, class_name_index, name_and_type_index )
end

.int(value) ⇒ Object

整数ののConstantを生成する。

*value::値



462
463
464
# File 'lib/javaclass/constant.rb', line 462

def int(value)
  IntegerConstant.new( nil, Constant::CONSTANT_Integer, value )
end

.interface_methodref(class_name_index = nil, name_and_type_index = nil) ⇒ Object

インターフェイスのメソッドを示すConstantを生成する。

*class_name_index::フィールドorメソッドを持つクラス名を示すconstant_poolのインデックス *name_and_type_index::フィールドorメソッドの名前とディスクリプタを示すconstant_poolのインデックス



497
498
499
# File 'lib/javaclass/constant.rb', line 497

def interface_methodref(class_name_index=nil, name_and_type_index=nil)
  InterfaceMethodRefConstant.new( nil, Constant::CONSTANT_InterfaceMethodref, class_name_index, name_and_type_index )
end

.long(value) ⇒ Object

整数(Long)のConstantを生成する。

*value::値



472
473
474
# File 'lib/javaclass/constant.rb', line 472

def long(value)
  LongConstant.new( nil, Constant::CONSTANT_Long, value )
end

.methodref(class_name_index = nil, name_and_type_index = nil) ⇒ Object

メソッドを示すConstantを生成する。

*class_name_index::フィールドorメソッドを持つクラス名を示すconstant_poolのインデックス *name_and_type_index::フィールドorメソッドの名前とディスクリプタを示すconstant_poolのインデックス



504
505
506
# File 'lib/javaclass/constant.rb', line 504

def methodref(class_name_index=nil, name_and_type_index=nil)
  MethodRefConstant.new( nil, Constant::CONSTANT_Methodref, class_name_index, name_and_type_index )
end

.name_and_type(name_index = nil, descriptor_index = nil) ⇒ Object

名前と型を示すConstantを生成する。

*name_index::名前を示すconstant_poolのインデックス *descriptor_index::ディスクリプタを示すconstant_poolのインデックス



483
484
485
# File 'lib/javaclass/constant.rb', line 483

def name_and_type(name_index=nil, descriptor_index=nil)
  NameAndTypeConstant.new( nil, Constant::CONSTANT_NameAndType, name_index, descriptor_index )
end

.string(string_index = nil) ⇒ Object

文字列(String)のConstantを生成する。

*string_index::値を示すUTF8Constantのconstant_poolにおけるインデックス



490
491
492
# File 'lib/javaclass/constant.rb', line 490

def string(string_index=nil)
  StringConstant.new( nil, Constant::CONSTANT_String, string_index )
end

.utf8(value) ⇒ Object

UTF8のConstantを生成する。

*value::文字列値



456
457
458
# File 'lib/javaclass/constant.rb', line 456

def utf8(value)
  UTF8Constant.new( nil, Constant::CONSTANT_Utf8, value )
end