Apache Commons logo Commons Lang

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.lang3 41 41 0 10 15 0.0% 60.000004% 40.0% 1
org.apache.commons.lang3.builder 37 33 4 5 7 11.0% 58.0% 31.0% 1
org.apache.commons.lang3.concurrent 20 15 5 0 6 25.0% 100.0% 25.0% 1
org.apache.commons.lang3.event 4 4 0 0 7 0.0% 100.0% 0.0% 1
org.apache.commons.lang3.exception 6 5 1 1 6 17.0% 86.0% 2.0% 1
org.apache.commons.lang3.math 3 3 0 1 4 0.0% 80.0% 20.0% 1
org.apache.commons.lang3.mutable 9 8 1 1 2 11.0% 67.0% 22.0% 1
org.apache.commons.lang3.reflect 13 10 3 2 5 23.0% 71.0% 5.0% 1
org.apache.commons.lang3.text 19 16 3 1 6 16.0% 86.0% 2.0% 1
org.apache.commons.lang3.text.translate 13 11 2 1 4 15.000001% 80.0% 5.0% 1
org.apache.commons.lang3.time 46 39 7 0 7 15.000001% 100.0% 15.000001% 1
org.apache.commons.lang3.tuple 6 4 2 2 5 33.0% 71.0% 5.0% 1

Packages

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

org.apache.commons.lang3

Afferent Couplings Efferent Couplings Abstractness Instability Distance
10 15 0.0% 60.000004% 40.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.commons.lang3.AnnotationUtils
org.apache.commons.lang3.AnnotationUtils$1
org.apache.commons.lang3.ArrayUtils
org.apache.commons.lang3.BitField
org.apache.commons.lang3.BooleanUtils
org.apache.commons.lang3.CharEncoding
org.apache.commons.lang3.CharRange
org.apache.commons.lang3.CharRange$1
org.apache.commons.lang3.CharRange$CharacterIterator
org.apache.commons.lang3.CharSequenceUtils
org.apache.commons.lang3.CharSet
org.apache.commons.lang3.CharSetUtils
org.apache.commons.lang3.CharUtils
org.apache.commons.lang3.ClassPathUtils
org.apache.commons.lang3.ClassUtils
org.apache.commons.lang3.ClassUtils$1
org.apache.commons.lang3.ClassUtils$1$1
org.apache.commons.lang3.ClassUtils$2
org.apache.commons.lang3.ClassUtils$2$1
org.apache.commons.lang3.ClassUtils$Interfaces
org.apache.commons.lang3.Conversion
org.apache.commons.lang3.EnumUtils
org.apache.commons.lang3.JavaVersion
org.apache.commons.lang3.LocaleUtils
org.apache.commons.lang3.LocaleUtils$SyncAvoid
org.apache.commons.lang3.NotImplementedException
org.apache.commons.lang3.ObjectUtils
org.apache.commons.lang3.ObjectUtils$Null
org.apache.commons.lang3.RandomStringUtils
org.apache.commons.lang3.RandomUtils
org.apache.commons.lang3.Range
org.apache.commons.lang3.Range$ComparableComparator
org.apache.commons.lang3.SerializationException
org.apache.commons.lang3.SerializationUtils
org.apache.commons.lang3.SerializationUtils$ClassLoaderAwareObjectInputStream
org.apache.commons.lang3.StringEscapeUtils
org.apache.commons.lang3.StringEscapeUtils$CsvEscaper
org.apache.commons.lang3.StringEscapeUtils$CsvUnescaper
org.apache.commons.lang3.StringUtils
org.apache.commons.lang3.SystemUtils
org.apache.commons.lang3.Validate
org.apache.commons.lang3.builder
org.apache.commons.lang3.concurrent
org.apache.commons.lang3.event
org.apache.commons.lang3.exception
org.apache.commons.lang3.math
org.apache.commons.lang3.reflect
org.apache.commons.lang3.text
org.apache.commons.lang3.text.translate
org.apache.commons.lang3.time
org.apache.commons.lang3.tuple
java.io
java.lang
java.lang.annotation
java.lang.reflect
java.nio.charset
java.text
java.util
java.util.concurrent
java.util.regex
org.apache.commons.lang3.builder
org.apache.commons.lang3.exception
org.apache.commons.lang3.math
org.apache.commons.lang3.mutable
org.apache.commons.lang3.text
org.apache.commons.lang3.text.translate

