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
info.magnolia.ui.availability 1 1 0 1 5 0.0% 83.0% 17.0% 1
info.magnolia.ui.availability.rule 18 17 1 1 9 6.0% 90.0% 4.0% 1
info.magnolia.ui.contentapp 7 7 0 1 19 0.0% 95.0% 5.0% 1
info.magnolia.ui.contentapp.action 14 14 0 0 13 0.0% 100.0% 0.0% 1
info.magnolia.ui.contentapp.column.jcr 4 4 0 0 9 0.0% 100.0% 0.0% 1
info.magnolia.ui.contentapp.drop 3 3 0 0 8 0.0% 100.0% 0.0% 1
info.magnolia.ui.contentapp.observation 3 3 0 1 6 0.0% 86.0% 14.0% 1
info.magnolia.ui.contentapp.preview 3 3 0 1 8 0.0% 89.0% 11.0% 1
info.magnolia.ui.contentapp.version 2 2 0 1 6 0.0% 86.0% 14.0% 1
info.magnolia.ui.datasource.jcr 3 3 0 5 8 0.0% 62.0% 38.0% 1
info.magnolia.ui.editor 26 24 2 2 16 8.0% 89.0% 3.0% 1
info.magnolia.ui.editor.converter 1 0 1 0 4 100.0% 100.0% 100.0% 1
info.magnolia.ui.editor.validator 2 2 0 0 6 0.0% 100.0% 0.0% 1
info.magnolia.ui.field 2 2 0 3 2 0.0% 40.0% 60.000004% 1
info.magnolia.ui.framework 1 1 0 0 10 0.0% 100.0% 0.0% 1
info.magnolia.util 4 4 0 0 6 0.0% 100.0% 0.0% 1

Packages

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

info.magnolia.ui.availability

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 0.0% 83.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.ui.availability.JcrAvailabilityChecker
info.magnolia.ui.contentapp
info.magnolia.objectfactory
info.magnolia.ui.api.availability
info.magnolia.ui.availability.rule
java.util
java.util.stream

info.magnolia.ui.availability.rule

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 9 6.0% 90.0% 4.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.ui.availability.rule.AbstractJcrRule
info.magnolia.ui.availability.rule.JcrHasChildrenRule$NodeFilteringPredicate
info.magnolia.ui.availability.rule.JcrHasChildrenRuleDefinition
info.magnolia.ui.availability.rule.JcrHasVersionsRule
info.magnolia.ui.availability.rule.JcrHasVersionsRuleDefinition
info.magnolia.ui.availability.rule.JcrIsDeletedRule
info.magnolia.ui.availability.rule.JcrIsDeletedRuleDefinition
info.magnolia.ui.availability.rule.JcrNodeRule
info.magnolia.ui.availability.rule.JcrNodeRuleDefinition
info.magnolia.ui.availability.rule.JcrNodeTypeRuleDefinition
info.magnolia.ui.availability.rule.JcrPropertyRule
info.magnolia.ui.availability.rule.JcrPropertyRuleDefinition
info.magnolia.ui.availability.rule.JcrPublishableRuleDefinition
info.magnolia.ui.availability.rule.JcrPublishedRuleDefinition
info.magnolia.ui.availability.rule.JcrRootRule
info.magnolia.ui.availability.rule.JcrRootRuleDefinition
info.magnolia.ui.availability.rule.JcrWritePermissionRule
info.magnolia.ui.availability.rule.JcrWritePermissionRuleDefinition
info.magnolia.ui.availability
info.magnolia.cms.core.version
info.magnolia.cms.security
info.magnolia.jcr
info.magnolia.jcr.predicate
info.magnolia.jcr.util
info.magnolia.ui.api.availability
java.lang
java.util
javax.jcr

info.magnolia.ui.contentapp

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 19 0.0% 95.0% 5.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.ui.contentapp.JcrDataProviderDefinition
info.magnolia.ui.contentapp.JcrDataProviderUtils
info.magnolia.ui.contentapp.JcrDataProviderUtils$AlwaysTruePredicate
info.magnolia.ui.contentapp.JcrDataProviderUtils$NodeTypeFilteringPredicate
info.magnolia.ui.contentapp.JcrItemInteractionAvailability
info.magnolia.ui.contentapp.JcrListPresenter
info.magnolia.ui.contentapp.ResolveJcrNodeFromLocationContext
info.magnolia.ui.editor
com.vaadin.data
com.vaadin.data.provider
info.magnolia.jcr
info.magnolia.jcr.predicate
info.magnolia.jcr.util
info.magnolia.objectfactory
info.magnolia.ui.availability
info.magnolia.ui.contentapp.browser
info.magnolia.ui.contentapp.configuration
info.magnolia.ui.contentapp.detail
info.magnolia.ui.contentapp.observation
info.magnolia.ui.contentapp.version
info.magnolia.ui.datasource
info.magnolia.ui.datasource.jcr
info.magnolia.ui.editor
java.lang
java.util
java.util.stream
javax.jcr

