Module: BiteScript::AnnotationBuilder
- Includes:
- Signature
- Defined in:
- lib/bitescript/builder.rb,
lib/bitescript/asm3/builder.rb
Instance Method Summary
collapse
Methods included from Signature
ci, class_id, classname, path, sig, signature, tipath, type_insn_path
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, val) ⇒ Object
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
|
# File 'lib/bitescript/builder.rb', line 588
def method_missing(name, val)
name_str = name.to_s
if name_str[-1] == ?=
name_str = name_str[0..-2]
if Array === val
array(name_str) do |ary|
val.each {|x| ary.visit(nil, x)}
end
else
visit name_str, val
end
else
super
end
end
|
Instance Method Details
#annotation(name, cls) {|sub_annotation| ... } ⇒ Object
606
607
608
609
610
611
612
613
614
615
616
617
|
# File 'lib/bitescript/builder.rb', line 606
def annotation(name, cls)
if Java::JavaClass === cls || BiteScript::ASM::Type === cls
java_class = cls
else
java_class = cls.java_class
end
sub_annotation = visit_annotation(name, ci(java_class))
sub_annotation.extend AnnotationBuilder
yield sub_annotation
sub_annotation.visit_end
end
|
#array(name) {|sub_annotation| ... } ⇒ Object
618
619
620
621
622
623
|
# File 'lib/bitescript/builder.rb', line 618
def array(name)
sub_annotation = visit_array(name)
sub_annotation.extend AnnotationBuilder
yield sub_annotation
sub_annotation.visit_end
end
|
#enum(name, cls, value) ⇒ Object
624
625
626
627
628
629
630
631
632
|
# File 'lib/bitescript/builder.rb', line 624
def enum(name, cls, value)
if JavaClass == cls
java_class = cls
else
java_class = cls.java_class
end
visit_enum(name, ci(java_class), value)
end
|
#value(k, v) ⇒ Object
603
604
605
|
# File 'lib/bitescript/builder.rb', line 603
def value(k, v)
visit k, v
end
|