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 ]

PackageTCCCACCaCeAIDV
info.magnolia.pages.app.action232301380.0%97.0%3.0%1
info.magnolia.pages.app.availability220080.0%100.0%0.0%1
info.magnolia.pages.app.column2200120.0%100.0%0.0%1
info.magnolia.pages.app.dnd1100120.0%100.0%0.0%1
info.magnolia.pages.app.editor1512314120.0%98.0%18.0%1
info.magnolia.pages.app.editor.availability17161066.0%100.0%6.0%1
info.magnolia.pages.app.editor.event4222350.0%60.000004%10.0%1
info.magnolia.pages.app.editor.location110020.0%100.0%0.0%1
info.magnolia.pages.app.field4401120.0%92.0%8.0%1
info.magnolia.pages.app.thumbnail110030.0%100.0%0.0%1
info.magnolia.pages.setup3300160.0%100.0%0.0%1

Packages

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

info.magnolia.pages.app.action

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1380.0%97.0%3.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.pages.app.action.CreateAreaAction
info.magnolia.pages.app.action.CreateAreaActionDefinition
info.magnolia.pages.app.action.CreateComponentAction
info.magnolia.pages.app.action.CreateComponentAction$1
info.magnolia.pages.app.action.CreateComponentAction$ComponentCreationCallback
info.magnolia.pages.app.action.CreateComponentActionDefinition
info.magnolia.pages.app.action.DeleteComponentAction
info.magnolia.pages.app.action.DeletePageItemAction
info.magnolia.pages.app.action.EditElementAction
info.magnolia.pages.app.action.EditElementAction$1
info.magnolia.pages.app.action.EditElementActionDefinition
info.magnolia.pages.app.action.EditPageAction
info.magnolia.pages.app.action.EditPageActionDefinition
info.magnolia.pages.app.action.MoveComponentAction
info.magnolia.pages.app.action.MoveComponentActionDefinition
info.magnolia.pages.app.action.PreviewPageAction
info.magnolia.pages.app.action.PreviewPageActionDefinition
info.magnolia.pages.app.action.PreviewPreviousVersionAction
info.magnolia.pages.app.action.PreviewPreviousVersionActionDefinition
info.magnolia.pages.app.action.RestorePreviousVersionAction
info.magnolia.pages.app.action.RestorePreviousVersionActionDefinition
info.magnolia.pages.app.action.SortComponentAction
info.magnolia.pages.app.action.SortComponentActionDefinition
info.magnolia.pages.setup
com.vaadin.data
info.magnolia.cms.core.version
info.magnolia.commands
info.magnolia.context
info.magnolia.event
info.magnolia.i18nsystem
info.magnolia.jcr.util
info.magnolia.objectfactory
info.magnolia.pages.app.editor.event
info.magnolia.pages.app.field
info.magnolia.registry
info.magnolia.rendering.template
info.magnolia.rendering.template.registry
info.magnolia.ui.admincentral.dialog.action
info.magnolia.ui.api.action
info.magnolia.ui.api.app
info.magnolia.ui.api.context
info.magnolia.ui.api.event
info.magnolia.ui.api.location
info.magnolia.ui.contentapp.browser.action
info.magnolia.ui.contentapp.detail
info.magnolia.ui.contentapp.detail.action
info.magnolia.ui.dialog
info.magnolia.ui.dialog.action
info.magnolia.ui.dialog.definition
info.magnolia.ui.dialog.formdialog
info.magnolia.ui.form
info.magnolia.ui.form.definition
info.magnolia.ui.form.field.definition
info.magnolia.ui.framework.action
info.magnolia.ui.vaadin.gwt.client.shared
info.magnolia.ui.vaadin.integration.jcr
java.lang
java.util
javax.jcr
javax.jcr.version
org.apache.commons.lang3
org.slf4j

info.magnolia.pages.app.availability

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
080.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.pages.app.availability.PageHasSubpagesAndIsNotDeletedRule
info.magnolia.pages.app.availability.PageHasSubpagesRule
Noneinfo.magnolia.jcr.util
info.magnolia.ui.api.availability
info.magnolia.ui.framework.availability
info.magnolia.ui.vaadin.integration.jcr
java.lang
java.util
javax.jcr
org.slf4j