info.magnolia.ui.contentapp.action

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 info.magnolia.ui.contentapp.action.AddNodeAction
info.magnolia.ui.contentapp.action.AddNodeActionDefinition
info.magnolia.ui.contentapp.action.DeleteNodesConfirmationActionDefinition
info.magnolia.ui.contentapp.action.DuplicateNodeAction
info.magnolia.ui.contentapp.action.DuplicateNodeActionDefinition
info.magnolia.ui.contentapp.action.JcrCommandAction
info.magnolia.ui.contentapp.action.JcrCommandActionDefinition
info.magnolia.ui.contentapp.action.JcrExportActionDefinition
info.magnolia.ui.contentapp.action.JcrImportActionDefinition
info.magnolia.ui.contentapp.action.MarkAsDeletedCommandActionDefinition
info.magnolia.ui.contentapp.action.RestoreJcrVersionActionDefinition
info.magnolia.ui.contentapp.action.RestorePreviousJcrVersionAction
info.magnolia.ui.contentapp.action.RestorePreviousJcrVersionActionDefinition
info.magnolia.ui.contentapp.action.ShowPreviousJcrVersionActionDefinition
None info.magnolia.commands
info.magnolia.context
info.magnolia.importexport.command
info.magnolia.jcr
info.magnolia.jcr.util
info.magnolia.ui
info.magnolia.ui.api.action
info.magnolia.ui.api.availability
info.magnolia.ui.contentapp.async
info.magnolia.ui.datasource.jcr
java.lang
java.util
javax.jcr

info.magnolia.ui.contentapp.column.jcr

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 9 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.ui.contentapp.column.jcr.JcrPathColumnDefinition
info.magnolia.ui.contentapp.column.jcr.JcrStatusColumnDefinition
info.magnolia.ui.contentapp.column.jcr.JcrStatusColumnDefinition$ActivationStatus
info.magnolia.ui.contentapp.column.jcr.JcrTitleColumnDefinition
None com.vaadin.ui.renderers
info.magnolia.jcr.util
info.magnolia.ui.contentapp.configuration.column
info.magnolia.ui.contentapp.configuration.column.icon
info.magnolia.ui.datasource.enumeration
info.magnolia.ui.field
java.lang
java.util
org.slf4j

info.magnolia.ui.contentapp.drop

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 info.magnolia.ui.contentapp.drop.JcrDropConstraint
info.magnolia.ui.contentapp.drop.JcrDropConstraint$1
info.magnolia.ui.contentapp.drop.JcrDropConstraintDefinition
None com.vaadin.shared.ui.grid
info.magnolia.jcr.util
info.magnolia.ui.contentapp.browser.drop
java.lang
javax.jcr
javax.jcr.nodetype
lombok
org.apache.commons.lang3

info.magnolia.ui.contentapp.observation

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 info.magnolia.ui.contentapp.observation.JcrDataSourceObservation$1
info.magnolia.ui.contentapp.observation.JcrObservation
info.magnolia.ui.contentapp.observation.JcrObservation$1
info.magnolia.ui.contentapp
com.vaadin.shared
info.magnolia.ui.datasource.jcr
java.lang
java.util
java.util.concurrent
java.util.function

info.magnolia.ui.contentapp.preview

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 info.magnolia.ui.contentapp.preview.JcrPreviewDefinition
info.magnolia.ui.contentapp.preview.JcrPreviewProvider$ImageStreamSource
info.magnolia.ui.contentapp.preview.JcrPreviewProvider$LinkProvider
info.magnolia.ui.datasource.jcr
com.vaadin.server
info.magnolia.jcr
info.magnolia.jcr.util
info.magnolia.link
java.io
java.lang
javax.jcr
org.apache.jackrabbit

info.magnolia.ui.contentapp.version

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 info.magnolia.ui.contentapp.version.JcrVersionResolver
info.magnolia.ui.contentapp.version.VersionResolver
info.magnolia.ui.contentapp
info.magnolia.cms.core.version
info.magnolia.jcr
info.magnolia.ui.datasource.jcr
java.lang
java.util
javax.jcr

info.magnolia.ui.datasource.jcr

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 8 0.0% 62.0% 38.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.ui.datasource.jcr.JcrDatasource$1
info.magnolia.ui.datasource.jcr.JcrDatasourceDefinition
info.magnolia.ui.datasource.jcr.JcrSessionWrapper
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.action
info.magnolia.ui.contentapp.observation
info.magnolia.ui.contentapp.version
info.magnolia.ui.editor.converter
com.vaadin.shared.ui.grid
info.magnolia.jcr.decoration
info.magnolia.ui.contentapp.preview
info.magnolia.ui.datasource
java.lang
java.util
javax.jcr
org.apache.commons.lang3

