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.cms.gui.control232124159.0%79.0%12.0%1
info.magnolia.cms.gui.controlx4132375.0%60.000004%35.0%1
info.magnolia.cms.gui.controlx.impl550390.0%75.0%25.0%1
info.magnolia.cms.gui.controlx.list128431233.0%80.0%13.0%1
info.magnolia.cms.gui.controlx.search1713402024.0%100.0%24.0%1
info.magnolia.cms.gui.controlx.version110060.0%100.0%0.0%1
info.magnolia.cms.gui.dialog2623322312.0%92.0%4.0%1
info.magnolia.cms.gui.fckeditor110040.0%100.0%0.0%1
info.magnolia.cms.gui.i18n32111133.0%92.0%25.0%1
info.magnolia.cms.gui.inline5500130.0%100.0%0.0%1
info.magnolia.cms.gui.misc440240.0%67.0%33.0%1
info.magnolia.cms.gui.query7432443.0%67.0%10.0%1

Packages

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

info.magnolia.cms.gui.control

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
4159.0%79.0%12.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.cms.gui.control.Control
info.magnolia.cms.gui.control.TreeColumnHtmlRenderer
info.magnolia.cms.gui.control.Bar
info.magnolia.cms.gui.control.Button
info.magnolia.cms.gui.control.ButtonSet
info.magnolia.cms.gui.control.ContextMenu
info.magnolia.cms.gui.control.ContextMenuItem
info.magnolia.cms.gui.control.ControlImpl
info.magnolia.cms.gui.control.Edit
info.magnolia.cms.gui.control.File
info.magnolia.cms.gui.control.FreemarkerControl
info.magnolia.cms.gui.control.FunctionBar
info.magnolia.cms.gui.control.FunctionBarItem
info.magnolia.cms.gui.control.Hidden
info.magnolia.cms.gui.control.NodeTypeFilteringTreeColumnHtmlRenderer
info.magnolia.cms.gui.control.Password
info.magnolia.cms.gui.control.Radio
info.magnolia.cms.gui.control.Select
info.magnolia.cms.gui.control.SelectOption
info.magnolia.cms.gui.control.Tree
info.magnolia.cms.gui.control.Tree$1
info.magnolia.cms.gui.control.TreeColumn
info.magnolia.cms.gui.control.TreeColumnHtmlRendererImpl
info.magnolia.cms.gui.controlx.list
info.magnolia.cms.gui.dialog
info.magnolia.cms.gui.i18n
info.magnolia.cms.gui.inline
freemarker.template
info.magnolia.cms.core
info.magnolia.cms.i18n
info.magnolia.cms.security
info.magnolia.cms.util
info.magnolia.context
info.magnolia.freemarker
java.io
java.lang
java.util
javax.jcr
javax.servlet.http
org.apache.commons.codec.binary
org.apache.commons.lang
org.slf4j

info.magnolia.cms.gui.controlx

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2375.0%60.000004%35.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.cms.gui.controlx.Control
info.magnolia.cms.gui.controlx.RenderKit
info.magnolia.cms.gui.controlx.Renderer
info.magnolia.cms.gui.controlx.RenderKitFactory
info.magnolia.cms.gui.controlx.impl
info.magnolia.cms.gui.controlx.list
info.magnolia.cms.gui.controlx.impl
java.lang
java.util

info.magnolia.cms.gui.controlx.impl

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
390.0%75.0%25.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.cms.gui.controlx.impl.AbstractControl
info.magnolia.cms.gui.controlx.impl.RenderKitImpl
info.magnolia.cms.gui.controlx.impl.RenderKitImpl$1
info.magnolia.cms.gui.controlx.impl.TemplatedRenderer
info.magnolia.cms.gui.controlx.impl.TestRenderKit
info.magnolia.cms.gui.controlx
info.magnolia.cms.gui.controlx.list
info.magnolia.cms.gui.controlx.search
info.magnolia.cms.gui.controlx
info.magnolia.cms.gui.controlx.list
info.magnolia.cms.i18n
info.magnolia.freemarker
java.lang
java.util
org.apache.commons.collections
org.apache.commons.collections.map
org.apache.commons.lang

