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.bval.cdi 11 8 3 1 11 27.000002% 92.0% 19.0% 1
org.apache.bval.constraints 36 29 7 0 10 19.0% 100.0% 19.0% 1
org.apache.bval.el 5 4 1 0 4 20.0% 100.0% 20.0% 1
org.apache.bval.jsr 10 6 4 3 13 40.0% 81.0% 21.0% 1
org.apache.bval.jsr.descriptor 15 11 4 2 14 27.000002% 88.0% 14.0% 1
org.apache.bval.jsr.groups 3 3 0 3 4 0.0% 57.0% 43.0% 1
org.apache.bval.jsr.job 15 13 2 1 16 13.0% 94.0% 7.0% 1
org.apache.bval.jsr.metadata 45 33 12 3 12 27.000002% 80.0% 7.0% 1
org.apache.bval.jsr.resolver 6 5 1 0 9 17.0% 100.0% 17.0% 1
org.apache.bval.jsr.util 23 21 2 4 12 9.0% 75.0% 16.0% 1
org.apache.bval.jsr.valueextraction 12 9 3 1 9 25.0% 90.0% 15.000001% 1
org.apache.bval.jsr.xml 29 28 1 0 8 3.0% 100.0% 3.0% 1
org.apache.bval.util 15 12 3 7 7 20.0% 50.0% 30.000002% 1
org.apache.bval.util.reflection 7 7 0 5 4 0.0% 44.0% 56.0% 1

Packages

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

org.apache.bval.cdi

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 11 27.000002% 92.0% 19.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.bval.cdi.BValBinding
org.apache.bval.cdi.BValExtension$AnnotatedTypeFilter
org.apache.bval.cdi.EmptyAnnotationLiteral
org.apache.bval.cdi.AnyLiteral
org.apache.bval.cdi.BValAnnotatedType$BValBindingLiteral
org.apache.bval.cdi.BValExtension$Releasable
org.apache.bval.cdi.BValInterceptorBean
org.apache.bval.cdi.BValInterceptorBean$BValInterceptorInjectionPoint
org.apache.bval.cdi.DefaultLiteral
org.apache.bval.cdi.ValidatorBean
org.apache.bval.cdi.ValidatorFactoryBean
org.apache.bval.jsr.util
jakarta.enterprise.context
jakarta.enterprise.context.spi
jakarta.enterprise.inject
jakarta.enterprise.inject.spi
jakarta.enterprise.util
jakarta.validation
java.lang
java.lang.annotation
java.lang.reflect
java.util
java.util.function

org.apache.bval.constraints

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 10 19.0% 100.0% 19.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.bval.constraints.AbstractPatternValidator
org.apache.bval.constraints.AbstractPatternValidator$PatternDescriptor
org.apache.bval.constraints.Email
org.apache.bval.constraints.NotEmpty
org.apache.bval.constraints.NotEmpty$List
org.apache.bval.constraints.NumberSignValidator
org.apache.bval.constraints.SizeValidator
org.apache.bval.constraints.AssertFalseValidator
org.apache.bval.constraints.AssertTrueValidator
org.apache.bval.constraints.DecimalMaxValidator$ForNumber
org.apache.bval.constraints.DecimalMaxValidator$ForString
org.apache.bval.constraints.DecimalMinValidator$ForNumber
org.apache.bval.constraints.DecimalMinValidator$ForString
org.apache.bval.constraints.DigitsValidatorForNumber
org.apache.bval.constraints.DigitsValidatorForString
org.apache.bval.constraints.EmailValidator$1
org.apache.bval.constraints.MaxValidatorForNumber
org.apache.bval.constraints.MaxValidatorForString
org.apache.bval.constraints.MinValidatorForNumber
org.apache.bval.constraints.MinValidatorForString
org.apache.bval.constraints.NotEmptyValidator
org.apache.bval.constraints.NotEmptyValidatorForCharSequence
org.apache.bval.constraints.NotEmptyValidatorForCollection
org.apache.bval.constraints.NotEmptyValidatorForMap
org.apache.bval.constraints.NotNullValidator
org.apache.bval.constraints.NullValidator
org.apache.bval.constraints.PatternValidator$1
org.apache.bval.constraints.SizeValidator$ForArray$OfBoolean
org.apache.bval.constraints.SizeValidator$ForArray$OfByte
org.apache.bval.constraints.SizeValidator$ForArray$OfChar
org.apache.bval.constraints.SizeValidator$ForArray$OfDouble
org.apache.bval.constraints.SizeValidator$ForArray$OfFloat
org.apache.bval.constraints.SizeValidator$ForArray$OfInt
org.apache.bval.constraints.SizeValidator$ForArray$OfLong
org.apache.bval.constraints.SizeValidator$ForArray$OfObject
org.apache.bval.constraints.SizeValidator$ForArray$OfShort
None jakarta.validation
jakarta.validation.constraints
java.lang
java.lang.annotation
java.lang.reflect
java.math
java.util
java.util.function
java.util.regex
org.apache.bval.util

