Class: CoderCompanion::Java::ClassDefinition

Inherits:
Treetop::Runtime::SyntaxNode
  • Object
show all
Defined in:
lib/codercompanion/java/java.rb

Instance Method Summary collapse

Instance Method Details

#buildObject



295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
# File 'lib/codercompanion/java/java.rb', line 295

def build
    els = []
    class_name = ''
    privacy = ''
    inherits_from = ''
    implements = []
    element_type = ''
    elements.each do |e|
        element_type = e.text_value if e.respond_to? :class_or_enum
        inherits_from = e.elements[0].build if e.respond_to? :inheritance
        implements = e.elements[0].build if e.respond_to? :implements
        class_name = e.text_value if e.respond_to? :class_name
        privacy = e.text_value if e.respond_to? :privacy
        if e.respond_to? :class_element
            resp = nil
            e.elements[0].elements.each do |f| 
                resp = f.build if f.respond_to? :build
                if resp && resp.class.to_s == "Array"
                    els.concat(resp)
                elsif resp
                    els.push(resp)
                end
                resp = nil
            end
        end
    end
    return {:type => "#{element_type}_definition", :value => class_name, :privacy => privacy, :inherits_from => inherits_from, :implements => implements, :class_elements => els}
end