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.api.action 10 5 5 1 13 50.0% 93.0% 43.0% 1
info.magnolia.ui.api.action.config 2 2 0 0 2 0.0% 100.0% 0.0% 1
info.magnolia.ui.api.app 26 11 15 3 13 58.0% 81.0% 39.0% 1
info.magnolia.ui.api.app.launcherlayout 14 9 5 0 12 36.0% 100.0% 36.0% 1
info.magnolia.ui.api.app.registry 12 10 2 1 13 17.0% 93.0% 10.0% 1
info.magnolia.ui.api.availability 7 2 5 1 3 71.0% 75.0% 46.0% 1
info.magnolia.ui.api.context 1 0 1 2 2 100.0% 50.0% 50.0% 1
info.magnolia.ui.api.event 4 1 3 0 2 75.0% 100.0% 75.0% 1
info.magnolia.ui.api.i18n 3 0 3 2 6 100.0% 75.0% 75.0% 1
info.magnolia.ui.api.ioc 13 0 13 0 2 100.0% 100.0% 100.0% 1
info.magnolia.ui.api.location 13 9 4 1 10 31.0% 91.0% 22.0% 1
info.magnolia.ui.api.message 2 2 0 1 4 0.0% 80.0% 20.0% 1
info.magnolia.ui.api.overlay 8 2 6 2 2 75.0% 50.0% 25.0% 1
info.magnolia.ui.api.shell 4 1 3 1 6 75.0% 86.0% 61.0% 1
info.magnolia.ui.api.view 2 0 2 3 3 100.0% 50.0% 50.0% 1

Packages

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

info.magnolia.ui.api.action

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 13 50.0% 93.0% 43.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.ui.api.action.AbstractAction
info.magnolia.ui.api.action.AbstractActionExecutor
info.magnolia.ui.api.action.Action
info.magnolia.ui.api.action.ActionDefinition
info.magnolia.ui.api.action.ActionExecutor
info.magnolia.ui.api.action.ActionDefinitionKeyGenerator
info.magnolia.ui.api.action.ActionDefinitionKeyGenerator$1
info.magnolia.ui.api.action.ActionExecutionException
info.magnolia.ui.api.action.CommandActionDefinition
info.magnolia.ui.api.action.ConfiguredActionDefinition
info.magnolia.ui.api.action.config
com.google.common.base
com.google.common.collect
info.magnolia.commands
info.magnolia.i18nsystem
info.magnolia.objectfactory
info.magnolia.ui.api.app
info.magnolia.ui.api.availability
info.magnolia.ui.api.i18n
java.lang
java.lang.reflect
java.util
org.apache.commons.lang3
org.apache.commons.lang3.builder

info.magnolia.ui.api.action.config

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 2 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.ui.api.action.config.ActionBuilder
info.magnolia.ui.api.action.config.ActionConfig
None info.magnolia.ui.api.action
java.lang

info.magnolia.ui.api.app

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 13 58.0% 81.0% 39.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.ui.api.app.App
info.magnolia.ui.api.app.AppContext
info.magnolia.ui.api.app.AppController
info.magnolia.ui.api.app.AppDescriptor
info.magnolia.ui.api.app.AppEventBus
info.magnolia.ui.api.app.AppInstanceController
info.magnolia.ui.api.app.AppLifecycleEventHandler
info.magnolia.ui.api.app.AppView
info.magnolia.ui.api.app.AppView$Listener
info.magnolia.ui.api.app.ChooseDialogCallback
info.magnolia.ui.api.app.SubApp
info.magnolia.ui.api.app.SubAppContext
info.magnolia.ui.api.app.SubAppDescriptor
info.magnolia.ui.api.app.SubAppEventBus
info.magnolia.ui.api.app.SubAppLifecycleEventHandler
info.magnolia.ui.api.app.AppDescriptorKeyGenerator
info.magnolia.ui.api.app.AppLifecycleEvent
info.magnolia.ui.api.app.AppLifecycleEvent$1
info.magnolia.ui.api.app.AppLifecycleEventHandler$Adapter
info.magnolia.ui.api.app.AppLifecycleEventType
info.magnolia.ui.api.app.ChooseDialogCallback$1
info.magnolia.ui.api.app.SubAppDescriptorKeyGenerator
info.magnolia.ui.api.app.SubAppLifecycleEvent
info.magnolia.ui.api.app.SubAppLifecycleEvent$1
info.magnolia.ui.api.app.SubAppLifecycleEvent$Type
info.magnolia.ui.api.app.SubAppLifecycleEventHandler$Adapter
info.magnolia.ui.api.action
info.magnolia.ui.api.app.launcherlayout
info.magnolia.ui.api.app.registry
info.magnolia.cms.security.operations
info.magnolia.config
info.magnolia.event
info.magnolia.objectfactory
info.magnolia.ui.api.context
info.magnolia.ui.api.i18n
info.magnolia.ui.api.location
info.magnolia.ui.api.message
info.magnolia.ui.api.view
java.io
java.lang
java.lang.reflect
java.util

