Class: BiteScript::ASM::ClassMirror::Builder
- Inherits:
-
BiteScript::ASM::ClassVisitor
- Object
- BiteScript::ASM::ClassVisitor
- BiteScript::ASM::ClassMirror::Builder
- Includes:
- BiteScript::ASM::ClassVisitor, FieldVisitor, MethodVisitor
- Defined in:
- lib/bitescript/mirror.rb,
lib/bitescript/asm3/mirror.rb
Instance Method Summary collapse
-
#initialize ⇒ Builder
constructor
A new instance of Builder.
- #mirror ⇒ Object
- #to_s ⇒ Object
- #visit(version, access, name, signature, super_name, interfaces) ⇒ Object
- #visitAnnotation(desc, visible) ⇒ Object
- #visitAnnotationDefault(*args) ⇒ Object
- #visitAttribute(attribute) ⇒ Object
- #visitEnd ⇒ Object
- #visitField(flags, name, desc, signature, value) ⇒ Object
- #visitInnerClass(name, outer, inner, access) ⇒ Object
- #visitMethod(flags, name, desc, signature, exceptions) ⇒ Object
- #visitOuterClass(owner, name, desc) ⇒ Object
- #visitSource(source, debug) ⇒ Object
Constructor Details
#initialize ⇒ Builder
Returns a new instance of Builder.
293 294 295 |
# File 'lib/bitescript/mirror.rb', line 293 def initialize super(BiteScript::ASM::Opcodes::ASM4) end |
Instance Method Details
#mirror ⇒ Object
308 309 310 |
# File 'lib/bitescript/mirror.rb', line 308 def mirror @class end |
#to_s ⇒ Object
345 346 347 |
# File 'lib/bitescript/mirror.rb', line 345 def to_s "ClassMirror(#{type.class_name})" end |
#visit(version, access, name, signature, super_name, interfaces) ⇒ Object
297 298 299 300 301 302 303 304 305 306 |
# File 'lib/bitescript/mirror.rb', line 297 def visit(version, access, name, signature, super_name, interfaces) @current = @class = ClassMirror.new(Type.getObjectType(name), access) @class.superclass = Type.getObjectType(super_name) if super_name @class.signature = SignatureMirror.new(signature) if signature if interfaces interfaces.each do |i| @class.interfaces << Type.getObjectType(i) end end end |
#visitAnnotation(desc, visible) ⇒ Object
318 319 320 321 322 |
# File 'lib/bitescript/mirror.rb', line 318 def visitAnnotation(desc, visible) builder = AnnotationMirror::Builder.new(desc, visible) @current.addAnnotation(builder.annotation) builder end |
#visitAnnotationDefault(*args) ⇒ Object
343 |
# File 'lib/bitescript/mirror.rb', line 343 def visitAnnotationDefault(*args);end |
#visitAttribute(attribute) ⇒ Object
314 |
# File 'lib/bitescript/mirror.rb', line 314 def visitAttribute(attribute); end |
#visitEnd ⇒ Object
316 |
# File 'lib/bitescript/mirror.rb', line 316 def visitEnd; end |
#visitField(flags, name, desc, signature, value) ⇒ Object
324 325 326 327 328 329 |
# File 'lib/bitescript/mirror.rb', line 324 def visitField(flags, name, desc, signature, value) signature = GenericTypeBuilder.read(signature) mirror = FieldMirror.new(@class.type, flags, name, Type.getType(desc), signature, value) @class.addField(mirror) FieldMirror::Builder.new(mirror) end |
#visitInnerClass(name, outer, inner, access) ⇒ Object
315 |
# File 'lib/bitescript/mirror.rb', line 315 def visitInnerClass(name, outer, inner, access); end |
#visitMethod(flags, name, desc, signature, exceptions) ⇒ Object
331 332 333 334 335 336 337 338 339 340 341 |
# File 'lib/bitescript/mirror.rb', line 331 def visitMethod(flags, name, desc, signature, exceptions) return_type = Type.getReturnType(desc) parameters = Type.getArgumentTypes(desc).to_a exceptions = (exceptions || []).map {|e| Type.getObjectType(e)} signature = SignatureMirror.new(signature) if signature mirror = MethodMirror.new( @class.type, flags, return_type, name, parameters, exceptions, signature) @class.addMethod(mirror) # TODO parameter annotations, default value, etc. MethodMirror::Builder.new(mirror) end |
#visitOuterClass(owner, name, desc) ⇒ Object
313 |
# File 'lib/bitescript/mirror.rb', line 313 def visitOuterClass(owner, name, desc); end |
#visitSource(source, debug) ⇒ Object
312 |
# File 'lib/bitescript/mirror.rb', line 312 def visitSource(source, debug); end |