org.apache.commons.lang3.builder

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 7 11.0% 58.0% 31.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang3.builder.Builder
org.apache.commons.lang3.builder.Diff
org.apache.commons.lang3.builder.Diffable
org.apache.commons.lang3.builder.ToStringStyle
org.apache.commons.lang3.builder.CompareToBuilder
org.apache.commons.lang3.builder.DiffBuilder
org.apache.commons.lang3.builder.DiffBuilder$1
org.apache.commons.lang3.builder.DiffBuilder$10
org.apache.commons.lang3.builder.DiffBuilder$11
org.apache.commons.lang3.builder.DiffBuilder$12
org.apache.commons.lang3.builder.DiffBuilder$13
org.apache.commons.lang3.builder.DiffBuilder$14
org.apache.commons.lang3.builder.DiffBuilder$15
org.apache.commons.lang3.builder.DiffBuilder$16
org.apache.commons.lang3.builder.DiffBuilder$17
org.apache.commons.lang3.builder.DiffBuilder$18
org.apache.commons.lang3.builder.DiffBuilder$2
org.apache.commons.lang3.builder.DiffBuilder$3
org.apache.commons.lang3.builder.DiffBuilder$4
org.apache.commons.lang3.builder.DiffBuilder$5
org.apache.commons.lang3.builder.DiffBuilder$6
org.apache.commons.lang3.builder.DiffBuilder$7
org.apache.commons.lang3.builder.DiffBuilder$8
org.apache.commons.lang3.builder.DiffBuilder$9
org.apache.commons.lang3.builder.DiffResult
org.apache.commons.lang3.builder.EqualsBuilder
org.apache.commons.lang3.builder.HashCodeBuilder
org.apache.commons.lang3.builder.IDKey
org.apache.commons.lang3.builder.RecursiveToStringStyle
org.apache.commons.lang3.builder.ReflectionToStringBuilder
org.apache.commons.lang3.builder.StandardToStringStyle
org.apache.commons.lang3.builder.ToStringBuilder
org.apache.commons.lang3.builder.ToStringStyle$DefaultToStringStyle
org.apache.commons.lang3.builder.ToStringStyle$MultiLineToStringStyle
org.apache.commons.lang3.builder.ToStringStyle$NoFieldNameToStringStyle
org.apache.commons.lang3.builder.ToStringStyle$ShortPrefixToStringStyle
org.apache.commons.lang3.builder.ToStringStyle$SimpleToStringStyle
org.apache.commons.lang3
org.apache.commons.lang3.concurrent
org.apache.commons.lang3.reflect
org.apache.commons.lang3.text
org.apache.commons.lang3.tuple
java.io
java.lang
java.lang.reflect
java.util
org.apache.commons.lang3
org.apache.commons.lang3.reflect
org.apache.commons.lang3.tuple