info.magnolia.ui.api.app.launcherlayout

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 12 36.0% 100.0% 36.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.ui.api.app.launcherlayout.AppLauncherGroupDefinition
info.magnolia.ui.api.app.launcherlayout.AppLauncherGroupEntryDefinition
info.magnolia.ui.api.app.launcherlayout.AppLauncherLayoutChangedEventHandler
info.magnolia.ui.api.app.launcherlayout.AppLauncherLayoutDefinition
info.magnolia.ui.api.app.launcherlayout.AppLauncherLayoutManager
info.magnolia.ui.api.app.launcherlayout.AppLauncherGroup
info.magnolia.ui.api.app.launcherlayout.AppLauncherGroupDefinitionKeyGenerator
info.magnolia.ui.api.app.launcherlayout.AppLauncherGroupEntry
info.magnolia.ui.api.app.launcherlayout.AppLauncherLayout
info.magnolia.ui.api.app.launcherlayout.AppLauncherLayoutChangedEvent
info.magnolia.ui.api.app.launcherlayout.AppLauncherLayoutManagerImpl$1
info.magnolia.ui.api.app.launcherlayout.ConfiguredAppLauncherGroupDefinition
info.magnolia.ui.api.app.launcherlayout.ConfiguredAppLauncherGroupEntryDefinition
info.magnolia.ui.api.app.launcherlayout.ConfiguredAppLauncherLayoutDefinition
None info.magnolia.cms.security
info.magnolia.cms.security.operations
info.magnolia.config.registry
info.magnolia.event
info.magnolia.i18nsystem
info.magnolia.ui.api.app
info.magnolia.ui.api.app.registry
java.lang
java.lang.reflect
java.util
org.apache.commons.lang3
org.slf4j

info.magnolia.ui.api.app.registry

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 13 17.0% 93.0% 10.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.ui.api.app.registry.AppDescriptorProvider
info.magnolia.ui.api.app.registry.AppRegistryEventHandler
info.magnolia.ui.api.app.registry.AppDescriptorRegistry
info.magnolia.ui.api.app.registry.AppRegistryEvent
info.magnolia.ui.api.app.registry.AppRegistryEvent$1
info.magnolia.ui.api.app.registry.AppRegistryEventType
info.magnolia.ui.api.app.registry.ConfiguredAppDescriptor
info.magnolia.ui.api.app.registry.ConfiguredAppDescriptorManager
info.magnolia.ui.api.app.registry.ConfiguredAppDescriptorProvider
info.magnolia.ui.api.app.registry.ConfiguredSubAppDescriptor
info.magnolia.ui.api.app.registry.DefinitionTypes
info.magnolia.ui.api.app.registry.DefinitionTypes$1
info.magnolia.ui.api.app.launcherlayout
info.magnolia.cms.security.operations
info.magnolia.config.registry
info.magnolia.event
info.magnolia.jcr.node2bean
info.magnolia.module
info.magnolia.objectfactory
info.magnolia.registry
info.magnolia.ui.api.app
java.lang
java.util
javax.jcr
org.apache.commons.collections4
org.slf4j

info.magnolia.ui.api.availability

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 3 71.0% 75.0% 46.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.ui.api.availability.AbstractAvailabilityRule
info.magnolia.ui.api.availability.AvailabilityChecker
info.magnolia.ui.api.availability.AvailabilityDefinition
info.magnolia.ui.api.availability.AvailabilityRule
info.magnolia.ui.api.availability.AvailabilityRuleDefinition
info.magnolia.ui.api.availability.ConfiguredAvailabilityDefinition
info.magnolia.ui.api.availability.ConfiguredAvailabilityRuleDefinition
info.magnolia.ui.api.action
info.magnolia.cms.security.operations
java.lang
java.util

info.magnolia.ui.api.context

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 2 100.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.ui.api.context.UiContext
None info.magnolia.ui.api.app
info.magnolia.ui.api.shell
info.magnolia.ui.api.overlay
java.lang

