C0 code coverage information

Generated on Wed Aug 01 14:04:28 -0300 2007 with rcov 0.8.0


Code reported as executed by Ruby looks like this...
and this: this line is also marked as covered.
Lines considered as run by rcov, but not reported by Ruby, look like this,
and this: these lines were inferred by rcov (using simple heuristics).
Finally, here's a line marked as not executed.
Name Total lines Lines of code Total coverage Code coverage
lib/visitor/javap/class_file.rb 162 133
96.3% 
95.5% 
  1 module YAJD
  2 
  3 module Visitor
  4 
  5 module Javap
  6 
  7 class ClassFileVisitor < Base
  8     def accept(visitor)
    def accept(visitor)
     10   lib/visitor/javap.rb:27 in 'YAJD::Visitor::Javap::JavapVisitor#visit'

  9         result = Array.new
 10         source = source_file
        source = source_file
     10   YAJD::Visitor::Javap::ClassFileVisitor#source_file at lib/visitor/javap/class_file.rb:96

 11         result << source unless source.nil?
 12         result << class_signature
        result << class_signature
     10   YAJD::Visitor::Javap::ClassFileVisitor#class_signature at lib/visitor/javap/class_file.rb:20

 13         result += class_info
        result += class_info
     10   YAJD::Visitor::Javap::ClassFileVisitor#class_info at lib/visitor/javap/class_file.rb:48

 14         result += constant_pool
        result += constant_pool
     10   YAJD::Visitor::Javap::ClassFileVisitor#constant_pool at lib/visitor/javap/class_file.rb:103

 15 
 16         result
 17     end
 18 
 19 protected
 20     def class_signature
    def class_signature
     10   lib/visitor/javap/class_file.rb:12 in 'YAJD::Visitor::Javap::ClassFileVisitor#accept'

 21         is_interface = AccessFlags::Klass::interface?(@object.access_flags)
        is_interface = AccessFlags::Klass::interface?(@object.access_flags)
     10   #<Class:YAJD::AccessFlags::Klass>#interface? at lib/access_flags.rb:98

 22 
 23         result = AccessFlags::Klass::to_java(@object.access_flags)
        result = AccessFlags::Klass::to_java(@object.access_flags)
     10   #<Class:YAJD::AccessFlags::Klass>#to_java at lib/access_flags.rb:91

 24         result += ' ' unless result.empty?
 25         result += 'class ' unless is_interface
 26         result += @object.pool.at(@object.this_class).name
        result += @object.pool.at(@object.this_class).name
     10   YAJD::ConstantPool::Pool#at at lib/constant_pool.rb:42
     10   YAJD::ConstantPool::CClass#name at lib/constant_pool/cpinfo.rb:98

 27 
 28         unless is_interface or @object.is_root?
        unless is_interface or @object.is_root?
     10   YAJD::ClassFile#is_root? at lib/class_file.rb:118

 29             parent = @object.pool.at(@object.super_class)
            parent = @object.pool.at(@object.super_class)
     10   YAJD::ConstantPool::Pool#at at lib/constant_pool.rb:42

 30             result += ' extends '
 31             result += parent.name
            result += parent.name
     10   YAJD::ConstantPool::CClass#name at lib/constant_pool/cpinfo.rb:98

 32         end
 33 
 34         unless @object.interfaces.size == 0
 35             if is_interface
 36                 result += ' extends '
 37             else
 38                 result += ' implements '
 39             end
 40             result += @object.interfaces.map { |i|
 41                 @object.pool.at(i).name
                @object.pool.at(i).name
      5   YAJD::ConstantPool::Pool#at at lib/constant_pool.rb:42
      5   YAJD::ConstantPool::CClass#name at lib/constant_pool/cpinfo.rb:98

 42             }.join(',')
 43         end
 44 
 45         result
 46     end
 47 
 48     def class_info
    def class_info
     10   lib/visitor/javap/class_file.rb:13 in 'YAJD::Visitor::Javap::ClassFileVisitor#accept'

 49         result = Array.new
 50 
 51         source = @object.source_file
        source = @object.source_file
     10   YAJD::ClassFile#source_file at lib/class_file.rb:109

 52         unless source.nil?
 53             result << "  SourceFile: \"#{source}\""
 54         end
 55 
 56         if @object.deprecated?
        if @object.deprecated?
     10   YAJD::ClassFile#deprecated? at lib/class_file.rb:102

 57             result << nil
 58             #TODO length is allways 0 (I think)
 59             result << '  Deprecated: length = 0x'
 60             result << nil
 61         end
 62 
 63         inner = @object.inner_classes
        inner = @object.inner_classes
     10   YAJD::ClassFile#inner_classes at lib/class_file.rb:97

 64         unless inner.nil?
 65             result << '  InnerClass:'
 66             inner.classes.each do |c|
 67                 access = AccessFlags::Klass::to_java(c.inner_class_access_flags)
                access = AccessFlags::Klass::to_java(c.inner_class_access_flags)
      5   #<Class:YAJD::AccessFlags::Klass>#to_java at lib/access_flags.rb:91

 68                 access += ' ' unless access.empty?
 69                 #TODO another kludge
 70                 access.gsub!(/interface/, 'abstract')
 71 
 72                 this_name = @object.pool.at(@object.this_class).full_name
                this_name = @object.pool.at(@object.this_class).full_name
      5   YAJD::ConstantPool::Pool#at at lib/constant_pool.rb:42
      5   YAJD::ConstantPool::CClass#full_name at lib/constant_pool/cpinfo.rb:93

 73                 unless c.inner_name_index == 0
 74                     inner_name = c.inner_name.bytes
                    inner_name = c.inner_name.bytes
      4   YAJD::InnerClass#inner_name at (eval):2

 75                 end
 76                 if c.inner_name_index == 0
 77                     result << "   #{access}\##{c.inner_class_info_index}; //class #{c.inner_class_info.full_name}"
                    result << "   #{access}\##{c.inner_class_info_index}; //class #{c.inner_class_info.full_name}"
      1   YAJD::InnerClass#inner_class_info at (eval):2
      1   YAJD::ConstantPool::CClass#full_name at lib/constant_pool/cpinfo.rb:93

 78                 else
 79                     aux = "   #{access}\##{c.inner_name_index}= \##{c.inner_class_info_index}"
 80                     unless c.outer_class_info_index == 0
 81                         aux += " of \##{c.outer_class_info_index}"
 82                     end
 83                     aux += "; //#{inner_name}=class #{c.inner_class_info.full_name}"
                    aux += "; //#{inner_name}=class #{c.inner_class_info.full_name}"
      4   YAJD::InnerClass#inner_class_info at (eval):2
      4   YAJD::ConstantPool::CClass#full_name at lib/constant_pool/cpinfo.rb:93

 84                     unless c.outer_class_info_index == 0
 85                         aux += " of class #{this_name}"
 86                     end
 87                     result << aux
 88                 end
 89             end
 90         end
 91 
 92         result << "  minor version: #{@object.minor_version}"
 93         result << "  major version: #{@object.major_version}"
 94     end
 95 
 96     def source_file
    def source_file
     10   lib/visitor/javap/class_file.rb:10 in 'YAJD::Visitor::Javap::ClassFileVisitor#accept'

 97         source = @object.source_file
        source = @object.source_file
     10   YAJD::ClassFile#source_file at lib/class_file.rb:109

 98         unless source.nil?
 99             "Compiled from \"#{source}\""
