Apache Commons logo Commons BeanUtils

Metric Results

[ summary ] [ packages ] [ cycles ] [ explanations ]

The following document contains the results of a JDepend metric analysis. The various metrics are defined at the bottom of this document.

Summary

[ summary ] [ packages ] [ cycles ] [ explanations ]

Package TC CC AC Ca Ce A I D V
org.apache.commons.beanutils 75 66 9 3 16 12.0% 84.0% 4.0% 1
org.apache.commons.beanutils.converters 34 30 4 1 10 12.0% 91.0% 3.0% 1
org.apache.commons.beanutils.expression 2 1 1 2 1 50.0% 33.0% 17.0% 1
org.apache.commons.beanutils.locale 11 9 2 1 12 18.0% 92.0% 10.0% 1
org.apache.commons.beanutils.locale.converters 14 14 0 1 8 0.0% 89.0% 11.0% 1

Packages

[ summary ] [ packages ] [ cycles ] [ explanations ]

org.apache.commons.beanutils

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 16 12.0% 84.0% 4.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.beanutils.BaseDynaBeanMapDecorator
org.apache.commons.beanutils.BeanIntrospector
org.apache.commons.beanutils.Converter
org.apache.commons.beanutils.DynaBean
org.apache.commons.beanutils.DynaClass
org.apache.commons.beanutils.IntrospectionContext
org.apache.commons.beanutils.JDBCDynaClass
org.apache.commons.beanutils.MutableDynaClass
org.apache.commons.beanutils.WeakFastHashMap$CollectionView
org.apache.commons.beanutils.BaseDynaBeanMapDecorator$MapEntry
org.apache.commons.beanutils.BasicDynaBean
org.apache.commons.beanutils.BasicDynaClass
org.apache.commons.beanutils.BeanAccessLanguageException
org.apache.commons.beanutils.BeanComparator
org.apache.commons.beanutils.BeanIntrospectionData
org.apache.commons.beanutils.BeanMap
org.apache.commons.beanutils.BeanMap$1
org.apache.commons.beanutils.BeanMap$10
org.apache.commons.beanutils.BeanMap$11
org.apache.commons.beanutils.BeanMap$12
org.apache.commons.beanutils.BeanMap$2
org.apache.commons.beanutils.BeanMap$3
org.apache.commons.beanutils.BeanMap$4
org.apache.commons.beanutils.BeanMap$5
org.apache.commons.beanutils.BeanMap$6
org.apache.commons.beanutils.BeanMap$7
org.apache.commons.beanutils.BeanMap$8
org.apache.commons.beanutils.BeanMap$9
org.apache.commons.beanutils.BeanMap$Entry
org.apache.commons.beanutils.BeanPredicate
org.apache.commons.beanutils.BeanPropertyValueChangeClosure
org.apache.commons.beanutils.BeanPropertyValueEqualsPredicate
org.apache.commons.beanutils.BeanToPropertyValueTransformer
org.apache.commons.beanutils.BeanUtils
org.apache.commons.beanutils.BeanUtilsBean
org.apache.commons.beanutils.BeanUtilsBean$1
org.apache.commons.beanutils.BeanUtilsBean2
org.apache.commons.beanutils.ConstructorUtils
org.apache.commons.beanutils.ContextClassLoaderLocal
org.apache.commons.beanutils.ConversionException
org.apache.commons.beanutils.ConvertUtils
org.apache.commons.beanutils.ConvertUtilsBean
org.apache.commons.beanutils.ConvertUtilsBean2
org.apache.commons.beanutils.ConvertingWrapDynaBean
org.apache.commons.beanutils.DefaultBeanIntrospector
org.apache.commons.beanutils.DefaultIntrospectionContext
org.apache.commons.beanutils.DynaBeanMapDecorator
org.apache.commons.beanutils.DynaBeanPropertyMapDecorator
org.apache.commons.beanutils.DynaProperty
org.apache.commons.beanutils.FluentPropertyBeanIntrospector
org.apache.commons.beanutils.LazyDynaBean
org.apache.commons.beanutils.LazyDynaClass
org.apache.commons.beanutils.LazyDynaList
org.apache.commons.beanutils.LazyDynaMap
org.apache.commons.beanutils.MappedPropertyDescriptor
org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference
org.apache.commons.beanutils.MethodUtils
org.apache.commons.beanutils.MethodUtils$MethodDescriptor
org.apache.commons.beanutils.NestedNullException
org.apache.commons.beanutils.PropertyUtils
org.apache.commons.beanutils.PropertyUtilsBean
org.apache.commons.beanutils.ResultSetDynaClass
org.apache.commons.beanutils.ResultSetIterator
org.apache.commons.beanutils.RowSetDynaClass
org.apache.commons.beanutils.WeakFastHashMap
org.apache.commons.beanutils.WeakFastHashMap$1
org.apache.commons.beanutils.WeakFastHashMap$CollectionView$CollectionViewIterator
org.apache.commons.beanutils.WeakFastHashMap$EntrySet
org.apache.commons.beanutils.WeakFastHashMap$KeySet
org.apache.commons.beanutils.WeakFastHashMap$Values
org.apache.commons.beanutils.WrapDynaBean
org.apache.commons.beanutils.WrapDynaClass
org.apache.commons.beanutils.WrapDynaClass$1
org.apache.commons.beanutils.WrapDynaClass$2
org.apache.commons.beanutils.WrapDynaClass$CacheKey
org.apache.commons.beanutils.converters
org.apache.commons.beanutils.locale
org.apache.commons.beanutils.locale.converters
java.beans
java.io
java.lang
java.lang.ref
java.lang.reflect
java.math
java.net
java.sql
java.util
java.util.concurrent
org.apache.commons.beanutils.converters
org.apache.commons.beanutils.expression
org.apache.commons.collections
org.apache.commons.collections.comparators
org.apache.commons.collections.keyvalue
org.apache.commons.logging

