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
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
|
# File 'lib/bitescript/builder.rb', line 617
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
635
636
637
638
639
640
641
642
643
644
645
646
|
# File 'lib/bitescript/builder.rb', line 635
def annotation(name, cls)
if Java::JavaClass === cls || BiteScript::ASM::Type === cls || BiteScript::ClassMirror === 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
647
648
649
650
651
652
|
# File 'lib/bitescript/builder.rb', line 647
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
653
654
655
656
657
658
659
660
661
|
# File 'lib/bitescript/builder.rb', line 653
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
632
633
634
|
# File 'lib/bitescript/builder.rb', line 632
def value(k, v)
visit k, v
end
|