org.apache.bval.el

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 4 20.0% 100.0% 20.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.bval.el.MessageEvaluator
org.apache.bval.el.ELFacade$BValELContext
org.apache.bval.el.ELFacade$BValFormatter
org.apache.bval.el.ELFacade$BValFunctionMapper
org.apache.bval.el.ELFacade$BValVariableMapper
None jakarta.el
java.lang
java.lang.reflect
java.util

org.apache.bval.jsr

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 13 40.0% 81.0% 21.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.bval.jsr.ApacheMessageContext
org.apache.bval.jsr.ApacheValidatorConfiguration
org.apache.bval.jsr.ApacheValidatorConfiguration$Properties
org.apache.bval.jsr.CascadingPropertyValidator
org.apache.bval.jsr.ApacheFactoryContext
org.apache.bval.jsr.BootstrapConfigurationImpl
org.apache.bval.jsr.ConstraintAnnotationAttributes$Types
org.apache.bval.jsr.DefaultMessageInterpolator$1
org.apache.bval.jsr.DefaultMessageInterpolator$ComputedMessageKey
org.apache.bval.jsr.DefaultMessageInterpolator$MessageWithParamsKey
org.apache.bval.jsr.descriptor
org.apache.bval.jsr.job
org.apache.bval.jsr.metadata
jakarta.validation
jakarta.validation.executable
jakarta.validation.valueextraction
java.lang
java.lang.annotation
java.util
java.util.concurrent
java.util.function
org.apache.bval.jsr.descriptor
org.apache.bval.jsr.groups
org.apache.bval.jsr.util
org.apache.bval.jsr.valueextraction
org.apache.commons.weaver.privilizer

org.apache.bval.jsr.descriptor

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 14 27.000002% 88.0% 14.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.bval.jsr.descriptor.ElementD
org.apache.bval.jsr.descriptor.ElementD$NonRoot
org.apache.bval.jsr.descriptor.PropertyD
org.apache.bval.jsr.descriptor.package-info
org.apache.bval.jsr.descriptor.ConstraintD$1
org.apache.bval.jsr.descriptor.ConstraintD$Optionality
org.apache.bval.jsr.descriptor.ConstructorD
org.apache.bval.jsr.descriptor.ContainerElementTypeD
org.apache.bval.jsr.descriptor.CrossParameterD
org.apache.bval.jsr.descriptor.MetadataReader$ForConstructor
org.apache.bval.jsr.descriptor.MetadataReader$ForMethod
org.apache.bval.jsr.descriptor.MethodD
org.apache.bval.jsr.descriptor.ParameterD
org.apache.bval.jsr.descriptor.PropertyD$ForField
org.apache.bval.jsr.descriptor.PropertyD$ForMethod
org.apache.bval.jsr
org.apache.bval.jsr.job
jakarta.validation
jakarta.validation.metadata
java.lang
java.lang.annotation
java.lang.reflect
java.util
java.util.stream
org.apache.bval.jsr
org.apache.bval.jsr.groups
org.apache.bval.jsr.metadata
org.apache.bval.jsr.util
org.apache.bval.util
org.apache.bval.util.reflection
org.apache.commons.weaver.privilizer