org.apache.commons.beanutils.converters

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 10 12.0% 91.0% 3.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.beanutils.converters.AbstractArrayConverter
org.apache.commons.beanutils.converters.AbstractConverter
org.apache.commons.beanutils.converters.DateTimeConverter
org.apache.commons.beanutils.converters.NumberConverter
org.apache.commons.beanutils.converters.ArrayConverter
org.apache.commons.beanutils.converters.BigDecimalConverter
org.apache.commons.beanutils.converters.BigIntegerConverter
org.apache.commons.beanutils.converters.BooleanArrayConverter
org.apache.commons.beanutils.converters.BooleanConverter
org.apache.commons.beanutils.converters.ByteArrayConverter
org.apache.commons.beanutils.converters.ByteConverter
org.apache.commons.beanutils.converters.CalendarConverter
org.apache.commons.beanutils.converters.CharacterArrayConverter
org.apache.commons.beanutils.converters.CharacterConverter
org.apache.commons.beanutils.converters.ClassConverter
org.apache.commons.beanutils.converters.ConverterFacade
org.apache.commons.beanutils.converters.DateConverter
org.apache.commons.beanutils.converters.DoubleArrayConverter
org.apache.commons.beanutils.converters.DoubleConverter
org.apache.commons.beanutils.converters.FileConverter
org.apache.commons.beanutils.converters.FloatArrayConverter
org.apache.commons.beanutils.converters.FloatConverter
org.apache.commons.beanutils.converters.IntegerArrayConverter
org.apache.commons.beanutils.converters.IntegerConverter
org.apache.commons.beanutils.converters.LongArrayConverter
org.apache.commons.beanutils.converters.LongConverter
org.apache.commons.beanutils.converters.ShortArrayConverter
org.apache.commons.beanutils.converters.ShortConverter
org.apache.commons.beanutils.converters.SqlDateConverter
org.apache.commons.beanutils.converters.SqlTimeConverter
org.apache.commons.beanutils.converters.SqlTimestampConverter
org.apache.commons.beanutils.converters.StringArrayConverter
org.apache.commons.beanutils.converters.StringConverter
org.apache.commons.beanutils.converters.URLConverter
org.apache.commons.beanutils
java.io
java.lang
java.lang.reflect
java.math
java.net
java.sql
java.text
java.util
org.apache.commons.beanutils
org.apache.commons.logging

org.apache.commons.beanutils.expression

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 1 50.0% 33.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.beanutils.expression.Resolver
org.apache.commons.beanutils.expression.DefaultResolver
org.apache.commons.beanutils
org.apache.commons.beanutils.locale
java.lang