info.magnolia.cms.gui.controlx.list

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
31233.0%80.0%13.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.cms.gui.controlx.list.AbstractListModel
info.magnolia.cms.gui.controlx.list.ListModel
info.magnolia.cms.gui.controlx.list.ListModelIterator
info.magnolia.cms.gui.controlx.list.ValueProvider
info.magnolia.cms.gui.controlx.list.AbstractListModel$ListComparator
info.magnolia.cms.gui.controlx.list.DefaultValueProvider
info.magnolia.cms.gui.controlx.list.IconListColumnRenderer
info.magnolia.cms.gui.controlx.list.ListColumn
info.magnolia.cms.gui.controlx.list.ListColumnRenderer
info.magnolia.cms.gui.controlx.list.ListControl
info.magnolia.cms.gui.controlx.list.ListControlRenderer
info.magnolia.cms.gui.controlx.list.ListModelIteratorImpl
info.magnolia.cms.gui.controlx.impl
info.magnolia.cms.gui.controlx.search
info.magnolia.cms.gui.controlx.version
info.magnolia.cms.core
info.magnolia.cms.gui.control
info.magnolia.cms.gui.controlx
info.magnolia.cms.gui.controlx.impl
info.magnolia.cms.util
info.magnolia.context
java.lang
java.util
javax.jcr
org.apache.commons.beanutils
org.apache.commons.lang
org.slf4j

info.magnolia.cms.gui.controlx.search

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
02024.0%100.0%24.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.cms.gui.controlx.search.AbstractSearchableListModel
info.magnolia.cms.gui.controlx.search.DialogBasedSearchControlDefinition
info.magnolia.cms.gui.controlx.search.SearchConfig
info.magnolia.cms.gui.controlx.search.SearchableListModel
info.magnolia.cms.gui.controlx.search.DateSearchControl
info.magnolia.cms.gui.controlx.search.DialogBasedSearchConfig
info.magnolia.cms.gui.controlx.search.MultipleSearchListModel
info.magnolia.cms.gui.controlx.search.MultipleSearchListModel$1
info.magnolia.cms.gui.controlx.search.MultipleSearchListModel$MultipleListIterator
info.magnolia.cms.gui.controlx.search.QueryBuilder
info.magnolia.cms.gui.controlx.search.RepositorySearchListModel
info.magnolia.cms.gui.controlx.search.SearchConfigImpl
info.magnolia.cms.gui.controlx.search.SearchControl
info.magnolia.cms.gui.controlx.search.SearchControlDefinition
info.magnolia.cms.gui.controlx.search.SearchOnly
info.magnolia.cms.gui.controlx.search.SelectSearchControlDefinition
info.magnolia.cms.gui.controlx.search.SimpleSearchUtil
Noneinfo.magnolia.cms.core
info.magnolia.cms.core.search
info.magnolia.cms.gui.controlx.impl
info.magnolia.cms.gui.controlx.list
info.magnolia.cms.gui.dialog
info.magnolia.cms.gui.query
info.magnolia.cms.util
info.magnolia.context
info.magnolia.objectfactory
java.io
java.lang
java.text
java.util
javax.jcr
javax.jcr.query
org.apache.commons.collections
org.apache.commons.collections.map
org.apache.commons.lang
org.apache.commons.lang.time
org.slf4j

info.magnolia.cms.gui.controlx.version

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
060.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.cms.gui.controlx.version.VersionListModel
Noneinfo.magnolia.cms.core
info.magnolia.cms.gui.controlx.list
info.magnolia.cms.gui.query
java.util
javax.jcr
javax.jcr.version

info.magnolia.cms.gui.dialog

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
22312.0%92.0%4.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.cms.gui.dialog.DialogControl
info.magnolia.cms.gui.dialog.DialogControlImpl
info.magnolia.cms.gui.dialog.UUIDDialogControl
info.magnolia.cms.gui.dialog.ControlsManager
info.magnolia.cms.gui.dialog.Dialog
info.magnolia.cms.gui.dialog.DialogBox
info.magnolia.cms.gui.dialog.DialogButton
info.magnolia.cms.gui.dialog.DialogButtonSet
info.magnolia.cms.gui.dialog.DialogDate
info.magnolia.cms.gui.dialog.DialogEdit
info.magnolia.cms.gui.dialog.DialogEditCode
info.magnolia.cms.gui.dialog.DialogEditWithButton
info.magnolia.cms.gui.dialog.DialogEditWithCustomButtons
info.magnolia.cms.gui.dialog.DialogFactory
info.magnolia.cms.gui.dialog.DialogFile
info.magnolia.cms.gui.dialog.DialogFreemarker
info.magnolia.cms.gui.dialog.DialogHidden
info.magnolia.cms.gui.dialog.DialogInclude
info.magnolia.cms.gui.dialog.DialogLine
info.magnolia.cms.gui.dialog.DialogLink
info.magnolia.cms.gui.dialog.DialogMultiSelect
info.magnolia.cms.gui.dialog.DialogPassword
info.magnolia.cms.gui.dialog.DialogSelect
info.magnolia.cms.gui.dialog.DialogStatic
info.magnolia.cms.gui.dialog.DialogTab
info.magnolia.cms.gui.dialog.DialogUUIDLink
info.magnolia.cms.gui.controlx.search
info.magnolia.cms.gui.i18n
freemarker.template
info.magnolia.cms.beans.config
info.magnolia.cms.beans.runtime
info.magnolia.cms.core
info.magnolia.cms.gui.control
info.magnolia.cms.gui.misc
info.magnolia.cms.i18n
info.magnolia.cms.security
info.magnolia.cms.util
info.magnolia.freemarker
info.magnolia.objectfactory
java.io
java.lang
java.util
java.util.regex
javax.jcr
javax.servlet
javax.servlet.http
org.apache.commons.codec.binary
org.apache.commons.lang
org.apache.commons.lang.exception
org.apache.commons.lang.time
org.slf4j