org.apache.commons.lang3.concurrent

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 6 25.0% 100.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang3.concurrent.AtomicInitializer
org.apache.commons.lang3.concurrent.AtomicSafeInitializer
org.apache.commons.lang3.concurrent.BackgroundInitializer
org.apache.commons.lang3.concurrent.ConcurrentInitializer
org.apache.commons.lang3.concurrent.LazyInitializer
org.apache.commons.lang3.concurrent.BackgroundInitializer$InitializationTask
org.apache.commons.lang3.concurrent.BasicThreadFactory
org.apache.commons.lang3.concurrent.BasicThreadFactory$1
org.apache.commons.lang3.concurrent.BasicThreadFactory$Builder
org.apache.commons.lang3.concurrent.CallableBackgroundInitializer
org.apache.commons.lang3.concurrent.ConcurrentException
org.apache.commons.lang3.concurrent.ConcurrentRuntimeException
org.apache.commons.lang3.concurrent.ConcurrentUtils
org.apache.commons.lang3.concurrent.ConcurrentUtils$ConstantFuture
org.apache.commons.lang3.concurrent.ConstantInitializer
org.apache.commons.lang3.concurrent.MultiBackgroundInitializer
org.apache.commons.lang3.concurrent.MultiBackgroundInitializer$1
org.apache.commons.lang3.concurrent.MultiBackgroundInitializer$MultiBackgroundInitializerResults
org.apache.commons.lang3.concurrent.TimedSemaphore
org.apache.commons.lang3.concurrent.TimedSemaphore$1
None java.lang
java.util
java.util.concurrent
java.util.concurrent.atomic
org.apache.commons.lang3
org.apache.commons.lang3.builder

org.apache.commons.lang3.event

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 7 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.commons.lang3.event.EventListenerSupport
org.apache.commons.lang3.event.EventListenerSupport$ProxyInvocationHandler
org.apache.commons.lang3.event.EventUtils
org.apache.commons.lang3.event.EventUtils$EventBindingInvocationHandler
None java.io
java.lang
java.lang.reflect
java.util
java.util.concurrent
org.apache.commons.lang3
org.apache.commons.lang3.reflect

org.apache.commons.lang3.exception

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 6 17.0% 86.0% 2.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang3.exception.ExceptionContext
org.apache.commons.lang3.exception.CloneFailedException
org.apache.commons.lang3.exception.ContextedException
org.apache.commons.lang3.exception.ContextedRuntimeException
org.apache.commons.lang3.exception.DefaultExceptionContext
org.apache.commons.lang3.exception.ExceptionUtils
org.apache.commons.lang3
java.io
java.lang
java.lang.reflect
java.util
org.apache.commons.lang3
org.apache.commons.lang3.tuple

org.apache.commons.lang3.math

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 4 0.0% 80.0% 20.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.commons.lang3.math.Fraction
org.apache.commons.lang3.math.IEEE754rUtils
org.apache.commons.lang3.math.NumberUtils
org.apache.commons.lang3
java.lang
java.lang.reflect
java.math
org.apache.commons.lang3

org.apache.commons.lang3.mutable

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 2 11.0% 67.0% 22.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang3.mutable.Mutable
org.apache.commons.lang3.mutable.MutableBoolean
org.apache.commons.lang3.mutable.MutableByte
org.apache.commons.lang3.mutable.MutableDouble
org.apache.commons.lang3.mutable.MutableFloat
org.apache.commons.lang3.mutable.MutableInt
org.apache.commons.lang3.mutable.MutableLong
org.apache.commons.lang3.mutable.MutableObject
org.apache.commons.lang3.mutable.MutableShort
org.apache.commons.lang3
java.io
java.lang

org.apache.commons.lang3.reflect

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 5 23.0% 71.0% 5.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang3.reflect.MemberUtils
org.apache.commons.lang3.reflect.TypeLiteral
org.apache.commons.lang3.reflect.Typed
org.apache.commons.lang3.reflect.ConstructorUtils
org.apache.commons.lang3.reflect.FieldUtils
org.apache.commons.lang3.reflect.InheritanceUtils
org.apache.commons.lang3.reflect.MethodUtils
org.apache.commons.lang3.reflect.TypeUtils
org.apache.commons.lang3.reflect.TypeUtils$1
org.apache.commons.lang3.reflect.TypeUtils$GenericArrayTypeImpl
org.apache.commons.lang3.reflect.TypeUtils$ParameterizedTypeImpl
org.apache.commons.lang3.reflect.TypeUtils$WildcardTypeBuilder
org.apache.commons.lang3.reflect.TypeUtils$WildcardTypeImpl
org.apache.commons.lang3.builder
org.apache.commons.lang3.event
java.lang
java.lang.reflect
java.util
org.apache.commons.lang3
org.apache.commons.lang3.builder

