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
de.smartics.properties.api.core.app 1 1 0 1 1 0.0% 50.0% 50.0% 1
de.smartics.properties.api.core.context.alias 5 3 2 2 4 40.0% 67.0% 7.0% 1
de.smartics.properties.api.core.domain 25 19 6 10 9 24.0% 47.0% 29.0% 1
de.smartics.properties.api.core.util 1 1 0 0 3 0.0% 100.0% 0.0% 1
de.smartics.properties.spi.core.classpath 2 2 0 0 8 0.0% 100.0% 0.0% 1
de.smartics.properties.spi.core.constraint 1 0 1 2 3 100.0% 60.000004% 60.000004% 1
de.smartics.properties.spi.core.constraint.jsr303 9 9 0 1 11 0.0% 92.0% 8.0% 1
de.smartics.properties.spi.core.constraints 2 2 0 2 5 0.0% 71.0% 29.0% 1
de.smartics.properties.spi.core.context 11 9 2 2 16 18.0% 89.0% 7.0% 1
de.smartics.properties.spi.core.convert 6 5 1 0 11 17.0% 100.0% 17.0% 1
de.smartics.properties.spi.core.metadata 9 7 2 1 19 22.0% 95.0% 17.0% 1
de.smartics.properties.spi.core.metadata.comment 2 2 0 1 9 0.0% 90.0% 10.0% 1
de.smartics.properties.spi.core.metadata.projectdoc 6 4 2 1 15 33.0% 94.0% 27.000002% 1
de.smartics.properties.spi.core.registry 2 2 0 0 13 0.0% 100.0% 0.0% 1
de.smartics.properties.spi.core.util 3 3 0 3 7 0.0% 70.0% 30.000002% 1
de.smartics.properties.spi.core.validate 1 1 0 0 4 0.0% 100.0% 0.0% 1
de.smartics.properties.spi.core.value 3 3 0 1 6 0.0% 86.0% 14.0% 1

Packages

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

de.smartics.properties.api.core.app

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 1 0.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.api.core.app.PropertyRootException
de.smartics.properties.api.core.domain
java.lang

de.smartics.properties.api.core.context.alias

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 4 40.0% 67.0% 7.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.properties.api.core.context.alias.AliasException
de.smartics.properties.api.core.context.alias.AliasTraverser
de.smartics.properties.api.core.context.alias.DuplicateAliasException
de.smartics.properties.api.core.context.alias.PropertyAliasMapping
de.smartics.properties.api.core.context.alias.UnknownAliasException
de.smartics.properties.api.core.domain
de.smartics.properties.spi.core.context
de.smartics.util.lang
java.io
java.lang
java.util

de.smartics.properties.api.core.domain

Afferent Couplings Efferent Couplings Abstractness Instability Distance
10 9 24.0% 47.0% 29.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.properties.api.core.domain.DocumentMetaData
de.smartics.properties.api.core.domain.PropertyConstraint
de.smartics.properties.api.core.domain.PropertyContext
de.smartics.properties.api.core.domain.PropertyDescriptor
de.smartics.properties.api.core.domain.PropertyDescriptorRegistry
de.smartics.properties.api.core.domain.PropertyValueRange
de.smartics.properties.api.core.domain.ConfigException
de.smartics.properties.api.core.domain.DuplicatePropertyDeclarationException
de.smartics.properties.api.core.domain.DuplicatePropertyDeclarationsException
de.smartics.properties.api.core.domain.PropertiesContext
de.smartics.properties.api.core.domain.PropertiesContext$1
de.smartics.properties.api.core.domain.PropertiesContext$Builder
de.smartics.properties.api.core.domain.PropertyComment
de.smartics.properties.api.core.domain.PropertyComment$1
de.smartics.properties.api.core.domain.PropertyComment$Builder
de.smartics.properties.api.core.domain.PropertyDescriptorException
de.smartics.properties.api.core.domain.PropertyException
de.smartics.properties.api.core.domain.PropertyExpression
de.smartics.properties.api.core.domain.PropertyKey
de.smartics.properties.api.core.domain.PropertyType
de.smartics.properties.api.core.domain.PropertyValidationException
de.smartics.properties.api.core.domain.PropertyValueComment
de.smartics.properties.api.core.domain.PropertyValueConversionException
de.smartics.properties.api.core.domain.PropertyValueResolveException
de.smartics.properties.api.core.domain.ReadOnlyPropertyException
de.smartics.properties.spi.core.constraint
de.smartics.properties.spi.core.constraints
de.smartics.properties.spi.core.context
de.smartics.properties.spi.core.convert
de.smartics.properties.spi.core.metadata
de.smartics.properties.spi.core.metadata.comment
de.smartics.properties.spi.core.metadata.projectdoc
de.smartics.properties.spi.core.registry
de.smartics.properties.spi.core.validate
de.smartics.properties.spi.core.value
de.smartics.properties.api.core.annotations
de.smartics.properties.api.core.app
de.smartics.properties.api.core.context.alias
de.smartics.util.lang
java.io
java.lang
java.util
org.apache.commons.lang
org.apache.commons.lang.builder