org.apache.bval.jsr.groups

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 4 0.0% 57.0% 43.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.bval.jsr.groups.Group
org.apache.bval.jsr.groups.GroupConversion$Builder
org.apache.bval.jsr.groups.GroupStrategy$1
org.apache.bval.jsr
org.apache.bval.jsr.descriptor
org.apache.bval.jsr.job
jakarta.validation.groups
java.lang
java.util
java.util.function

org.apache.bval.jsr.job

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 16 13.0% 94.0% 7.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.bval.jsr.job.ValidateProperty$Step
org.apache.bval.jsr.job.ValidateProperty$Strategy
org.apache.bval.jsr.job.ComputeConstraintValidatorClass$1
org.apache.bval.jsr.job.ValidateExecutable$1
org.apache.bval.jsr.job.ValidateProperty$DescriptorWrapper
org.apache.bval.jsr.job.ValidateProperty$ForPropertyValue
org.apache.bval.jsr.job.ValidateProperty$LeafFrame
org.apache.bval.jsr.job.ValidateProperty$PropertyFrame
org.apache.bval.jsr.job.ValidateProperty$TypeWrapper
org.apache.bval.jsr.job.ValidateProperty$WalkGraph$1
org.apache.bval.jsr.job.ValidateReturnValue$ForConstructor$1
org.apache.bval.jsr.job.ValidateReturnValue$ForMethod$1
org.apache.bval.jsr.job.ValidationJob$ContainerElementCascadeFrame
org.apache.bval.jsr.job.ValidationJob$ContainerElementConstraintsFrame
org.apache.bval.jsr.job.ValidationJobFactory
org.apache.bval.jsr.util
jakarta.validation
jakarta.validation.constraintvalidation
jakarta.validation.metadata
jakarta.validation.valueextraction
java.lang
java.lang.annotation
java.lang.reflect
java.util
java.util.function
org.apache.bval.jsr
org.apache.bval.jsr.descriptor
org.apache.bval.jsr.groups
org.apache.bval.jsr.metadata
org.apache.bval.jsr.util
org.apache.bval.util
org.apache.bval.util.reflection