org.apache.commons.lang3.text

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 6 16.0% 86.0% 2.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang3.text.FormatFactory
org.apache.commons.lang3.text.StrLookup
org.apache.commons.lang3.text.StrMatcher
org.apache.commons.lang3.text.CompositeFormat
org.apache.commons.lang3.text.ExtendedMessageFormat
org.apache.commons.lang3.text.FormattableUtils
org.apache.commons.lang3.text.StrBuilder
org.apache.commons.lang3.text.StrBuilder$StrBuilderReader
org.apache.commons.lang3.text.StrBuilder$StrBuilderTokenizer
org.apache.commons.lang3.text.StrBuilder$StrBuilderWriter
org.apache.commons.lang3.text.StrLookup$MapStrLookup
org.apache.commons.lang3.text.StrMatcher$CharMatcher
org.apache.commons.lang3.text.StrMatcher$CharSetMatcher
org.apache.commons.lang3.text.StrMatcher$NoMatcher
org.apache.commons.lang3.text.StrMatcher$StringMatcher
org.apache.commons.lang3.text.StrMatcher$TrimMatcher
org.apache.commons.lang3.text.StrSubstitutor
org.apache.commons.lang3.text.StrTokenizer
org.apache.commons.lang3.text.WordUtils
org.apache.commons.lang3
java.io
java.lang
java.text
java.util
org.apache.commons.lang3
org.apache.commons.lang3.builder

org.apache.commons.lang3.text.translate

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 4 15.000001% 80.0% 5.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang3.text.translate.CharSequenceTranslator
org.apache.commons.lang3.text.translate.CodePointTranslator
org.apache.commons.lang3.text.translate.AggregateTranslator
org.apache.commons.lang3.text.translate.EntityArrays
org.apache.commons.lang3.text.translate.JavaUnicodeEscaper
org.apache.commons.lang3.text.translate.LookupTranslator
org.apache.commons.lang3.text.translate.NumericEntityEscaper
org.apache.commons.lang3.text.translate.NumericEntityUnescaper
org.apache.commons.lang3.text.translate.NumericEntityUnescaper$OPTION
org.apache.commons.lang3.text.translate.OctalUnescaper
org.apache.commons.lang3.text.translate.UnicodeEscaper
org.apache.commons.lang3.text.translate.UnicodeUnescaper
org.apache.commons.lang3.text.translate.UnicodeUnpairedSurrogateRemover
org.apache.commons.lang3
java.io
java.lang
java.util
org.apache.commons.lang3

