Class: BiteScript::ASM::AnnotationMirror

Inherits:
Object
  • Object
show all
Defined in:
lib/bitescript/mirror.rb,
lib/bitescript/asm3/mirror.rb

Defined Under Namespace

Classes: Builder

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type, parent = nil) ⇒ AnnotationMirror

Returns a new instance of AnnotationMirror.



15
16
17
18
19
# File 'lib/bitescript/mirror.rb', line 15

def initialize(type, parent=nil)
  @type = type
  @parent = parent
  @values = {}
end

Instance Attribute Details

#parentObject (readonly)

Returns the value of attribute parent.



14
15
16
# File 'lib/bitescript/mirror.rb', line 14

def parent
  @parent
end

#typeObject (readonly)

Returns the value of attribute type.



14
15
16
# File 'lib/bitescript/mirror.rb', line 14

def type
  @type
end

Instance Method Details

#[](name) ⇒ Object



29
30
31
# File 'lib/bitescript/mirror.rb', line 29

def [](name)
  @values[name]
end

#[]=(name, value) ⇒ Object



33
34
35
# File 'lib/bitescript/mirror.rb', line 33

def []=(name, value)
  @values[name] = value
end

#inspectObject



37
38
39
40
41
42
43
44
45
46
# File 'lib/bitescript/mirror.rb', line 37

def inspect
  unless @values.empty?
    values = []
    @values.each do |k, v|
      values << "#{k}=#{inspect_value(v)}"
    end
    values = "(#{values.join ', '})"
  end
  "@#{type.class_name}#{values}\n"
end

#inspect_value(v) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/bitescript/mirror.rb', line 48

def inspect_value(v)
  case v
  when Type
    v.class_name + ".class"
  when Array
    "{#{v.map{|x| inspect_value(x)}.join(', ')}}"
  when EnumValue
    "#{v.declaring_type.class_name}.#{v.name}"
  else
    v.inspect
  end
end

#valueObject



21
22
23
# File 'lib/bitescript/mirror.rb', line 21

def value
  @values['value']
end

#value=(value) ⇒ Object



25
26
27
# File 'lib/bitescript/mirror.rb', line 25

def value=(value)
  @values['value'] = value
end