org.apache.bval.jsr.metadata

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 12 27.000002% 80.0% 7.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.bval.jsr.metadata.HasAnnotationBehavior
org.apache.bval.jsr.metadata.HierarchyBuilder$ElementDelegate
org.apache.bval.jsr.metadata.HierarchyBuilder$HierarchyDelegate
org.apache.bval.jsr.metadata.Meta
org.apache.bval.jsr.metadata.Meta$ForExecutable
org.apache.bval.jsr.metadata.MetadataBuilder$ForBean
org.apache.bval.jsr.metadata.MetadataBuilder$ForClass
org.apache.bval.jsr.metadata.MetadataBuilder$ForContainer
org.apache.bval.jsr.metadata.MetadataBuilder$ForElement
org.apache.bval.jsr.metadata.MetadataBuilder$ForExecutable
org.apache.bval.jsr.metadata.MetadataSource
org.apache.bval.jsr.metadata.ReflectionBuilder$ForElement
org.apache.bval.jsr.metadata.AnnotationBehavior
org.apache.bval.jsr.metadata.AnnotationDeclaredValidatorMappingProvider
org.apache.bval.jsr.metadata.CompositeBuilder$ForClass
org.apache.bval.jsr.metadata.ContainerElementKey$1
org.apache.bval.jsr.metadata.DualBuilder$1
org.apache.bval.jsr.metadata.DualBuilder$CustomWrapper
org.apache.bval.jsr.metadata.DualBuilder$CustomWrapper$ForBean
org.apache.bval.jsr.metadata.DualBuilder$CustomWrapper$ForGetterMethod
org.apache.bval.jsr.metadata.DualBuilder$ForClass
org.apache.bval.jsr.metadata.DualValidationMappingProvider
org.apache.bval.jsr.metadata.EmptyBuilder$ForClass
org.apache.bval.jsr.metadata.EmptyBuilder$ForContainer
org.apache.bval.jsr.metadata.EmptyBuilder$ForElement
org.apache.bval.jsr.metadata.EmptyBuilder$ForExecutable
org.apache.bval.jsr.metadata.EmptyBuilder$Level
org.apache.bval.jsr.metadata.HierarchyBuilder$ClassDelegate
org.apache.bval.jsr.metadata.HierarchyBuilder$CrossParameterDelegate
org.apache.bval.jsr.metadata.HierarchyBuilder$ForContainer
org.apache.bval.jsr.metadata.HierarchyBuilder$ForCrossParameter
org.apache.bval.jsr.metadata.Liskov$1
org.apache.bval.jsr.metadata.Liskov$StrengtheningIssue$1
org.apache.bval.jsr.metadata.Liskov$ValidationElement
org.apache.bval.jsr.metadata.Meta$ForClass
org.apache.bval.jsr.metadata.Meta$ForConstructor
org.apache.bval.jsr.metadata.Meta$ForContainerElement
org.apache.bval.jsr.metadata.Meta$ForCrossParameter
org.apache.bval.jsr.metadata.Meta$ForField
org.apache.bval.jsr.metadata.Meta$ForMethod
org.apache.bval.jsr.metadata.MetadataBuilder
org.apache.bval.jsr.metadata.ReflectionBuilder$1
org.apache.bval.jsr.metadata.ReflectionBuilder$ForClass
org.apache.bval.jsr.metadata.ReflectionBuilder$ForExecutable$1
org.apache.bval.jsr.metadata.ReflectionBuilder$ForExecutable$2
org.apache.bval.jsr.descriptor
org.apache.bval.jsr.job
org.apache.bval.jsr.valueextraction
jakarta.validation
jakarta.validation.constraintvalidation
jakarta.validation.spi
java.lang
java.lang.annotation
java.lang.reflect
java.util
java.util.function
org.apache.bval.jsr
org.apache.bval.jsr.util
org.apache.bval.util
org.apache.bval.util.reflection

org.apache.bval.jsr.resolver

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 9 17.0% 100.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.bval.jsr.resolver.CachingRelevant
org.apache.bval.jsr.resolver.CachingTraversableResolver
org.apache.bval.jsr.resolver.CachingTraversableResolver$CacheEntry
org.apache.bval.jsr.resolver.DefaultTraversableResolver
org.apache.bval.jsr.resolver.JPATraversableResolver
org.apache.bval.jsr.resolver.SimpleTraversableResolver
None jakarta.persistence
jakarta.validation
java.lang
java.lang.annotation
java.lang.reflect
java.util
java.util.logging
org.apache.bval.util.reflection
org.apache.commons.weaver.privilizer