info.magnolia.cms.gui.fckeditor

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
040.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.cms.gui.fckeditor.FCKEditorTmpFiles
Noneinfo.magnolia.cms.beans.runtime
info.magnolia.context
java.lang
java.util

info.magnolia.cms.gui.i18n

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
11133.0%92.0%25.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.cms.gui.i18n.I18nAuthoringSupport
info.magnolia.cms.gui.i18n.DefaultI18nAuthoringSupport
info.magnolia.cms.gui.i18n.I18nAuthoringSupport$Factory
info.magnolia.cms.gui.inline
info.magnolia.cms.core
info.magnolia.cms.gui.control
info.magnolia.cms.gui.dialog
info.magnolia.cms.i18n
info.magnolia.cms.util
info.magnolia.context
info.magnolia.link
info.magnolia.objectfactory
java.lang
java.util
org.apache.commons.lang

info.magnolia.cms.gui.inline

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0130.0%100.0%0.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.cms.gui.inline.BarEdit
info.magnolia.cms.gui.inline.BarMain
info.magnolia.cms.gui.inline.BarMain$1
info.magnolia.cms.gui.inline.BarNew
info.magnolia.cms.gui.inline.ButtonEdit
Noneinfo.magnolia.cms.beans.config
info.magnolia.cms.core
info.magnolia.cms.gui.control
info.magnolia.cms.gui.i18n
info.magnolia.cms.gui.misc
info.magnolia.cms.i18n
info.magnolia.context
java.io
java.lang
java.util
javax.servlet.http
javax.servlet.jsp
org.apache.commons.lang

info.magnolia.cms.gui.misc

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
240.0%67.0%33.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Noneinfo.magnolia.cms.gui.misc.CssConstants
info.magnolia.cms.gui.misc.Icon
info.magnolia.cms.gui.misc.Sources
info.magnolia.cms.gui.misc.Spacer
info.magnolia.cms.gui.dialog
info.magnolia.cms.gui.inline
info.magnolia.cms.security
info.magnolia.context
java.lang
java.util

info.magnolia.cms.gui.query

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2443.0%67.0%10.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
info.magnolia.cms.gui.query.AbstractExpressionImpl
info.magnolia.cms.gui.query.SearchQueryExpression
info.magnolia.cms.gui.query.SearchQueryParameter
info.magnolia.cms.gui.query.DateSearchQueryParameter
info.magnolia.cms.gui.query.SearchQuery
info.magnolia.cms.gui.query.SearchQueryOperator
info.magnolia.cms.gui.query.StringSearchQueryParameter
info.magnolia.cms.gui.controlx.search
info.magnolia.cms.gui.controlx.version
java.lang
java.text
java.util
org.slf4j

Cycles

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

PackagePackage Dependencies
info.magnolia.cms.gui.controlxinfo.magnolia.cms.gui.controlx.impl
info.magnolia.cms.gui.controlx
info.magnolia.cms.gui.controlx.implinfo.magnolia.cms.gui.controlx
info.magnolia.cms.gui.controlx.impl
info.magnolia.cms.gui.controlx.listinfo.magnolia.cms.gui.controlx
info.magnolia.cms.gui.controlx.impl
info.magnolia.cms.gui.controlx
info.magnolia.cms.gui.controlx.searchinfo.magnolia.cms.gui.controlx.list
info.magnolia.cms.gui.controlx
info.magnolia.cms.gui.controlx.impl
info.magnolia.cms.gui.controlx
info.magnolia.cms.gui.controlx.versioninfo.magnolia.cms.gui.controlx.list
info.magnolia.cms.gui.controlx
info.magnolia.cms.gui.controlx.impl
info.magnolia.cms.gui.controlx

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.