org.apache.commons.lang3.time

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 7 15.000001% 100.0% 15.000001%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang3.time.DateParser
org.apache.commons.lang3.time.DatePrinter
org.apache.commons.lang3.time.FastDateParser$Strategy
org.apache.commons.lang3.time.FastDatePrinter$NumberRule
org.apache.commons.lang3.time.FastDatePrinter$Rule
org.apache.commons.lang3.time.FormatCache
org.apache.commons.lang3.time.StopWatch$State
org.apache.commons.lang3.time.DateFormatUtils
org.apache.commons.lang3.time.DateUtils
org.apache.commons.lang3.time.DateUtils$DateIterator
org.apache.commons.lang3.time.DurationFormatUtils
org.apache.commons.lang3.time.DurationFormatUtils$Token
org.apache.commons.lang3.time.FastDateFormat
org.apache.commons.lang3.time.FastDateFormat$1
org.apache.commons.lang3.time.FastDateParser
org.apache.commons.lang3.time.FastDateParser$1
org.apache.commons.lang3.time.FastDateParser$2
org.apache.commons.lang3.time.FastDateParser$3
org.apache.commons.lang3.time.FastDateParser$4
org.apache.commons.lang3.time.FastDateParser$CopyQuotedStrategy
org.apache.commons.lang3.time.FastDateParser$NumberStrategy
org.apache.commons.lang3.time.FastDateParser$TextStrategy
org.apache.commons.lang3.time.FastDateParser$TimeZoneStrategy
org.apache.commons.lang3.time.FastDatePrinter
org.apache.commons.lang3.time.FastDatePrinter$CharacterLiteral
org.apache.commons.lang3.time.FastDatePrinter$PaddedNumberField
org.apache.commons.lang3.time.FastDatePrinter$StringLiteral
org.apache.commons.lang3.time.FastDatePrinter$TextField
org.apache.commons.lang3.time.FastDatePrinter$TimeZoneDisplayKey
org.apache.commons.lang3.time.FastDatePrinter$TimeZoneNameRule
org.apache.commons.lang3.time.FastDatePrinter$TimeZoneNumberRule
org.apache.commons.lang3.time.FastDatePrinter$TwelveHourField
org.apache.commons.lang3.time.FastDatePrinter$TwentyFourHourField
org.apache.commons.lang3.time.FastDatePrinter$TwoDigitMonthField
org.apache.commons.lang3.time.FastDatePrinter$TwoDigitNumberField
org.apache.commons.lang3.time.FastDatePrinter$TwoDigitYearField
org.apache.commons.lang3.time.FastDatePrinter$UnpaddedMonthField
org.apache.commons.lang3.time.FastDatePrinter$UnpaddedNumberField
org.apache.commons.lang3.time.FormatCache$MultipartKey
org.apache.commons.lang3.time.StopWatch
org.apache.commons.lang3.time.StopWatch$1
org.apache.commons.lang3.time.StopWatch$SplitState
org.apache.commons.lang3.time.StopWatch$State$1
org.apache.commons.lang3.time.StopWatch$State$2
org.apache.commons.lang3.time.StopWatch$State$3
org.apache.commons.lang3.time.StopWatch$State$4
None java.io
java.lang
java.text
java.util
java.util.concurrent
java.util.regex
org.apache.commons.lang3

org.apache.commons.lang3.tuple

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 5 33.0% 71.0% 5.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.lang3.tuple.Pair
org.apache.commons.lang3.tuple.Triple
org.apache.commons.lang3.tuple.ImmutablePair
org.apache.commons.lang3.tuple.ImmutableTriple
org.apache.commons.lang3.tuple.MutablePair
org.apache.commons.lang3.tuple.MutableTriple
org.apache.commons.lang3.builder
org.apache.commons.lang3.exception
java.io
java.lang
java.util
org.apache.commons.lang3
org.apache.commons.lang3.builder

Cycles

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

Package Package Dependencies
org.apache.commons.lang3 org.apache.commons.lang3.builder
org.apache.commons.lang3
org.apache.commons.lang3.builder org.apache.commons.lang3
org.apache.commons.lang3.builder
org.apache.commons.lang3.concurrent org.apache.commons.lang3.builder
org.apache.commons.lang3
org.apache.commons.lang3.builder
org.apache.commons.lang3.event org.apache.commons.lang3
org.apache.commons.lang3.builder
org.apache.commons.lang3
org.apache.commons.lang3.exception org.apache.commons.lang3
org.apache.commons.lang3.builder
org.apache.commons.lang3
org.apache.commons.lang3.math org.apache.commons.lang3
org.apache.commons.lang3.builder
org.apache.commons.lang3
org.apache.commons.lang3.reflect org.apache.commons.lang3
org.apache.commons.lang3.builder
org.apache.commons.lang3
org.apache.commons.lang3.text org.apache.commons.lang3
org.apache.commons.lang3.builder
org.apache.commons.lang3
org.apache.commons.lang3.text.translate org.apache.commons.lang3
org.apache.commons.lang3.builder
org.apache.commons.lang3
org.apache.commons.lang3.time org.apache.commons.lang3
org.apache.commons.lang3.builder
org.apache.commons.lang3
org.apache.commons.lang3.tuple org.apache.commons.lang3
org.apache.commons.lang3.builder
org.apache.commons.lang3

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.