info.magnolia.ui.api.event

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 2 75.0% 100.0% 75.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.ui.api.event.AdmincentralEventBus
info.magnolia.ui.api.event.ChooseDialogEventBus
info.magnolia.ui.api.event.ContentChangedEvent$Handler
info.magnolia.ui.api.event.ContentChangedEvent
None info.magnolia.event
java.lang

info.magnolia.ui.api.i18n

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 6 100.0% 75.0% 75.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.ui.api.i18n.AbstractAppKeyGenerator
info.magnolia.ui.api.i18n.I18NAuthoringSupport
info.magnolia.ui.api.i18n.I18NAwareHandler
None info.magnolia.ui.api.action
info.magnolia.ui.api.app
com.vaadin.data
com.vaadin.ui
info.magnolia.i18nsystem
java.lang
java.util
javax.jcr

info.magnolia.ui.api.ioc

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 2 100.0% 100.0% 100.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.ui.api.ioc.AdminCentral
info.magnolia.ui.api.ioc.AdmincentralScoped
info.magnolia.ui.api.ioc.AdmincentralScopedEager
info.magnolia.ui.api.ioc.App
info.magnolia.ui.api.ioc.AppScoped
info.magnolia.ui.api.ioc.AppScopedEager
info.magnolia.ui.api.ioc.SubApp
info.magnolia.ui.api.ioc.SubAppScoped
info.magnolia.ui.api.ioc.SubAppScopedEager
info.magnolia.ui.api.ioc.UiContextScoped
info.magnolia.ui.api.ioc.View
info.magnolia.ui.api.ioc.ViewScoped
info.magnolia.ui.api.ioc.ViewScopedEager
None None java.lang
java.lang.annotation

info.magnolia.ui.api.location

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 10 31.0% 91.0% 22.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.ui.api.location.Location
info.magnolia.ui.api.location.LocationChangeRequestedEvent$Handler
info.magnolia.ui.api.location.LocationChangedEvent$Handler
info.magnolia.ui.api.location.LocationHistoryMapper
info.magnolia.ui.api.location.DefaultLocation
info.magnolia.ui.api.location.Location$1
info.magnolia.ui.api.location.LocationChangeRequestedEvent
info.magnolia.ui.api.location.LocationChangedEvent
info.magnolia.ui.api.location.LocationController
info.magnolia.ui.api.location.LocationController$1
info.magnolia.ui.api.location.LocationHistoryHandler
info.magnolia.ui.api.location.LocationHistoryHandler$1
info.magnolia.ui.api.location.LocationHistoryHandler$2
info.magnolia.ui.api.app
info.magnolia.cms.core
info.magnolia.context
info.magnolia.event
info.magnolia.ui.api.shell
java.io
java.lang
java.net
java.util
org.apache.commons.lang3
org.slf4j

info.magnolia.ui.api.message

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 4 0.0% 80.0% 20.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None info.magnolia.ui.api.message.Message
info.magnolia.ui.api.message.MessageType
info.magnolia.ui.api.app
info.magnolia.cms.security
info.magnolia.context
java.lang
java.util

info.magnolia.ui.api.overlay

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 2 75.0% 50.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.ui.api.overlay.AlertCallback
info.magnolia.ui.api.overlay.ConfirmationCallback
info.magnolia.ui.api.overlay.MessageStyleType
info.magnolia.ui.api.overlay.NotificationCallback
info.magnolia.ui.api.overlay.OverlayCloser
info.magnolia.ui.api.overlay.OverlayLayer
info.magnolia.ui.api.overlay.OverlayLayer$ModalityDomain
info.magnolia.ui.api.overlay.OverlayLayer$ModalityLevel
info.magnolia.ui.api.context
info.magnolia.ui.api.shell
info.magnolia.ui.api.view
java.lang

info.magnolia.ui.api.shell

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 6 75.0% 86.0% 61.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.ui.api.shell.ConfirmationHandler
info.magnolia.ui.api.shell.FragmentChangedHandler
info.magnolia.ui.api.shell.Shell
info.magnolia.ui.api.shell.FragmentChangedEvent
info.magnolia.ui.api.location
info.magnolia.event
info.magnolia.ui.api.context
info.magnolia.ui.api.overlay
info.magnolia.ui.api.view
java.lang
java.util

info.magnolia.ui.api.view

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 3 100.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
info.magnolia.ui.api.view.View
info.magnolia.ui.api.view.Viewport
None info.magnolia.ui.api.app
info.magnolia.ui.api.overlay
info.magnolia.ui.api.shell
com.vaadin.ui
java.io
java.lang

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.