org.apache.bval.jsr.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 12 9.0% 75.0% 16.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.bval.jsr.util.PathNavigation$Callback
org.apache.bval.jsr.util.PathNavigation$CallbackProcedure
org.apache.bval.jsr.util.AnnotationProxyBuilder$ConvertGroupAnnotation
org.apache.bval.jsr.util.AnnotationProxyBuilder$ValidAnnotation
org.apache.bval.jsr.util.AnnotationsManager$OverriddenAnnotationSpecifier
org.apache.bval.jsr.util.ContainerElementNodeBuilderCustomizableContextImpl
org.apache.bval.jsr.util.ContainerElementNodeBuilderDefinedContextImpl
org.apache.bval.jsr.util.ContainerElementNodeContextBuilderImpl
org.apache.bval.jsr.util.IOs
org.apache.bval.jsr.util.LeafNodeBuilderCustomizableContextImpl
org.apache.bval.jsr.util.LeafNodeBuilderCustomizableContextImpl$LeafNodeContextBuilderImpl
org.apache.bval.jsr.util.LeafNodeBuilderCustomizableContextImpl$LeafNodeContextBuilderImpl$1
org.apache.bval.jsr.util.LookBehindRegexHolder
org.apache.bval.jsr.util.NodeBuilderCustomizableContextImpl
org.apache.bval.jsr.util.NodeBuilderDefinedContextImpl
org.apache.bval.jsr.util.NodeContextBuilderImpl
org.apache.bval.jsr.util.NodeImpl$1
org.apache.bval.jsr.util.NodeImpl$CrossParameterNodeImpl
org.apache.bval.jsr.util.NodeImpl$ReturnValueNodeImpl
org.apache.bval.jsr.util.PathImpl$Builder
org.apache.bval.jsr.util.PathNavigation$PathPosition
org.apache.bval.jsr.util.PathNavigation$QuotedStringParser
org.apache.bval.jsr.util.Proxies
org.apache.bval.jsr
org.apache.bval.jsr.descriptor
org.apache.bval.jsr.job
org.apache.bval.jsr.metadata
jakarta.enterprise.util
jakarta.validation
jakarta.validation.groups
java.io
java.lang
java.text
java.util
java.util.function
java.util.regex
org.apache.bval.cdi
org.apache.bval.jsr.job
org.apache.bval.util

org.apache.bval.jsr.valueextraction

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 9 25.0% 90.0% 15.000001%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.bval.jsr.valueextraction.FxExtractor
org.apache.bval.jsr.valueextraction.MapExtractor
org.apache.bval.jsr.valueextraction.OptionalExtractor
org.apache.bval.jsr.valueextraction.FxExtractor$Activation
org.apache.bval.jsr.valueextraction.FxExtractor$ForObservableValue
org.apache.bval.jsr.valueextraction.ListElementExtractor
org.apache.bval.jsr.valueextraction.OptionalExtractor$ForDouble
org.apache.bval.jsr.valueextraction.OptionalExtractor$ForInt
org.apache.bval.jsr.valueextraction.OptionalExtractor$ForLong
org.apache.bval.jsr.valueextraction.OptionalExtractor$ForObject
org.apache.bval.jsr.valueextraction.ValueExtractors$OnDuplicateContainerElementKey
org.apache.bval.jsr.valueextraction.ValueExtractors$UnwrappingInfo
org.apache.bval.jsr
jakarta.validation.valueextraction
java.lang
java.lang.reflect
java.util
java.util.function
javafx.beans.value
org.apache.bval.jsr.metadata
org.apache.bval.util
org.apache.bval.util.reflection

org.apache.bval.jsr.xml

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 8 3.0% 100.0% 3.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.bval.jsr.xml.package-info
org.apache.bval.jsr.xml.Adapter1
org.apache.bval.jsr.xml.AnnotationType
org.apache.bval.jsr.xml.BeanType
org.apache.bval.jsr.xml.ClassType
org.apache.bval.jsr.xml.ConstraintDefinitionType
org.apache.bval.jsr.xml.ConstraintMappingsType
org.apache.bval.jsr.xml.ConstraintType
org.apache.bval.jsr.xml.ConstructorType
org.apache.bval.jsr.xml.ContainerElementTypeType
org.apache.bval.jsr.xml.CrossParameterType
org.apache.bval.jsr.xml.DefaultValidatedExecutableTypesType
org.apache.bval.jsr.xml.ElementType
org.apache.bval.jsr.xml.ExecutableValidationType
org.apache.bval.jsr.xml.FieldType
org.apache.bval.jsr.xml.GetterType
org.apache.bval.jsr.xml.GroupConversionType
org.apache.bval.jsr.xml.GroupSequenceType
org.apache.bval.jsr.xml.GroupsType
org.apache.bval.jsr.xml.MethodType
org.apache.bval.jsr.xml.ObjectFactory
org.apache.bval.jsr.xml.ParameterType
org.apache.bval.jsr.xml.PayloadType
org.apache.bval.jsr.xml.PropertyType
org.apache.bval.jsr.xml.ReturnValueType
org.apache.bval.jsr.xml.SchemaManager$SchemaRewriter
org.apache.bval.jsr.xml.SchemaManager$XmlAttributeType
org.apache.bval.jsr.xml.ValidatedByType
org.apache.bval.jsr.xml.ValidationConfigType
None jakarta.validation.executable
jakarta.xml.bind
jakarta.xml.bind.annotation.adapters
java.lang
java.util
javax.xml.namespace
org.xml.sax
org.xml.sax.helpers

