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 5 3 2 2 5 40.0% 71.0% 11.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 50 44 6 11 11 12.0% 50.0% 38.0% 1
de.smartics.properties.api.core.security 11 9 2 0 13 18.0% 100.0% 18.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 10 10 0 1 15 0.0% 94.0% 6.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 8 7 1 2 16 12.0% 89.0% 1.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 20 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 10 7 3 1 14 30.000002% 93.0% 23.0% 1
de.smartics.properties.spi.core.registry 2 2 0 0 14 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
2 5 40.0% 71.0% 11.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.properties.api.core.app.AbstractBaseMessageBean
de.smartics.properties.api.core.app.PropertiesCode
de.smartics.properties.api.core.app.JndiContext
de.smartics.properties.api.core.app.LibraryCodeNumbers
de.smartics.properties.api.core.app.PropertyRootException
de.smartics.properties.api.core.domain
de.smartics.properties.api.core.security
de.smartics.exceptions.code
de.smartics.exceptions.i18n
java.lang
javax.naming
org.apache.commons.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
11 11 12.0% 50.0% 38.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.ConfigCode
de.smartics.properties.api.core.domain.ConfigException
de.smartics.properties.api.core.domain.ConfigMessageBean
de.smartics.properties.api.core.domain.ConfigMessageBean$1
de.smartics.properties.api.core.domain.ConfigMessageBean$DuplicateKeys
de.smartics.properties.api.core.domain.ConfigMessageBean$InvalidNamespace
de.smartics.properties.api.core.domain.DocumentName
de.smartics.properties.api.core.domain.DuplicateDefaultKeyException
de.smartics.properties.api.core.domain.DuplicateKeys
de.smartics.properties.api.core.domain.DuplicatePropertyDeclarationException
de.smartics.properties.api.core.domain.DuplicatePropertyDeclarationsException
de.smartics.properties.api.core.domain.ProjectdocMetaData
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.PropertyCategories
de.smartics.properties.api.core.domain.PropertyCategories$1
de.smartics.properties.api.core.domain.PropertyCategories$Builder
de.smartics.properties.api.core.domain.PropertyCode
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.PropertyDescriptorClashingMessageBean
de.smartics.properties.api.core.domain.PropertyDescriptorException
de.smartics.properties.api.core.domain.PropertyDescriptorMessageBean
de.smartics.properties.api.core.domain.PropertyDescriptorMessageBean$1
de.smartics.properties.api.core.domain.PropertyDescriptorMessageBean$DefaultPropertyDescriptor
de.smartics.properties.api.core.domain.PropertyException
de.smartics.properties.api.core.domain.PropertyExpression
de.smartics.properties.api.core.domain.PropertyExpressionMessageBean
de.smartics.properties.api.core.domain.PropertyKey
de.smartics.properties.api.core.domain.PropertyMessageBean
de.smartics.properties.api.core.domain.PropertyProjectdoc
de.smartics.properties.api.core.domain.PropertySetProjectdoc
de.smartics.properties.api.core.domain.PropertyType
de.smartics.properties.api.core.domain.PropertyValidationException
de.smartics.properties.api.core.domain.PropertyValidationMessageBean
de.smartics.properties.api.core.domain.PropertyValueChangeMessageBean
de.smartics.properties.api.core.domain.PropertyValueComment
de.smartics.properties.api.core.domain.PropertyValueConversionException
de.smartics.properties.api.core.domain.PropertyValueMessageBean
de.smartics.properties.api.core.domain.PropertyValueResolveException
de.smartics.properties.api.core.domain.ReadOnlyPropertyException
de.smartics.properties.api.core.domain.SourceInfo
de.smartics.properties.api.core.security
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.exceptions.code
de.smartics.exceptions.i18n
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.security

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 13 18.0% 100.0% 18.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.properties.api.core.security.AbstractPropertyValueSecurity
de.smartics.properties.api.core.security.PropertyValueSecurity
de.smartics.properties.api.core.security.Base64PropertyValueSecurity
de.smartics.properties.api.core.security.PropertiesBasedPropertyValueSecurity
de.smartics.properties.api.core.security.SecurityCode
de.smartics.properties.api.core.security.SecurityConfigurationJndiLoader
de.smartics.properties.api.core.security.SecurityConfigurationLoader
de.smartics.properties.api.core.security.SecurityConfigurationPropertiesLoader
de.smartics.properties.api.core.security.SecurityException
de.smartics.properties.api.core.security.SecurityMessageBean
de.smartics.properties.api.core.security.SystemPropertyBasedPropertyValueSecurity
None de.smartics.exceptions.code
de.smartics.properties.api.core.app
de.smartics.properties.api.core.domain
java.io
java.lang
java.net
java.util
javax.crypto
javax.crypto.spec
javax.naming
org.apache.commons.codec.binary
org.apache.commons.io
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 15 0.0% 94.0% 6.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.PropertyConstraintDescriptor
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.lang.reflect
java.util
java.util.regex
javax.validation
javax.validation.constraints
javax.validation.groups
javax.validation.metadata
org.hibernate.validator.constraints
org.hibernate.validator.internal.engine
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 12.0% 89.0% 1.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
de.smartics.properties.spi.core.context.PropertyContextProvider
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.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.lang.classpath
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

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 20 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.projectdoc.annotations
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 14 30.000002% 93.0% 23.0%
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.ProjectdocMetaDataParser
de.smartics.properties.spi.core.metadata.projectdoc.AnnotationHelper
de.smartics.properties.spi.core.metadata.projectdoc.MetaDataException
de.smartics.properties.spi.core.metadata.projectdoc.ProjectdocAnnotationCollector
de.smartics.properties.spi.core.metadata.projectdoc.ProjectdocMetaDataParser$1
de.smartics.properties.spi.core.metadata.projectdoc.ProjectdocMetaDataParser$ParserContext
de.smartics.properties.spi.core.metadata.projectdoc.PropertyProjectdocParser
de.smartics.properties.spi.core.metadata.projectdoc.PropertySetProjectdocParser
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.jdom
org.jdom.input
org.jdom.output
org.slf4j

de.smartics.properties.spi.core.registry

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 14 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
de.smartics.util.lang.classpath
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.classpath
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.