info.magnolia.ui.editor

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 16 8.0% 89.0% 3.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.ui.editor.JcrBinaryHelper
info.magnolia.ui.editor.JcrItemInteractionStrategy
info.magnolia.ui.editor.ByIndexedChildNodes$Definition
info.magnolia.ui.editor.ByIndexedChildNodes$IndexedChildNodeNameRegexPredicate
info.magnolia.ui.editor.ByLexicographicallyIndexedChildNodes$Definition
info.magnolia.ui.editor.ByMultiValueProperties$Definition
info.magnolia.ui.editor.DefaultJcrNodeOrderHandler$Definition
info.magnolia.ui.editor.JcrChildNodeProviderDefinition
info.magnolia.ui.editor.JcrIndexedChildNodeProvider$Definition
info.magnolia.ui.editor.JcrIndexedMultiPropertyValueProvider$1
info.magnolia.ui.editor.JcrIndexedMultiPropertyValueProvider$Definition
info.magnolia.ui.editor.JcrIndexedMultiPropertyValueProvider$SingleValueWrapper
info.magnolia.ui.editor.JcrItemPropertySet$1
info.magnolia.ui.editor.JcrItemPropertySet$JcrPropertyDescriptor
info.magnolia.ui.editor.JcrItemPropertySet$JcrPropertyDescriptor$JcrPropertyDescriptorBuilder
info.magnolia.ui.editor.JcrItemPropertySet$JcrPropertyDescriptorWrapper
info.magnolia.ui.editor.JcrItemPropertySet$LocalisedJcrPropertyDescriptor
info.magnolia.ui.editor.JcrNodeFromLocationResolutionDefinition
info.magnolia.ui.editor.JcrNodeProviderDefinition
info.magnolia.ui.editor.JcrPropertyProvider$Definition
info.magnolia.ui.editor.LexicographicallyIndexedChildNodeProvider$Definition
info.magnolia.ui.editor.LexicographicallyIndexedJcrNodeOrderHandler
info.magnolia.ui.editor.LexicographicallyIndexedJcrNodeOrderHandler$Definition
info.magnolia.ui.editor.MultiFieldEntryResolution
info.magnolia.ui.editor.MultiFieldEntryResolution$Definition
info.magnolia.ui.editor.MultiValuePropertyOrderHandler$Definition
info.magnolia.ui.contentapp
info.magnolia.ui.field
info.magnolia.jcr.predicate
info.magnolia.jcr.util
info.magnolia.jcr.wrapper
info.magnolia.objectfactory
info.magnolia.ui.api.i18n
info.magnolia.ui.contentapp
info.magnolia.ui.field
info.magnolia.ui.framework.util
java.io
java.lang
java.util
java.util.stream
javax.jcr
org.apache.commons.io
org.apache.jackrabbit
org.apache.tika

info.magnolia.ui.editor.converter

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 4 100.0% 100.0% 100.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.ui.editor.converter.AbstractJcrConverter
None None com.vaadin.data
info.magnolia.ui.datasource.jcr
java.lang
javax.jcr

info.magnolia.ui.editor.validator

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 6 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.ui.editor.validator.NodeNameFieldValidatorFactory
info.magnolia.ui.editor.validator.NodeNameValidatorDefinition
None com.vaadin.data
info.magnolia.i18nsystem
info.magnolia.jcr.util
info.magnolia.ui
info.magnolia.ui.field
java.lang

info.magnolia.ui.field

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 2 0.0% 40.0% 60.000004%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.ui.field.JcrMultiFieldDefinition
info.magnolia.ui.field.JcrMultiValueFieldDefinition
info.magnolia.ui.contentapp.column.jcr
info.magnolia.ui.editor
info.magnolia.ui.editor.validator
info.magnolia.config
info.magnolia.ui.editor

info.magnolia.ui.framework

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 10 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.ui.framework.JcrSearchSuppliersGenerator$AutogeneratedDefinitionProvider
None com.google.common.collect
info.magnolia.config.registry
info.magnolia.config.source
info.magnolia.config.source.raw
info.magnolia.jcr.util
info.magnolia.periscope.search
info.magnolia.periscope.search.jcr
info.magnolia.ui.api.app
java.lang
java.util

info.magnolia.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 6 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.util.CollectionConversionCapableBeanUtils
info.magnolia.util.CollectionConversionCapableBeanUtils$1
info.magnolia.util.CollectionConversionCapableBeanUtils$2
info.magnolia.util.JcrValueConverter
None info.magnolia.jcr
info.magnolia.jcr.node2bean.impl
java.lang
java.util
javax.jcr
org.apache.commons.beanutils

Cycles

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

Package Package Dependencies
info.magnolia.ui.contentapp info.magnolia.ui.editor
info.magnolia.ui.field
info.magnolia.ui.editor
info.magnolia.ui.contentapp.column.jcr info.magnolia.ui.field
info.magnolia.ui.editor
info.magnolia.ui.field
info.magnolia.ui.editor info.magnolia.ui.field
info.magnolia.ui.editor
info.magnolia.ui.editor.validator info.magnolia.ui.field
info.magnolia.ui.editor
info.magnolia.ui.field
info.magnolia.ui.field info.magnolia.ui.editor
info.magnolia.ui.field

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.