org.apache.bval.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
7 7 20.0% 50.0% 30.000002%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.bval.util.CloseableAble
org.apache.bval.util.Escapes$CharSequenceTranslator
org.apache.bval.util.Exceptions$FormatArgs
org.apache.bval.util.CollectionSet
org.apache.bval.util.EmulatedAnnotatedType$Parameterized
org.apache.bval.util.EmulatedAnnotatedType$Variable
org.apache.bval.util.EmulatedAnnotatedType$Wildcard
org.apache.bval.util.Escapes
org.apache.bval.util.Escapes$AggregateTranslator
org.apache.bval.util.Escapes$LookupTranslator
org.apache.bval.util.Escapes$OctalUnescaper
org.apache.bval.util.LazyInt
org.apache.bval.util.ObjectUtils
org.apache.bval.util.ObjectWrapper
org.apache.bval.util.StringUtils
org.apache.bval.constraints
org.apache.bval.jsr.descriptor
org.apache.bval.jsr.job
org.apache.bval.jsr.metadata
org.apache.bval.jsr.util
org.apache.bval.jsr.valueextraction
org.apache.bval.util.reflection
java.io
java.lang
java.lang.annotation
java.lang.reflect
java.util
java.util.function
java.util.stream

org.apache.bval.util.reflection

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 4 0.0% 44.0% 56.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.bval.util.reflection.Reflection$ClassHierarchy
org.apache.bval.util.reflection.Reflection$FullHierarchy
org.apache.bval.util.reflection.Reflection$FullHierarchy$1
org.apache.bval.util.reflection.Reflection$Interfaces
org.apache.bval.util.reflection.TypeUtils$ParameterizedTypeImpl
org.apache.bval.util.reflection.TypeUtils$WildcardTypeBuilder
org.apache.bval.util.reflection.TypeUtils$WildcardTypeImpl
org.apache.bval.jsr.descriptor
org.apache.bval.jsr.job
org.apache.bval.jsr.metadata
org.apache.bval.jsr.resolver
org.apache.bval.jsr.valueextraction
java.lang
java.lang.reflect
java.util
org.apache.bval.util

Cycles

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

Package Package Dependencies
org.apache.bval.jsr org.apache.bval.jsr.valueextraction
org.apache.bval.jsr.metadata
org.apache.bval.jsr
org.apache.bval.jsr.descriptor org.apache.bval.jsr.metadata
org.apache.bval.jsr
org.apache.bval.jsr.valueextraction
org.apache.bval.jsr.metadata
org.apache.bval.jsr.job org.apache.bval.jsr
org.apache.bval.jsr.valueextraction
org.apache.bval.jsr.metadata
org.apache.bval.jsr
org.apache.bval.jsr.metadata org.apache.bval.jsr
org.apache.bval.jsr.valueextraction
org.apache.bval.jsr.metadata
org.apache.bval.jsr.util org.apache.bval.jsr.job
org.apache.bval.jsr
org.apache.bval.jsr.valueextraction
org.apache.bval.jsr.metadata
org.apache.bval.jsr
org.apache.bval.jsr.valueextraction org.apache.bval.jsr.metadata
org.apache.bval.jsr
org.apache.bval.jsr.valueextraction

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.