info.magnolia.pages.app.column

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0120.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.pages.app.column.TemplateColumnDefinition
info.magnolia.pages.app.column.TemplateColumnFormatter
Nonecom.vaadin.ui
info.magnolia.cms.i18n
info.magnolia.registry
info.magnolia.rendering.template
info.magnolia.rendering.template.assignment
info.magnolia.rendering.template.registry
info.magnolia.ui.workbench.column
info.magnolia.ui.workbench.column.definition
java.lang
java.text
javax.jcr
org.slf4j

info.magnolia.pages.app.dnd

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0120.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.pages.app.dnd.TemplateTypeRestrictionDropConstraint
Nonecom.vaadin.data
info.magnolia.jcr
info.magnolia.registry
info.magnolia.rendering.template
info.magnolia.rendering.template.assignment
info.magnolia.ui.vaadin.integration.jcr
info.magnolia.ui.workbench.tree.drop
java.lang
java.util
javax.jcr
javax.jcr.nodetype
org.slf4j

info.magnolia.pages.app.editor

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
14120.0%98.0%18.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.pages.app.editor.PageEditorPresenter$Listener
info.magnolia.pages.app.editor.PagesEditorSubAppView
info.magnolia.pages.app.editor.PagesEditorSubAppView$Listener
info.magnolia.pages.app.editor.PageEditorPresenter
info.magnolia.pages.app.editor.PageEditorPresenter$1
info.magnolia.pages.app.editor.PageEditorPresenter$2
info.magnolia.pages.app.editor.PageEditorStatusBarViewImpl
info.magnolia.pages.app.editor.PagesEditorSubApp
info.magnolia.pages.app.editor.PagesEditorSubApp$1
info.magnolia.pages.app.editor.PagesEditorSubApp$2
info.magnolia.pages.app.editor.PagesEditorSubApp$3
info.magnolia.pages.app.editor.PagesEditorSubApp$4
info.magnolia.pages.app.editor.PagesEditorSubApp$5
info.magnolia.pages.app.editor.PagesEditorSubAppViewImpl
info.magnolia.pages.app.editor.PagesEditorSubAppViewImpl$1
info.magnolia.pages.app.editor.availability
com.vaadin.event
com.vaadin.server
com.vaadin.ui
info.magnolia.cms.beans.config
info.magnolia.cms.core
info.magnolia.cms.core.version
info.magnolia.cms.i18n
info.magnolia.context
info.magnolia.event
info.magnolia.i18nsystem
info.magnolia.jcr.util
info.magnolia.link
info.magnolia.objectfactory
info.magnolia.pages.app.editor.event
info.magnolia.ui.actionbar
info.magnolia.ui.actionbar.definition
info.magnolia.ui.api.action
info.magnolia.ui.api.app
info.magnolia.ui.api.availability
info.magnolia.ui.api.event
info.magnolia.ui.api.i18n
info.magnolia.ui.api.location
info.magnolia.ui.api.message
info.magnolia.ui.api.view
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.definition
info.magnolia.ui.contentapp.detail
info.magnolia.ui.framework.app
info.magnolia.ui.framework.i18n
info.magnolia.ui.vaadin.editor
info.magnolia.ui.vaadin.editor.gwt.shared
info.magnolia.ui.vaadin.editor.pagebar
info.magnolia.ui.vaadin.gwt.client.shared
info.magnolia.ui.vaadin.integration.contentconnector
info.magnolia.ui.vaadin.integration.jcr
info.magnolia.ui.workbench
java.lang
java.util
javax.jcr
org.apache.commons.lang3
org.slf4j

