Module: BiteScript::AnnotationBuilder

Includes:
Signature
Defined in:
lib/bitescript/builder.rb

Instance Method Summary collapse

Methods included from Signature

ci, class_id, classname, path, sig, signature

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, val) ⇒ Object



554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
# File 'lib/bitescript/builder.rb', line 554

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

Yields:

  • (sub_annotation)


572
573
574
575
576
577
578
579
580
581
582
583
# File 'lib/bitescript/builder.rb', line 572

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

Yields:

  • (sub_annotation)


584
585
586
587
588
589
# File 'lib/bitescript/builder.rb', line 584

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



590
591
592
593
594
595
596
597
598
# File 'lib/bitescript/builder.rb', line 590

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



569
570
571
# File 'lib/bitescript/builder.rb', line 569

def value(k, v)
  visit k, v
end