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.ui.api10101100.0%100.0%100.0%1
info.magnolia.ui.api.action105511750.0%94.0%44.0%1
info.magnolia.ui.api.action.config220020.0%100.0%0.0%1
info.magnolia.ui.api.app2061431370.0%81.0%51.0%1
info.magnolia.ui.api.app.launcherlayout1510501333.0%100.0%33.0%1
info.magnolia.ui.api.app.registry1210211517.0%94.0%10.0%1
info.magnolia.ui.api.availability8531838.0%89.0%26.0%1
info.magnolia.ui.api.context10122100.0%50.0%50.0%1
info.magnolia.ui.api.event4130275.0%100.0%75.0%1
info.magnolia.ui.api.i18n20204100.0%100.0%100.0%1
info.magnolia.ui.api.location139411031.0%91.0%22.0%1
info.magnolia.ui.api.message220140.0%80.0%20.0%1
info.magnolia.ui.api.overlay8262275.0%50.0%25.0%1
info.magnolia.ui.api.shell4131675.0%86.0%61.0%1
info.magnolia.ui.api.view20233100.0%50.0%50.0%1

Packages

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

info.magnolia.ui.api

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
01100.0%100.0%100.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.ui.api.ModelConstants
NoneNonejava.lang

info.magnolia.ui.api.action

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
11750.0%94.0%44.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses 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.cms.security
info.magnolia.cms.security.operations
info.magnolia.context
info.magnolia.i18nsystem
info.magnolia.jcr.util
info.magnolia.objectfactory
info.magnolia.ui.api.app
info.magnolia.ui.api.availability
java.lang
java.lang.reflect
java.util
javax.jcr
org.apache.commons.lang
org.apache.commons.lang.builder
org.slf4j

info.magnolia.ui.api.action.config

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
020.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.ui.api.action.config.ActionBuilder
info.magnolia.ui.api.action.config.ActionConfig
Noneinfo.magnolia.ui.api.action
java.lang

info.magnolia.ui.api.app

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
31370.0%81.0%51.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses 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.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.SubAppDescriptorKeyGenerator
info.magnolia.ui.api.action
info.magnolia.ui.api.app.launcherlayout
info.magnolia.ui.api.app.registry
com.vaadin.data
info.magnolia.cms.security.operations
info.magnolia.event
info.magnolia.i18nsystem
info.magnolia.objectfactory
info.magnolia.ui.api.context
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 CouplingsEfferent CouplingsAbstractnessInstabilityDistance
01333.0%100.0%33.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses 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
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
Noneinfo.magnolia.cms.security.operations
info.magnolia.context
info.magnolia.event
info.magnolia.i18nsystem
info.magnolia.registry
info.magnolia.ui.api.app
info.magnolia.ui.api.app.registry
java.lang
java.lang.reflect
java.util
java.util.concurrent.atomic
org.apache.commons.lang
org.slf4j

info.magnolia.ui.api.app.registry

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
11517.0%94.0%10.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses 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.AppDescriptorRegistry$1
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.ConfiguredAppDescriptorManager$1
info.magnolia.ui.api.app.registry.ConfiguredAppDescriptorProvider
info.magnolia.ui.api.app.registry.ConfiguredSubAppDescriptor
info.magnolia.ui.api.app.launcherlayout
info.magnolia.cms.security.operations
info.magnolia.cms.util
info.magnolia.event
info.magnolia.jcr.node2bean
info.magnolia.jcr.util
info.magnolia.module
info.magnolia.objectfactory
info.magnolia.registry
info.magnolia.ui.api.app
java.lang
java.util
javax.jcr
org.apache.commons.collections
org.apache.jackrabbit.commons.predicate
org.slf4j

info.magnolia.ui.api.availability

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1838.0%89.0%26.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.ui.api.availability.AbstractAvailabilityRule
info.magnolia.ui.api.availability.AvailabilityDefinition
info.magnolia.ui.api.availability.AvailabilityRule
info.magnolia.ui.api.availability.ConfiguredAvailabilityDefinition
info.magnolia.ui.api.availability.HasVersionsRule
info.magnolia.ui.api.availability.IsDeletedRule
info.magnolia.ui.api.availability.IsNotDeletedRule
info.magnolia.ui.api.availability.IsNotVersionedRule
info.magnolia.ui.api.action
info.magnolia.cms.core.version
info.magnolia.cms.security.operations
info.magnolia.jcr.util
java.lang
java.util
javax.jcr
javax.jcr.version
org.slf4j

info.magnolia.ui.api.context

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
22100.0%50.0%50.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.ui.api.context.UiContext
Noneinfo.magnolia.ui.api.app
info.magnolia.ui.api.shell
info.magnolia.ui.api.overlay
java.lang

info.magnolia.ui.api.event

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0275.0%100.0%75.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses 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
Noneinfo.magnolia.event
java.lang

info.magnolia.ui.api.i18n

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
04100.0%100.0%100.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.ui.api.i18n.I18NAuthoringSupport
info.magnolia.ui.api.i18n.I18NAwareHandler
NoneNonecom.vaadin.ui
java.lang
java.util
javax.jcr

info.magnolia.ui.api.location

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
11031.0%91.0%22.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses 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.lang
org.slf4j

info.magnolia.ui.api.message

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
140.0%80.0%20.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.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 CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2275.0%50.0%25.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses 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 CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1675.0%86.0%61.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses 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 CouplingsEfferent CouplingsAbstractnessInstabilityDistance
33100.0%50.0%50.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.ui.api.view.View
info.magnolia.ui.api.view.Viewport
Noneinfo.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.

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.