de.smartics.properties.api.core.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 3 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.api.core.util.JavadocCommentHelper
None java.lang
java.util.regex
org.apache.commons.lang

de.smartics.properties.spi.core.classpath

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 8 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.spi.core.classpath.PropertiesFilesLoader
de.smartics.properties.spi.core.classpath.PropertySetClassesLoader
None de.smartics.properties.api.core.annotations
java.lang
java.net
java.util
java.util.regex
org.reflections
org.reflections.scanners
org.reflections.util

de.smartics.properties.spi.core.constraint

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 3 100.0% 60.000004% 60.000004%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.properties.spi.core.constraint.AbstractPropertyConstraint
None de.smartics.properties.spi.core.constraint.jsr303
de.smartics.properties.spi.core.constraints
de.smartics.properties.api.core.domain
java.lang
java.util

de.smartics.properties.spi.core.constraint.jsr303

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 11 0.0% 92.0% 8.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.spi.core.constraint.jsr303.ConstraintPrettifier
de.smartics.properties.spi.core.constraint.jsr303.ConstraintPrettifier$1
de.smartics.properties.spi.core.constraint.jsr303.ConstraintPrettifier$ParameterToken
de.smartics.properties.spi.core.constraint.jsr303.GenericPropertyConstraint
de.smartics.properties.spi.core.constraint.jsr303.PropertyConstraintValidatorContext
de.smartics.properties.spi.core.constraint.jsr303.PropertyConstraintViolationBuilder
de.smartics.properties.spi.core.constraint.jsr303.PropertyNodeBuilderCustomizableContext
de.smartics.properties.spi.core.constraint.jsr303.PropertyNodeBuilderDefinedContext
de.smartics.properties.spi.core.constraint.jsr303.PropertyNodeContextBuilder
de.smartics.properties.spi.core.metadata
de.smartics.properties.spi.core.constraint
de.smartics.util.lang
java.io
java.lang
java.lang.annotation
java.util
java.util.regex
javax.validation
javax.validation.constraints
org.hibernate.validator.constraints
org.hibernate.validator.internal.metadata.core

de.smartics.properties.spi.core.constraints

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 5 0.0% 71.0% 29.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.spi.core.constraints.ListValueConstraint
de.smartics.properties.spi.core.constraints.PropertyRangeConstraint
de.smartics.properties.spi.core.convert
de.smartics.properties.spi.core.metadata
de.smartics.properties.api.core.domain
de.smartics.properties.spi.core.constraint
de.smartics.util.lang
java.lang
java.util

de.smartics.properties.spi.core.context

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 16 18.0% 89.0% 7.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.properties.spi.core.context.ClassPathListing
de.smartics.properties.spi.core.context.PropertyContextProvider
de.smartics.properties.spi.core.context.ClassPathListingFactory
de.smartics.properties.spi.core.context.DeclarationConfigParser
de.smartics.properties.spi.core.context.DeclarationConfigWriter
de.smartics.properties.spi.core.context.DeclarationConfigWriter$1
de.smartics.properties.spi.core.context.JarAndFileClassPathListing
de.smartics.properties.spi.core.context.LocaleFinder
de.smartics.properties.spi.core.context.LocaleFinder$1
de.smartics.properties.spi.core.context.MandatoryPropertyContext
de.smartics.properties.spi.core.context.PropertyContextProxy
de.smartics.properties.spi.core.metadata
de.smartics.properties.spi.core.registry
de.smartics.properties.api.core.context.alias
de.smartics.properties.api.core.domain
de.smartics.properties.spi.core.util
de.smartics.util.lang
de.smartics.util.util
java.io
java.lang
java.net
java.util
org.apache.commons.io
org.apache.commons.lang
org.apache.commons.lang.builder
org.jdom
org.jdom.input
org.jdom.output
org.slf4j

de.smartics.properties.spi.core.convert

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 11 17.0% 100.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.properties.spi.core.convert.PropertyValueConverter
de.smartics.properties.spi.core.convert.BeanUtilsPropertyValueConverter
de.smartics.properties.spi.core.convert.ConverterUtils
de.smartics.properties.spi.core.convert.FromStringTypeConverter
de.smartics.properties.spi.core.convert.ListPropertyHelper
de.smartics.properties.spi.core.convert.PropertyValueRangeConverter
None de.smartics.properties.api.core.domain
de.smartics.properties.spi.core.constraints
de.smartics.util.lang
java.io
java.lang
java.lang.reflect
java.net
java.util
org.apache.commons.beanutils
org.apache.commons.beanutils.converters
org.apache.commons.lang