100         end
101     end
102 
103     def constant_pool
    def constant_pool
     10   lib/visitor/javap/class_file.rb:14 in 'YAJD::Visitor::Javap::ClassFileVisitor#accept'

104         result = [ "  Constant pool:" ]
105         @object.pool.each_with_index { |index, entry|
        @object.pool.each_with_index { |index, entry|
     10   YAJD::ConstantPool::Pool#each_with_index at lib/constant_pool.rb:59

106             result << "const \##{index} = #{constant_entry(entry)}"
            result << "const \##{index} = #{constant_entry(entry)}"
   2052   YAJD::Visitor::Javap::ClassFileVisitor#constant_entry at lib/visitor/javap/class_file.rb:112

107         }
108 
109         result
110     end
111 
112     def constant_entry(entry)
    def constant_entry(entry)
   2052   lib/visitor/javap/class_file.rb:106 in 'YAJD::Visitor::Javap::ClassFileVisitor#constant_pool'

113         #TODO I don't like it
114         if entry.is_a?(ConstantPool::CString)
115             "String\t\##{entry.string_index};\t//  #{Util::Java::quote(entry.string.bytes)}"
            "String\t\##{entry.string_index};\t//  #{Util::Java::quote(entry.string.bytes)}"
     47   YAJD::ConstantPool::CString#string at (eval):2
     47   #<Class:YAJD::Util::Java>#quote at lib/utils.rb:34

116         elsif entry.is_a?(ConstantPool::CUTF8Info)
117             "Asciz\t#{Util::Java::quote(entry.bytes)};"
            "Asciz\t#{Util::Java::quote(entry.bytes)};"
    978   #<Class:YAJD::Util::Java>#quote at lib/utils.rb:34

118         elsif entry.is_a?(ConstantPool::CClass)
119             "class\t\##{entry.name_index};\t//  #{klass(entry)}"
            "class\t\##{entry.name_index};\t//  #{klass(entry)}"
     82   YAJD::Visitor::Javap::ClassFileVisitor#klass at lib/visitor/javap/class_file.rb:150

120         elsif entry.is_a?(ConstantPool::CNameType)
121             "NameAndType\t\##{entry.name_index}:\##{entry.descriptor_index};//  #{name_type(entry)}"
            "NameAndType\t\##{entry.name_index}:\##{entry.descriptor_index};//  #{name_type(entry)}"
    286   YAJD::Visitor::Javap::ClassFileVisitor#name_type at lib/visitor/javap/class_file.rb:143

122         elsif entry.is_a?(ConstantPool::CBaseMethodRef)
123             if entry.is_a?(ConstantPool::CIMethodRef)
124                 preffix = 'Interface'
125             end
126             "#{preffix}Method\t\##{entry.class_index}.\##{entry.name_and_type_index};\t//  #{klass(entry.klass)}.#{name_type(entry.name_and_type)}"
            "#{preffix}Method\t\##{entry.class_index}.\##{entry.name_and_type_index};\t//  #{klass(entry.klass)}.#{name_type(entry.name_and_type)}"
    367   YAJD::Visitor::Javap::ClassFileVisitor#name_type at lib/visitor/javap/class_file.rb:143
    367   YAJD::Visitor::Javap::ClassFileVisitor#klass at lib/visitor/javap/class_file.rb:150
    367   YAJD::ConstantPool::CommonAttrs#name_and_type at (eval):2
    367   YAJD::ConstantPool::CommonAttrs#klass at (eval):2

127         elsif entry.is_a?(ConstantPool::CFieldRef)
128             "Field\t\##{entry.class_index}.\##{entry.name_and_type_index};\t//  #{klass(entry.klass)}.#{name_type(entry.name_and_type)}"
            "Field\t\##{entry.class_index}.\##{entry.name_and_type_index};\t//  #{klass(entry.klass)}.#{name_type(entry.name_and_type)}"
     23   YAJD::Visitor::Javap::ClassFileVisitor#name_type at lib/visitor/javap/class_file.rb:143
     23   YAJD::Visitor::Javap::ClassFileVisitor#klass at lib/visitor/javap/class_file.rb:150
     23   YAJD::ConstantPool::CommonAttrs#name_and_type at (eval):2
     23   YAJD::ConstantPool::CommonAttrs#klass at (eval):2

129         elsif entry.is_a?(ConstantPool::CInteger)
130             "int\t#{entry.value};"
            "int\t#{entry.value};"
      7   YAJD::ConstantPool::CIntegerFloat#value at lib/constant_pool/numbers.rb:15

131         elsif entry.is_a?(ConstantPool::CLong)
132             "long\t#{entry.value}l;"
            "long\t#{entry.value}l;"
    258   YAJD::ConstantPool::CLong#value at lib/constant_pool/numbers.rb:46

133         elsif entry.is_a?(ConstantPool::CDouble)
134             "double\t#{entry.value}d;"
            "double\t#{entry.value}d;"
      2   YAJD::ConstantPool::CDouble#value at lib/constant_pool/numbers.rb:52

135         elsif entry.is_a?(ConstantPool::CFloat)
136             "float\t#{entry.value};"
            "float\t#{entry.value};"
      2   YAJD::ConstantPool::CFloat#value at lib/constant_pool/numbers.rb:28

137         else
138             "#{entry.class} #{entry}"
139         end
140     end
141 
142 protected
143     def name_type(entry)
    def name_type(entry)
    367   lib/visitor/javap/class_file.rb:126 in 'YAJD::Visitor::Javap::ClassFileVisitor#constant_entry'
    286   lib/visitor/javap/class_file.rb:121 in 'YAJD::Visitor::Javap::ClassFileVisitor#constant_entry'
     23   lib/visitor/javap/class_file.rb:128 in 'YAJD::Visitor::Javap::ClassFileVisitor#constant_entry'

144         name = entry.name.bytes
        name = entry.name.bytes
    676   YAJD::ConstantPool::CNameType#name at (eval):2

145         name = "\"#{name}\"" if Util::Java::is_init?(name)
        name = "\"#{name}\"" if Util::Java::is_init?(name)
    676   #<Class:YAJD::Util::Java>#is_init? at lib/utils.rb:50

146 
147         "#{name}:#{entry.descriptor.bytes}"
        "#{name}:#{entry.descriptor.bytes}"
    676   YAJD::ConstantPool::CNameType#descriptor at (eval):2

148     end
149 
150     def klass(entry)
    def klass(entry)
    367   lib/visitor/javap/class_file.rb:126 in 'YAJD::Visitor::Javap::ClassFileVisitor#constant_entry'
     82   lib/visitor/javap/class_file.rb:119 in 'YAJD::Visitor::Javap::ClassFileVisitor#constant_entry'
     23   lib/visitor/javap/class_file.rb:128 in 'YAJD::Visitor::Javap::ClassFileVisitor#constant_entry'

151         name = entry.full_name
        name = entry.full_name
    472   YAJD::ConstantPool::CClass#full_name at lib/constant_pool/cpinfo.rb:93

152         name = "\"#{name}\"" if Util::Java::is_array?(name)
        name = "\"#{name}\"" if Util::Java::is_array?(name)
    472   #<Class:YAJD::Util::Java>#is_array? at lib/utils.rb:55

153 
154         name
155     end
156 end
157 
158 end
159 
160 end
161 
162 end

Generated using the rcov code coverage analysis tool for Ruby version 0.8.0.

Valid XHTML 1.0! Valid CSS!