org.apache.commons.beanutils.locale

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 12 18.0% 92.0% 10.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.beanutils.locale.BaseLocaleConverter
org.apache.commons.beanutils.locale.LocaleConverter
org.apache.commons.beanutils.locale.LocaleBeanUtils
org.apache.commons.beanutils.locale.LocaleBeanUtils$Descriptor
org.apache.commons.beanutils.locale.LocaleBeanUtilsBean
org.apache.commons.beanutils.locale.LocaleBeanUtilsBean$1
org.apache.commons.beanutils.locale.LocaleBeanUtilsBean$Descriptor
org.apache.commons.beanutils.locale.LocaleConvertUtils
org.apache.commons.beanutils.locale.LocaleConvertUtilsBean
org.apache.commons.beanutils.locale.LocaleConvertUtilsBean$1
org.apache.commons.beanutils.locale.LocaleConvertUtilsBean$DelegateFastHashMap
org.apache.commons.beanutils.locale.converters
java.beans
java.lang
java.lang.reflect
java.math
java.sql
java.text
java.util
org.apache.commons.beanutils
org.apache.commons.beanutils.expression
org.apache.commons.beanutils.locale.converters
org.apache.commons.collections
org.apache.commons.logging

org.apache.commons.beanutils.locale.converters

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 8 0.0% 89.0% 11.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.commons.beanutils.locale.converters.BigDecimalLocaleConverter
org.apache.commons.beanutils.locale.converters.BigIntegerLocaleConverter
org.apache.commons.beanutils.locale.converters.ByteLocaleConverter
org.apache.commons.beanutils.locale.converters.DateLocaleConverter
org.apache.commons.beanutils.locale.converters.DecimalLocaleConverter
org.apache.commons.beanutils.locale.converters.DoubleLocaleConverter
org.apache.commons.beanutils.locale.converters.FloatLocaleConverter
org.apache.commons.beanutils.locale.converters.IntegerLocaleConverter
org.apache.commons.beanutils.locale.converters.LongLocaleConverter
org.apache.commons.beanutils.locale.converters.ShortLocaleConverter
org.apache.commons.beanutils.locale.converters.SqlDateLocaleConverter
org.apache.commons.beanutils.locale.converters.SqlTimeLocaleConverter
org.apache.commons.beanutils.locale.converters.SqlTimestampLocaleConverter
org.apache.commons.beanutils.locale.converters.StringLocaleConverter
org.apache.commons.beanutils.locale
java.lang
java.math
java.sql
java.text
java.util
org.apache.commons.beanutils
org.apache.commons.beanutils.locale
org.apache.commons.logging

Cycles

[ summary ] [ packages ] [ cycles ] [ explanations ]

Package Package Dependencies
org.apache.commons.beanutils org.apache.commons.beanutils.converters
org.apache.commons.beanutils
org.apache.commons.beanutils.converters org.apache.commons.beanutils
org.apache.commons.beanutils.converters
org.apache.commons.beanutils.locale org.apache.commons.beanutils
org.apache.commons.beanutils.converters
org.apache.commons.beanutils
org.apache.commons.beanutils.locale.converters org.apache.commons.beanutils
org.apache.commons.beanutils.converters
org.apache.commons.beanutils

Explanation

[ summary ] [ packages ] [ cycles ] [ explanations ]

The following explanations are for quick reference and are lifted directly from the original JDepend documentation.

Term Description
Number of Classes The number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package.
Afferent Couplings The number of other packages that depend upon classes within the package is an indicator of the package's responsibility.
Efferent Couplings The number of other packages that the classes in the package depend upon is an indicator of the package's independence.
Abstractness The ratio of the number of abstract classes (and interfaces) in the analyzed package to the total number of classes in the analyzed package. The range for this metric is 0 to 1, with A=0 indicating a completely concrete package and A=1 indicating a completely abstract package.
Instability The ratio of efferent coupling (Ce) to total coupling (Ce / (Ce + Ca)). This metric is an indicator of the package's resilience to change. The range for this metric is 0 to 1, with I=0 indicating a completely stable package and I=1 indicating a completely instable package.
Distance The perpendicular distance of a package from the idealized line A + I = 1. This metric is an indicator of the package's balance between abstractness and stability. A package squarely on the main sequence is optimally balanced with respect to its abstractness and stability. Ideal packages are either completely abstract and stable (x=0, y=1) or completely concrete and instable (x=1, y=0). The range for this metric is 0 to 1, with D=0 indicating a package that is coincident with the main sequence and D=1 indicating a package that is as far from the main sequence as possible.
Cycles Packages participating in a package dependency cycle are in a deadly embrace with respect to reusability and their release cycle. Package dependency cycles can be easily identified by reviewing the textual reports of dependency cycles. Once these dependency cycles have been identified with JDepend, they can be broken by employing various object-oriented techniques.