de.smartics.properties.spi.core.metadata

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 19 22.0% 95.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.properties.spi.core.metadata.DocumentMetaDataProxy
de.smartics.properties.spi.core.metadata.PropertyCommentProvider
de.smartics.properties.spi.core.metadata.MetaInfDocumentMetaDataProxy
de.smartics.properties.spi.core.metadata.PropertyCommentProxy
de.smartics.properties.spi.core.metadata.PropertyMetaData
de.smartics.properties.spi.core.metadata.PropertyMetaData$1
de.smartics.properties.spi.core.metadata.PropertyMetaData$Builder
de.smartics.properties.spi.core.metadata.PropertyMetaDataDefaults
de.smartics.properties.spi.core.metadata.PropertyMetaDataParser
de.smartics.properties.spi.core.registry
de.smartics.properties.api.core.annotations
de.smartics.properties.api.core.domain
de.smartics.properties.spi.core.constraint.jsr303
de.smartics.properties.spi.core.constraints
de.smartics.properties.spi.core.context
de.smartics.properties.spi.core.metadata.comment
de.smartics.properties.spi.core.metadata.projectdoc
de.smartics.properties.spi.core.util
de.smartics.properties.spi.core.value
de.smartics.util.lang
java.io
java.lang
java.lang.annotation
java.lang.reflect
java.util
javax.validation
javax.validation.constraints
org.apache.commons.lang
org.apache.commons.lang.builder

de.smartics.properties.spi.core.metadata.comment

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 9 0.0% 90.0% 10.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.spi.core.metadata.comment.CommentException
de.smartics.properties.spi.core.metadata.comment.PropertyCommentParser
de.smartics.properties.spi.core.metadata
de.smartics.properties.api.core.domain
de.smartics.util.lang
java.io
java.lang
java.util
org.apache.commons.io
org.jdom
org.jdom.input
org.slf4j

de.smartics.properties.spi.core.metadata.projectdoc

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 15 33.0% 94.0% 27.000002%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.properties.spi.core.metadata.projectdoc.AbstractAnnotationCollector
de.smartics.properties.spi.core.metadata.projectdoc.ProjectdocAnnotationCollector$Defaults
de.smartics.properties.spi.core.metadata.projectdoc.MetaDataException
de.smartics.properties.spi.core.metadata.projectdoc.ProjectdocAnnotationCollector
de.smartics.properties.spi.core.metadata.projectdoc.ProjectdocMetaData
de.smartics.properties.spi.core.metadata.projectdoc.ProjectdocMetaDataParser
de.smartics.properties.spi.core.metadata
de.smartics.projectdoc.annotations
de.smartics.properties.api.core.domain
de.smartics.util.lang
java.io
java.lang
java.lang.annotation
java.lang.reflect
java.util
org.apache.commons.io
org.apache.commons.lang
org.apache.commons.lang.builder
org.jdom
org.jdom.input
org.jdom.output
org.slf4j

de.smartics.properties.spi.core.registry

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 13 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.spi.core.registry.ConfigurationRegistry
de.smartics.properties.spi.core.registry.InMemoryPropertyDescriptorRegistry
None com.google.common.collect
de.smartics.properties.api.core.annotations
de.smartics.properties.api.core.domain
de.smartics.properties.spi.core.context
de.smartics.properties.spi.core.metadata
de.smartics.properties.spi.core.util
de.smartics.util.lang
java.io
java.lang
java.lang.reflect
java.util
java.util.concurrent.locks
org.slf4j

de.smartics.properties.spi.core.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 7 0.0% 70.0% 30.000002%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.spi.core.util.ClassLoaderUtils
de.smartics.properties.spi.core.util.PropertyUtils
de.smartics.properties.spi.core.util.SerializableMethod
de.smartics.properties.spi.core.context
de.smartics.properties.spi.core.metadata
de.smartics.properties.spi.core.registry
de.smartics.properties.api.core.annotations
de.smartics.util.lang
java.io
java.lang
java.lang.reflect
java.net
org.apache.commons.lang

de.smartics.properties.spi.core.validate

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 4 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.spi.core.validate.PropertyValidator
None de.smartics.properties.api.core.domain
java.io
java.lang
java.util

de.smartics.properties.spi.core.value

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 6 0.0% 86.0% 14.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None de.smartics.properties.spi.core.value.CollectionPropertyValueRange
de.smartics.properties.spi.core.value.EnumIdTranslator
de.smartics.properties.spi.core.value.EnumeratedPropertyValueRange
de.smartics.properties.spi.core.metadata
de.smartics.properties.api.core.domain
de.smartics.util.lang
java.io
java.lang
java.lang.reflect
java.util

Cycles

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

There are no cyclic dependencies.

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.