Metric | Value |
Number of Libraries | 4 |
Number of Packages | 22 |
Number of Top Level Classes | 260 |
Average Number of Top Level Classes per Package | 11.82 |
Average Number of Member Classes per Class | 0.19 |
Average Number of Methods per Class | 5.60 |
Average Number of Fields per Class | 3.00 |
Estimated Lines of Code | 26249 |
Estimated Lines of Code per Top Level Class | 100.96 |
Average Cyclomatic Complexity | 2.15 |
Fat for Library Dependencies | 4 |
Fat for Flat Package Dependencies | 45 |
Fat for Top Level Class Dependencies | 1137 |
Tangled for Library Dependencies | 0% |
Tangled for Flat Package Dependencies | 0.26% |
Average Component Dependency between Libraries | 33.33% |
Average Component Dependency between Packages | 24.03% |
Average Component Dependency between Units | 11.92% |
Average Distance | 0.07 |
Average Absolute Distance | 0.33 |
Average Weighted Methods per Class | 12.03 |
Average Depth of Inheritance Tree | 1.16 |
Average Number of Children | 0.23 |
Average Coupling between Objects | 4.04 |
Average Response for a Class | 10.78 |
Average Lack of Cohesion in Methods | 14.92 |
Artifact | Value |
inject.asm.MethodWriter | 1894 |
inject.asm.ClassReader | 1387 |
inject.cglib.asm.MethodWriter | 1268 |
inject.cglib.asm.ClassReader | 1162 |
inject.asm.ClassReader.accept() | 869 |
inject.cglib.core.EmitUtils | 856 |
inject.cglib.proxy.Enhancer | 813 |
inject.cglib.asm.ClassReader.accept() | 722 |
inject.InjectorImpl | 769 |
inject.asm.ClassWriter | 618 |
inject.cglib.core.CodeEmitter | 770 |
inject.asm.Frame | 707 |
inject.cglib.asm.ClassWriter | 538 |
inject.cglib.core.ReflectUtils | 464 |
inject.asm.MethodWriter.d() | 304 |
inject.cglib.asm.MethodWriter.a() | 301 |
inject.util.ReferenceMap | 459 |
inject.asm.Type | 412 |
inject.cglib.core.TypeUtils | 401 |
inject.asm.Frame.a() | 333 |
inject.BinderImpl | 384 |
inject.cglib.asm.Type | 393 |
inject.asm.MethodWriter.a() | 200 |
inject.cglib.asm.MethodWriter.a() | 199 |
inject.cglib.asm.ClassWriter.toByteArray() | 162 |
inject.asm.ClassWriter.toByteArray() | 149 |
inject.asm.MethodWriter.visitMaxs() | 146 |
inject.asm.ClassReader.a() | 152 |
inject.cglib.asm.ClassReader.a() | 141 |
inject.asm.AnnotationWriter.visit() | 131 |
inject.cglib.asm.AnnotationWriter.visit() | 129 |
inject.cglib.asm.MethodWriter.a() | 115 |
inject.Key | 305 |
inject.asm.MethodWriter.a() | 114 |
inject.asm.MethodWriter.visitFrame() | 100 |
inject.InjectorImpl.getInternalFactory() | 106 |
inject.cglib.core.KeyFactory.Generator.generateClass() | 85 |
inject.asm.Frame.a() | 89 |
inject.asm.MethodWriter.c() | 89 |
inject.InjectorImpl.getImplicitBinding() | 80 |
inject.ProxyFactory.createConstructionProxy() | 74 |
inject.asm.ByteVector.putUTF8() | 69 |
inject.cglib.asm.ByteVector.putUTF8() | 69 |
inject.cglib.asm.FieldWriter.a() | 73 |
inject.cglib.core.KeyFactory.<clinit>() | 61 |
inject.cglib.transform.AbstractTransformTask.processJarFile() | 62 |
inject.cglib.proxy.Enhancer.generateClass() | 62 |
inject.cglib.proxy.Enhancer.emitMethods() | 63 |
inject.asm.ClassReader.a() | 63 |
inject.cglib.asm.ClassReader.a() | 63 |
inject.asm.MethodWriter.visitJumpInsn() | 61 |
inject.asm.FieldWriter.a() | 61 |
inject.cglib.proxy.Enhancer.validate() | 60 |
inject.servlet.ServletModule.configure() | 64 |
Artifact | Value |
inject.asm.ClassReader.accept() | 217 |
inject.cglib.asm.ClassReader.accept() | 174 |
inject.asm.MethodWriter.d() | 77 |
inject.cglib.asm.MethodWriter.a() | 78 |
inject.asm.MethodWriter.a() | 46 |
inject.cglib.asm.MethodWriter.a() | 47 |
inject.asm.Frame.a() | 179 |
inject.cglib.asm.ClassWriter.toByteArray() | 34 |
inject.asm.ClassWriter.toByteArray() | 29 |
inject.asm.MethodWriter.visitMaxs() | 31 |
inject.asm.ClassReader.a() | 37 |
inject.cglib.asm.ClassReader.a() | 35 |
inject.asm.AnnotationWriter.visit() | 26 |
inject.cglib.asm.AnnotationWriter.visit() | 26 |
inject.cglib.asm.MethodWriter.a() | 26 |
inject.asm.MethodWriter.a() | 26 |
inject.asm.MethodWriter.visitFrame() | 20 |
inject.asm.MethodWriter.c() | 24 |
inject.InjectorImpl.getInternalFactory() | 23 |
inject.asm.Frame.a() | 19 |
inject.cglib.asm.FieldWriter.a() | 21 |
inject.asm.signature.SignatureReader.a() | 23 |
inject.cglib.asm.signature.SignatureReader.a() | 23 |
inject.cglib.proxy.Enhancer.validate() | 18 |
inject.asm.FieldWriter.a() | 17 |
inject.asm.MethodWriter.visitVarInsn() | 18 |
inject.asm.Frame.b() | 21 |
inject.cglib.core.EmitUtils.append_string_helper() | 18 |
inject.asm.Item.a() | 22 |
inject.cglib.core.CodeEmitter.cast_numeric() | 17 |
inject.cglib.asm.Item.a() | 19 |
inject.asm.Frame.a() | 16 |
inject.asm.Type.getOpcode() | 20 |
inject.cglib.asm.Type.getOpcode() | 20 |
inject.cglib.core.CodeEmitter.if_cmp() | 16 |
inject.asm.MethodWriter.visitFieldInsn() | 15 |
inject.asm.Type.a() | 15 |
inject.cglib.asm.Type.a() | 15 |
Robert C. Martin Metrics