info.magnolia.pages.app.editor.availability

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
066.0%100.0%6.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.pages.app.editor.availability.AbstractElementAvailabilityRule
info.magnolia.pages.app.editor.availability.IsAreaAddibleRule
info.magnolia.pages.app.editor.availability.IsAreaCreatedRule
info.magnolia.pages.app.editor.availability.IsAreaCreatedRuleDefinition
info.magnolia.pages.app.editor.availability.IsAreaEditableRule
info.magnolia.pages.app.editor.availability.IsAreaEditableRuleDefinition
info.magnolia.pages.app.editor.availability.IsAreaOptionalRule
info.magnolia.pages.app.editor.availability.IsComponentDeletableRule
info.magnolia.pages.app.editor.availability.IsComponentEditableRule
info.magnolia.pages.app.editor.availability.IsComponentMovableRule
info.magnolia.pages.app.editor.availability.IsComponentMovingRule
info.magnolia.pages.app.editor.availability.IsComponentMovingRuleDefinition
info.magnolia.pages.app.editor.availability.IsElementTypeRule
info.magnolia.pages.app.editor.availability.IsElementTypeRuleDefinition
info.magnolia.pages.app.editor.availability.IsPreviewRule
info.magnolia.pages.app.editor.availability.IsPreviewRuleDefinition
info.magnolia.pages.app.editor.availability.LocationNotVersionedRule
Noneinfo.magnolia.pages.app.editor
info.magnolia.ui.api.app
info.magnolia.ui.api.availability
info.magnolia.ui.contentapp.detail
info.magnolia.ui.vaadin.gwt.client.shared
java.lang

info.magnolia.pages.app.editor.event

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2350.0%60.000004%10.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.pages.app.editor.event.ComponentMoveEvent$Handler
info.magnolia.pages.app.editor.event.NodeSelectedEvent$Handler
info.magnolia.pages.app.editor.event.ComponentMoveEvent
info.magnolia.pages.app.editor.event.NodeSelectedEvent
info.magnolia.pages.app.action
info.magnolia.pages.app.editor
info.magnolia.event
info.magnolia.ui.vaadin.gwt.client.shared
java.lang

info.magnolia.pages.app.editor.location

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
020.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.pages.app.editor.location.PagesLocation
Noneinfo.magnolia.ui.api.location
java.lang

info.magnolia.pages.app.field

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1120.0%92.0%8.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.pages.app.field.ComponentSelectorDefinition
info.magnolia.pages.app.field.ComponentSelectorFieldFactory
info.magnolia.pages.app.field.TemplateSelectorDefinition
info.magnolia.pages.app.field.TemplateSelectorFieldFactory
info.magnolia.pages.app.action
com.vaadin.data
info.magnolia.cms.i18n
info.magnolia.objectfactory
info.magnolia.rendering.template
info.magnolia.rendering.template.assignment
info.magnolia.ui.form.field.definition
info.magnolia.ui.form.field.factory
info.magnolia.ui.vaadin.integration.jcr
java.lang
java.util
javax.jcr
org.slf4j

info.magnolia.pages.app.thumbnail

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
030.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.pages.app.thumbnail.PagesImageProvider
Noneinfo.magnolia.ui.imageprovider
info.magnolia.ui.imageprovider.definition
info.magnolia.ui.vaadin.integration.contentconnector

info.magnolia.pages.setup

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0160.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.pages.setup.PagesModuleVersionHandler
info.magnolia.pages.setup.UpdatePageEditorActionAvailability
info.magnolia.pages.setup.UpdatePageEditorActionAvailability$UpdateAreaSectionActionsTask
Noneinfo.magnolia.i18nsystem.setup
info.magnolia.jcr.util
info.magnolia.module
info.magnolia.module.delta
info.magnolia.nodebuilder
info.magnolia.nodebuilder.task
info.magnolia.pages.app.action
info.magnolia.ui.admincentral.setup
info.magnolia.ui.contentapp
info.magnolia.ui.contentapp.availability
info.magnolia.ui.contentapp.browser.action
info.magnolia.ui.contentapp.setup.for5_3
info.magnolia.ui.framework.setup
java.lang
java.util
javax.jcr

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.

TermDescription
Number of ClassesThe number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package.
Afferent CouplingsThe number of other packages that depend upon classes within the package is an indicator of the package's responsibility.
Efferent CouplingsThe number of other packages that the classes in the package depend upon is an indicator of the package's independence.
AbstractnessThe 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.
InstabilityThe 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.
DistanceThe 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.
CyclesPackages 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.