JDepend Analysis

Designed for use with JDepend and Ant.


Summary

[summary] [packages] [cycles] [explanations]
PackageTotal ClassesAbstract ClassesConcrete ClassesAfferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
com.tonbeller.tbutils.res204161590.20.380.43
com.tonbeller.tbutils.testenv1011100.50.5
com.tonbeller.wcf.bookmarks211230.50.60.1
com.tonbeller.wcf.catedit16610090.3810.38
com.tonbeller.wcf.changeorder1129280.180.80.02
com.tonbeller.wcf.charset404010010
com.tonbeller.wcf.component1712514190.710.580.28
com.tonbeller.wcf.controller2161520170.290.460.25
com.tonbeller.wcf.convert14595130.360.720.08
com.tonbeller.wcf.expr312570.330.580.08
com.tonbeller.wcf.form182165230.110.820.07
com.tonbeller.wcf.format164126120.250.670.08
com.tonbeller.wcf.list30309010
com.tonbeller.wcf.log505015010
com.tonbeller.wcf.pagestack303010010
com.tonbeller.wcf.param296230140.2110.21
com.tonbeller.wcf.popup1569070.410.4
com.tonbeller.wcf.scroller2026700.540.46
com.tonbeller.wcf.selection1587390.530.750.28
com.tonbeller.wcf.sqltable132110140.1510.15
com.tonbeller.wcf.statusline2021900.90.1
com.tonbeller.wcf.tabbed5140130.210.2
com.tonbeller.wcf.table416351230.150.960.1
com.tonbeller.wcf.test808015010
com.tonbeller.wcf.token30331100.790.21
com.tonbeller.wcf.toolbar174130130.2410.24
com.tonbeller.wcf.tree5211413190.210.860.08
com.tonbeller.wcf.ui22517850.230.380.39
com.tonbeller.wcf.utils1821619200.110.510.38
com.tonbeller.wcf.wizard725160.290.860.14
java.beansNo stats available: package referenced, but not analyzed.
java.ioNo stats available: package referenced, but not analyzed.
java.langNo stats available: package referenced, but not analyzed.
java.lang.reflectNo stats available: package referenced, but not analyzed.
java.netNo stats available: package referenced, but not analyzed.
java.sqlNo stats available: package referenced, but not analyzed.
java.textNo stats available: package referenced, but not analyzed.
java.utilNo stats available: package referenced, but not analyzed.
java.util.regexNo stats available: package referenced, but not analyzed.
javax.faces.applicationNo stats available: package referenced, but not analyzed.
javax.faces.componentNo stats available: package referenced, but not analyzed.
javax.faces.contextNo stats available: package referenced, but not analyzed.
javax.faces.elNo stats available: package referenced, but not analyzed.
javax.faces.validatorNo stats available: package referenced, but not analyzed.
javax.namingNo stats available: package referenced, but not analyzed.
javax.servletNo stats available: package referenced, but not analyzed.
javax.servlet.httpNo stats available: package referenced, but not analyzed.
javax.servlet.jspNo stats available: package referenced, but not analyzed.
javax.servlet.jsp.jstl.coreNo stats available: package referenced, but not analyzed.
javax.servlet.jsp.jstl.fmtNo stats available: package referenced, but not analyzed.
javax.servlet.jsp.jstl.sqlNo stats available: package referenced, but not analyzed.
javax.servlet.jsp.tagextNo stats available: package referenced, but not analyzed.
javax.xml.parsersNo stats available: package referenced, but not analyzed.
javax.xml.transformNo stats available: package referenced, but not analyzed.
javax.xml.transform.domNo stats available: package referenced, but not analyzed.
javax.xml.transform.streamNo stats available: package referenced, but not analyzed.
org.apache.commons.beanutilsNo stats available: package referenced, but not analyzed.
org.apache.commons.digesterNo stats available: package referenced, but not analyzed.
org.apache.commons.digester.xmlrulesNo stats available: package referenced, but not analyzed.
org.apache.commons.fileuploadNo stats available: package referenced, but not analyzed.
org.apache.log4jNo stats available: package referenced, but not analyzed.
org.apache.regexpNo stats available: package referenced, but not analyzed.
org.jaxenNo stats available: package referenced, but not analyzed.
org.jaxen.domNo stats available: package referenced, but not analyzed.
org.w3c.domNo stats available: package referenced, but not analyzed.
org.xml.saxNo stats available: package referenced, but not analyzed.

Packages

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

com.tonbeller.tbutils.res

Afferent Couplings: 15Efferent Couplings: 9Abstractness: 0.2Instability: 0.38Distance: 0.43
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.tbutils.res.Dumper
com.tonbeller.tbutils.res.InitialProvider
com.tonbeller.tbutils.res.PersistentResourceProvider
com.tonbeller.tbutils.res.ResourceProvider
com.tonbeller.tbutils.res.BundleResourceProvider
com.tonbeller.tbutils.res.CompositeResourceProvider
com.tonbeller.tbutils.res.FilePersistentResourceProvider
com.tonbeller.tbutils.res.JNDIInitialProvider
com.tonbeller.tbutils.res.JNDIResourceProvider
com.tonbeller.tbutils.res.NullResourceProvider
com.tonbeller.tbutils.res.PropertyResourceProvider
com.tonbeller.tbutils.res.ReplacingResourceProvider
com.tonbeller.tbutils.res.ReplacingResourceProvider$RecursionOverflowException
com.tonbeller.tbutils.res.Resources
com.tonbeller.tbutils.res.ResourcesFactory
com.tonbeller.tbutils.res.ResourcesFactoryContextListener
com.tonbeller.tbutils.res.ServletContextResourceProvider
com.tonbeller.tbutils.res.SimpleInitialProvider
com.tonbeller.tbutils.res.StringDumper
com.tonbeller.tbutils.res.SystemResourceProvider
com.tonbeller.wcf.changeorder
com.tonbeller.wcf.charset
com.tonbeller.wcf.controller
com.tonbeller.wcf.form
com.tonbeller.wcf.format
com.tonbeller.wcf.log
com.tonbeller.wcf.pagestack
com.tonbeller.wcf.param
com.tonbeller.wcf.sqltable
com.tonbeller.wcf.statusline
com.tonbeller.wcf.table
com.tonbeller.wcf.token
com.tonbeller.wcf.toolbar
com.tonbeller.wcf.tree
com.tonbeller.wcf.utils
java.io
java.lang
java.text
java.util
java.util.regex
javax.naming
javax.servlet
javax.servlet.jsp.jstl.core
org.apache.log4j

com.tonbeller.tbutils.testenv

Afferent Couplings: 1Efferent Couplings: 1Abstractness: 0Instability: 0.5Distance: 0.5
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None com.tonbeller.tbutils.testenv.Environment
com.tonbeller.wcf.controller
java.lang

com.tonbeller.wcf.bookmarks

Afferent Couplings: 2Efferent Couplings: 3Abstractness: 0.5Instability: 0.6Distance: 0.1
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.bookmarks.Bookmarkable
com.tonbeller.wcf.bookmarks.BookmarkManager
com.tonbeller.wcf.component
com.tonbeller.wcf.toolbar
java.lang
java.util
javax.servlet.http

com.tonbeller.wcf.catedit

Afferent Couplings: 0Efferent Couplings: 9Abstractness: 0.38Instability: 1Distance: 0.38
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.catedit.Category
com.tonbeller.wcf.catedit.CategoryElementRenderer
com.tonbeller.wcf.catedit.CategoryModel
com.tonbeller.wcf.catedit.CategoryModelChangeListener
com.tonbeller.wcf.catedit.Item
com.tonbeller.wcf.catedit.ItemElementRenderer
com.tonbeller.wcf.catedit.CategoryEditor
com.tonbeller.wcf.catedit.CategoryEditor$ChangeCategoryButtonHandler
com.tonbeller.wcf.catedit.CategoryEditorTag
com.tonbeller.wcf.catedit.CategoryModelChangeEvent
com.tonbeller.wcf.catedit.CategoryModelSupport
com.tonbeller.wcf.catedit.CategorySupport
com.tonbeller.wcf.catedit.DefaultCategoryElementRenderer
com.tonbeller.wcf.catedit.DefaultItemElementRenderer
com.tonbeller.wcf.catedit.TestCategoryModel
com.tonbeller.wcf.catedit.TestCategoryModel$1
Nonecom.tonbeller.wcf.changeorder
com.tonbeller.wcf.component
com.tonbeller.wcf.controller
com.tonbeller.wcf.scroller
com.tonbeller.wcf.utils
java.lang
java.util
javax.servlet.jsp
org.w3c.dom

com.tonbeller.wcf.changeorder

Afferent Couplings: 2Efferent Couplings: 8Abstractness: 0.18Instability: 0.8Distance: 0.02
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.changeorder.ChangeOrderMgr$ButtonRenderer
com.tonbeller.wcf.changeorder.ChangeOrderModel
com.tonbeller.wcf.changeorder.ChangeOrderMgr
com.tonbeller.wcf.changeorder.ChangeOrderMgr$ChangeOrderButtonHandler
com.tonbeller.wcf.changeorder.ChangeOrderMgr$CutButtonHandler
com.tonbeller.wcf.changeorder.ChangeOrderMgr$CutButtonRenderer
com.tonbeller.wcf.changeorder.ChangeOrderMgr$ForwardBackwardButtonRenderer
com.tonbeller.wcf.changeorder.ChangeOrderMgr$PasteButtonRenderer
com.tonbeller.wcf.changeorder.ChangeOrderMgr$UnCutButtonHandler
com.tonbeller.wcf.changeorder.ChangeOrderUtils
com.tonbeller.wcf.changeorder.DefaultChangeOrderModel
com.tonbeller.wcf.catedit
com.tonbeller.wcf.tree
com.tonbeller.tbutils.res
com.tonbeller.wcf.component
com.tonbeller.wcf.controller
com.tonbeller.wcf.scroller
com.tonbeller.wcf.utils
java.lang
java.util
org.w3c.dom

com.tonbeller.wcf.charset

Afferent Couplings: 0Efferent Couplings: 10Abstractness: 0Instability: 1Distance: 0
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None com.tonbeller.wcf.charset.CharsetFilter
com.tonbeller.wcf.charset.CharsetResponse
com.tonbeller.wcf.charset.CharsetTag
com.tonbeller.wcf.charset.ContentTypeTag
Nonecom.tonbeller.tbutils.res
java.io
java.lang
java.net
java.util
javax.servlet
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.tagext
org.apache.log4j

com.tonbeller.wcf.component

Afferent Couplings: 14Efferent Couplings: 19Abstractness: 0.71Instability: 0.58Distance: 0.28
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.component.Component
com.tonbeller.wcf.component.ComponentSupport
com.tonbeller.wcf.component.ComponentTag
com.tonbeller.wcf.component.Form
com.tonbeller.wcf.component.FormListener
com.tonbeller.wcf.component.LifeCycle
com.tonbeller.wcf.component.NestableComponent
com.tonbeller.wcf.component.NestableComponentSupport
com.tonbeller.wcf.component.RenderListener
com.tonbeller.wcf.component.Renderable
com.tonbeller.wcf.component.RoleExprHolder
com.tonbeller.wcf.component.Visible
com.tonbeller.wcf.component.FormSupport
com.tonbeller.wcf.component.RendererParameterTag
com.tonbeller.wcf.component.RendererParameters
com.tonbeller.wcf.component.RendererTag
com.tonbeller.wcf.component.RoleExprTag
com.tonbeller.wcf.catedit
com.tonbeller.wcf.changeorder
com.tonbeller.wcf.form
com.tonbeller.wcf.list
com.tonbeller.wcf.log
com.tonbeller.wcf.param
com.tonbeller.wcf.popup
com.tonbeller.wcf.selection
com.tonbeller.wcf.sqltable
com.tonbeller.wcf.tabbed
com.tonbeller.wcf.table
com.tonbeller.wcf.toolbar
com.tonbeller.wcf.tree
com.tonbeller.wcf.wizard
com.tonbeller.wcf.bookmarks
com.tonbeller.wcf.controller
com.tonbeller.wcf.expr
com.tonbeller.wcf.token
com.tonbeller.wcf.utils
java.io
java.lang
java.net
java.util
javax.servlet
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.jstl.core
javax.servlet.jsp.tagext
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.stream
org.apache.log4j
org.w3c.dom

com.tonbeller.wcf.controller

Afferent Couplings: 20Efferent Couplings: 17Abstractness: 0.29Instability: 0.46Distance: 0.25
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.controller.Controller
com.tonbeller.wcf.controller.Dispatcher
com.tonbeller.wcf.controller.RequestContext
com.tonbeller.wcf.controller.RequestContextFactory
com.tonbeller.wcf.controller.RequestListener
com.tonbeller.wcf.controller.RequestSynchronizer$Handler
com.tonbeller.wcf.controller.Controller$1
com.tonbeller.wcf.controller.DispatcherSupport
com.tonbeller.wcf.controller.EmptyThreadLocalStackException
com.tonbeller.wcf.controller.FacesServlet
com.tonbeller.wcf.controller.MultiPartEnabledRequest
com.tonbeller.wcf.controller.RequestContextFactoryFinder
com.tonbeller.wcf.controller.RequestContextFactoryImpl
com.tonbeller.wcf.controller.RequestContextImpl
com.tonbeller.wcf.controller.RequestFilter
com.tonbeller.wcf.controller.RequestFilter$MyHandler
com.tonbeller.wcf.controller.RequestSynchronizer
com.tonbeller.wcf.controller.TestContext
com.tonbeller.wcf.controller.TestContext$TestSession
com.tonbeller.wcf.controller.ThreadLocalStack
com.tonbeller.wcf.controller.WcfController
com.tonbeller.wcf.catedit
com.tonbeller.wcf.changeorder
com.tonbeller.wcf.component
com.tonbeller.wcf.form
com.tonbeller.wcf.list
com.tonbeller.wcf.log
com.tonbeller.wcf.pagestack
com.tonbeller.wcf.param
com.tonbeller.wcf.popup
com.tonbeller.wcf.scroller
com.tonbeller.wcf.selection
com.tonbeller.wcf.sqltable
com.tonbeller.wcf.statusline
com.tonbeller.wcf.tabbed
com.tonbeller.wcf.table
com.tonbeller.wcf.test
com.tonbeller.wcf.token
com.tonbeller.wcf.toolbar
com.tonbeller.wcf.tree
com.tonbeller.wcf.wizard
com.tonbeller.tbutils.res
com.tonbeller.tbutils.testenv
com.tonbeller.wcf.convert
com.tonbeller.wcf.expr
com.tonbeller.wcf.format
com.tonbeller.wcf.utils
java.io
java.lang
java.util
javax.faces.application
javax.faces.context
javax.faces.el
javax.servlet
javax.servlet.http
javax.servlet.jsp.jstl.core
org.apache.commons.fileupload
org.apache.log4j

com.tonbeller.wcf.convert

Afferent Couplings: 5Efferent Couplings: 13Abstractness: 0.36Instability: 0.72Distance: 0.08
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.convert.BooleanConverter
com.tonbeller.wcf.convert.Converter
com.tonbeller.wcf.convert.NodeConverter
com.tonbeller.wcf.convert.NodeConverterBase
com.tonbeller.wcf.convert.SelectConverterBase
com.tonbeller.wcf.convert.CheckBoxConverter
com.tonbeller.wcf.convert.ConvertException
com.tonbeller.wcf.convert.ConverterFactory
com.tonbeller.wcf.convert.ConverterImpl
com.tonbeller.wcf.convert.EditCtrlConverter
com.tonbeller.wcf.convert.FileUploadConverter
com.tonbeller.wcf.convert.RadioButtonConverter
com.tonbeller.wcf.convert.SelectMultipleConverter
com.tonbeller.wcf.convert.SelectSingleConverter
com.tonbeller.wcf.controller
com.tonbeller.wcf.form
com.tonbeller.wcf.list
com.tonbeller.wcf.selection
com.tonbeller.wcf.tree
com.tonbeller.wcf.format
com.tonbeller.wcf.ui
com.tonbeller.wcf.utils
java.io
java.lang
java.lang.reflect
java.net
java.util
org.apache.commons.beanutils
org.apache.commons.fileupload
org.apache.log4j
org.w3c.dom
org.xml.sax

com.tonbeller.wcf.expr

Afferent Couplings: 5Efferent Couplings: 7Abstractness: 0.33Instability: 0.58Distance: 0.08
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.expr.ExprContext
com.tonbeller.wcf.expr.ExprUtils
com.tonbeller.wcf.expr.ExprUtils$1
com.tonbeller.wcf.component
com.tonbeller.wcf.controller
com.tonbeller.wcf.pagestack
com.tonbeller.wcf.param
com.tonbeller.wcf.sqltable
com.tonbeller.wcf.utils
java.beans
java.lang
java.lang.reflect
javax.servlet.jsp
org.apache.commons.beanutils
org.apache.log4j

com.tonbeller.wcf.form

Afferent Couplings: 5Efferent Couplings: 23Abstractness: 0.11Instability: 0.82Distance: 0.07
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.form.FormBean
com.tonbeller.wcf.form.NodeHandler
com.tonbeller.wcf.form.ActionReferenceException
com.tonbeller.wcf.form.ButtonHandler
com.tonbeller.wcf.form.CalendarControlTag
com.tonbeller.wcf.form.ConfirmComponent
com.tonbeller.wcf.form.ConfirmComponent$1
com.tonbeller.wcf.form.ConfirmComponent$2
com.tonbeller.wcf.form.ConfirmComponentTag
com.tonbeller.wcf.form.ConnectFormTag
com.tonbeller.wcf.form.FormComponent
com.tonbeller.wcf.form.FormComponent$ActionReferenceListener
com.tonbeller.wcf.form.FormComponentTag
com.tonbeller.wcf.form.FormDocument
com.tonbeller.wcf.form.NodeHandlerSupport
com.tonbeller.wcf.form.TestBean
com.tonbeller.wcf.form.TestItems
com.tonbeller.wcf.form.XmlComponent
com.tonbeller.wcf.log
com.tonbeller.wcf.tabbed
com.tonbeller.wcf.table
com.tonbeller.wcf.test
com.tonbeller.wcf.tree
com.tonbeller.tbutils.res
com.tonbeller.wcf.component
com.tonbeller.wcf.controller
com.tonbeller.wcf.convert
com.tonbeller.wcf.format
com.tonbeller.wcf.scroller
com.tonbeller.wcf.ui
com.tonbeller.wcf.utils
com.tonbeller.wcf.wizard
java.io
java.lang
java.lang.reflect
java.net
java.util
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.tagext
org.apache.commons.beanutils
org.apache.commons.fileupload
org.apache.log4j
org.jaxen
org.jaxen.dom
org.w3c.dom

com.tonbeller.wcf.format

Afferent Couplings: 6Efferent Couplings: 12Abstractness: 0.25Instability: 0.67Distance: 0.08
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.format.BasicTypes
com.tonbeller.wcf.format.FormatHandler
com.tonbeller.wcf.format.FormatHandlerSupport
com.tonbeller.wcf.format.NumberHandler
com.tonbeller.wcf.format.BooleanHandler
com.tonbeller.wcf.format.DateHandler
com.tonbeller.wcf.format.DoubleHandler
com.tonbeller.wcf.format.DoubleNaNHandler
com.tonbeller.wcf.format.FormatException
com.tonbeller.wcf.format.Formatter
com.tonbeller.wcf.format.FormatterFactory
com.tonbeller.wcf.format.IntegerHandler
com.tonbeller.wcf.format.Pattern
com.tonbeller.wcf.format.RegexHandler
com.tonbeller.wcf.format.RequiredStringHandler
com.tonbeller.wcf.format.StringHandler
com.tonbeller.wcf.controller
com.tonbeller.wcf.convert
com.tonbeller.wcf.form
com.tonbeller.wcf.log
com.tonbeller.wcf.table
com.tonbeller.wcf.ui
com.tonbeller.tbutils.res
com.tonbeller.wcf.utils
java.io
java.lang
java.net
java.text
java.util
org.apache.commons.digester
org.apache.commons.digester.xmlrules
org.apache.log4j
org.apache.regexp
org.xml.sax

com.tonbeller.wcf.list

Afferent Couplings: 0Efferent Couplings: 9Abstractness: 0Instability: 1Distance: 0
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None com.tonbeller.wcf.list.MappedListBox
com.tonbeller.wcf.list.MappedListBox$1
com.tonbeller.wcf.list.MappedListBox$Item
Nonecom.tonbeller.wcf.component
com.tonbeller.wcf.controller
com.tonbeller.wcf.convert
com.tonbeller.wcf.ui
com.tonbeller.wcf.utils
java.lang
java.util
org.apache.log4j
org.w3c.dom

com.tonbeller.wcf.log

Afferent Couplings: 0Efferent Couplings: 15Abstractness: 0Instability: 1Distance: 0
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None com.tonbeller.wcf.log.LogForm
com.tonbeller.wcf.log.LogHandler
com.tonbeller.wcf.log.LogHandler$1
com.tonbeller.wcf.log.LogItems
com.tonbeller.wcf.log.LogTag
Nonecom.tonbeller.tbutils.res
com.tonbeller.wcf.component
com.tonbeller.wcf.controller
com.tonbeller.wcf.form
com.tonbeller.wcf.format
com.tonbeller.wcf.ui
com.tonbeller.wcf.utils
java.io
java.lang
java.net
java.util
javax.servlet.http
javax.servlet.jsp
org.apache.log4j
org.w3c.dom

com.tonbeller.wcf.pagestack

Afferent Couplings: 0Efferent Couplings: 10Abstractness: 0Instability: 1Distance: 0
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None com.tonbeller.wcf.pagestack.Page
com.tonbeller.wcf.pagestack.PageStack
com.tonbeller.wcf.pagestack.PageStackTag
Nonecom.tonbeller.tbutils.res
com.tonbeller.wcf.controller
com.tonbeller.wcf.expr
com.tonbeller.wcf.token
java.lang
java.util
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.jstl.core
javax.servlet.jsp.jstl.fmt

com.tonbeller.wcf.param

Afferent Couplings: 0Efferent Couplings: 14Abstractness: 0.21Instability: 1Distance: 0.21
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.param.ParamLinkNestedTag
com.tonbeller.wcf.param.ParamLinkTag$Action
com.tonbeller.wcf.param.SqlColumnConstraint
com.tonbeller.wcf.param.SqlExpr
com.tonbeller.wcf.param.SqlExprVisitor
com.tonbeller.wcf.param.SqlExprWithOperands
com.tonbeller.wcf.param.MissingParameterException
com.tonbeller.wcf.param.ParamLinkActionTag
com.tonbeller.wcf.param.ParamLinkGroupTag
com.tonbeller.wcf.param.ParamLinkParamTag
com.tonbeller.wcf.param.ParamLinkTag
com.tonbeller.wcf.param.ParamLinkTag$ClickHandler
com.tonbeller.wcf.param.ParamLinkTag$InvokeMethodAction
com.tonbeller.wcf.param.ParamSqlMappingTag
com.tonbeller.wcf.param.ParamSqlTag
com.tonbeller.wcf.param.PushParamTag
com.tonbeller.wcf.param.SessionParam
com.tonbeller.wcf.param.SessionParamPool
com.tonbeller.wcf.param.SessionParamPoolTag
com.tonbeller.wcf.param.SetParamTag
com.tonbeller.wcf.param.SetParamTagBase
com.tonbeller.wcf.param.SqlAndExpr
com.tonbeller.wcf.param.SqlBetweenExpr
com.tonbeller.wcf.param.SqlDummyExpr
com.tonbeller.wcf.param.SqlEqualExpr
com.tonbeller.wcf.param.SqlGenerator
com.tonbeller.wcf.param.SqlInExpr
com.tonbeller.wcf.param.SqlOrExpr
com.tonbeller.wcf.param.SqlValueMap
Nonecom.tonbeller.tbutils.res
com.tonbeller.wcf.component
com.tonbeller.wcf.controller
com.tonbeller.wcf.expr
com.tonbeller.wcf.token
com.tonbeller.wcf.utils
java.io
java.lang
java.lang.reflect
java.util
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.tagext
org.apache.log4j

com.tonbeller.wcf.popup

Afferent Couplings: 0Efferent Couplings: 7Abstractness: 0.4Instability: 1Distance: 0.4
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.popup.GroupItem
com.tonbeller.wcf.popup.Item
com.tonbeller.wcf.popup.ItemSupport
com.tonbeller.wcf.popup.MenuItem
com.tonbeller.wcf.popup.PopUp$Switch
com.tonbeller.wcf.popup.WcfMenuItem
com.tonbeller.wcf.popup.GroupItemSupport
com.tonbeller.wcf.popup.MenuItemSupport
com.tonbeller.wcf.popup.PopUp
com.tonbeller.wcf.popup.PopUp$1
com.tonbeller.wcf.popup.PopUp$EmptySwitch
com.tonbeller.wcf.popup.PopUp$Renderer
com.tonbeller.wcf.popup.TestBean
com.tonbeller.wcf.popup.TestBean$1
com.tonbeller.wcf.popup.TestBean$2
Nonecom.tonbeller.wcf.component
com.tonbeller.wcf.controller
com.tonbeller.wcf.utils
java.lang
java.util
javax.servlet.http
org.w3c.dom

com.tonbeller.wcf.scroller

Afferent Couplings: 6Efferent Couplings: 7Abstractness: 0Instability: 0.54Distance: 0.46
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None com.tonbeller.wcf.scroller.Scroller
com.tonbeller.wcf.scroller.ScrollerTag
com.tonbeller.wcf.catedit
com.tonbeller.wcf.changeorder
com.tonbeller.wcf.form
com.tonbeller.wcf.sqltable
com.tonbeller.wcf.table
com.tonbeller.wcf.tree
com.tonbeller.wcf.controller
java.io
java.lang
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.tagext
org.apache.log4j

com.tonbeller.wcf.selection

Afferent Couplings: 3Efferent Couplings: 9Abstractness: 0.53Instability: 0.75Distance: 0.28
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.selection.AbstractSelectionModel
com.tonbeller.wcf.selection.SelectableFilter
com.tonbeller.wcf.selection.SelectionChangeListener
com.tonbeller.wcf.selection.SelectionModel
com.tonbeller.wcf.selection.SelectionModelDecorator
com.tonbeller.wcf.selection.SingleSelectionModel
com.tonbeller.wcf.selection.TitleProvider
com.tonbeller.wcf.selection.Unselectable
com.tonbeller.wcf.selection.DefaultSelectionModel
com.tonbeller.wcf.selection.SelectionChangeEvent
com.tonbeller.wcf.selection.SelectionChangeSupport
com.tonbeller.wcf.selection.SelectionMgr
com.tonbeller.wcf.selection.SelectionMgr$MultipleSelectHandler
com.tonbeller.wcf.selection.SelectionMgr$SelectionHandler
com.tonbeller.wcf.selection.SelectionMgr$SingleSelectHandler
com.tonbeller.wcf.table
com.tonbeller.wcf.test
com.tonbeller.wcf.tree
com.tonbeller.wcf.component
com.tonbeller.wcf.controller
com.tonbeller.wcf.convert
com.tonbeller.wcf.ui
com.tonbeller.wcf.utils
java.lang
java.util
org.apache.log4j
org.w3c.dom

com.tonbeller.wcf.sqltable

Afferent Couplings: 0Efferent Couplings: 14Abstractness: 0.15Instability: 1Distance: 0.15
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.sqltable.SqlTableNestedTag
com.tonbeller.wcf.sqltable.SqlTablePageNavigationsTag$PageButton
com.tonbeller.wcf.sqltable.EvenOddTag
com.tonbeller.wcf.sqltable.SqlTable
com.tonbeller.wcf.sqltable.SqlTableOrderByTag
com.tonbeller.wcf.sqltable.SqlTablePageNavigationsTag
com.tonbeller.wcf.sqltable.SqlTablePageNavigationsTag$GotoButton
com.tonbeller.wcf.sqltable.SqlTablePageNavigationsTag$NextButton
com.tonbeller.wcf.sqltable.SqlTablePageNavigationsTag$PageSizeButton
com.tonbeller.wcf.sqltable.SqlTablePageNavigationsTag$PrevButton
com.tonbeller.wcf.sqltable.SqlTableSortButtonTag
com.tonbeller.wcf.sqltable.SqlTableSortButtonTag$SortButtonHandler
com.tonbeller.wcf.sqltable.SqlTableTag
Nonecom.tonbeller.tbutils.res
com.tonbeller.wcf.component
com.tonbeller.wcf.controller
com.tonbeller.wcf.expr
com.tonbeller.wcf.scroller
java.io
java.lang
java.util
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.jstl.core
javax.servlet.jsp.jstl.sql
javax.servlet.jsp.tagext
org.apache.log4j

com.tonbeller.wcf.statusline

Afferent Couplings: 1Efferent Couplings: 9Abstractness: 0Instability: 0.9Distance: 0.1
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None com.tonbeller.wcf.statusline.StatusLine
com.tonbeller.wcf.statusline.StatusLineTag
com.tonbeller.wcf.token
com.tonbeller.tbutils.res
com.tonbeller.wcf.controller
com.tonbeller.wcf.utils
java.io
java.lang
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.tagext
org.apache.log4j

com.tonbeller.wcf.tabbed

Afferent Couplings: 0Efferent Couplings: 13Abstractness: 0.2Instability: 1Distance: 0.2
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.tabbed.PanelChangeListener
com.tonbeller.wcf.tabbed.PanelChangeEvent
com.tonbeller.wcf.tabbed.PanelSupport
com.tonbeller.wcf.tabbed.TabbedHandler
com.tonbeller.wcf.tabbed.TabbedHandler$TabbedPanelListener
Nonecom.tonbeller.wcf.component
com.tonbeller.wcf.controller
com.tonbeller.wcf.form
com.tonbeller.wcf.tree
com.tonbeller.wcf.ui
com.tonbeller.wcf.utils
java.lang
java.util
javax.servlet.http
org.apache.log4j
org.jaxen
org.jaxen.dom
org.w3c.dom

com.tonbeller.wcf.table

Afferent Couplings: 1Efferent Couplings: 23Abstractness: 0.15Instability: 0.96Distance: 0.1
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.table.AbstractTableModel
com.tonbeller.wcf.table.CellRenderer
com.tonbeller.wcf.table.ITableComponent
com.tonbeller.wcf.table.TableModel
com.tonbeller.wcf.table.TableModelChangeListener
com.tonbeller.wcf.table.TableRow
com.tonbeller.wcf.table.DefaultCell
com.tonbeller.wcf.table.DefaultCellRenderer
com.tonbeller.wcf.table.DefaultCellRenderer$Alignment
com.tonbeller.wcf.table.DefaultTableModel
com.tonbeller.wcf.table.DefaultTableRow
com.tonbeller.wcf.table.EditableTableComponent
com.tonbeller.wcf.table.EditableTableComponent$1
com.tonbeller.wcf.table.EmptyTableModel
com.tonbeller.wcf.table.PagedTableModel
com.tonbeller.wcf.table.RowComparator
com.tonbeller.wcf.table.SortedTableModel
com.tonbeller.wcf.table.TableColumn
com.tonbeller.wcf.table.TableColumn$1
com.tonbeller.wcf.table.TableComponent
com.tonbeller.wcf.table.TableComponent$1
com.tonbeller.wcf.table.TableComponent$CloseHandler
com.tonbeller.wcf.table.TableComponent$GotoButtonHandler
com.tonbeller.wcf.table.TableComponent$PageHandler
com.tonbeller.wcf.table.TableComponent$PageSizeButtonHandler
com.tonbeller.wcf.table.TableComponent$SelectButtonHandler
com.tonbeller.wcf.table.TableComponent$SortButtonHandler
com.tonbeller.wcf.table.TableComponentTag
com.tonbeller.wcf.table.TableHandler
com.tonbeller.wcf.table.TableModelChangeEvent
com.tonbeller.wcf.table.TableModelChangeSupport
com.tonbeller.wcf.table.TableModelDecorator
com.tonbeller.wcf.table.TablePropertiesFormComponent
com.tonbeller.wcf.table.TablePropertiesFormComponent$1
com.tonbeller.wcf.table.TablePropertiesFormComponent$TableColumnNodeRenderer
com.tonbeller.wcf.table.TablePropertiesFormComponent$TableColumnSelectionModel
com.tonbeller.wcf.table.TablePropertiesFormComponent$TableColumnTreeModel
com.tonbeller.wcf.table.TablePropertiesFormTag
com.tonbeller.wcf.table.TestBean
com.tonbeller.wcf.table.TestBean$MyTableModel
com.tonbeller.wcf.table.TestModel
com.tonbeller.wcf.test
com.tonbeller.tbutils.res
com.tonbeller.wcf.component
com.tonbeller.wcf.controller
com.tonbeller.wcf.form
com.tonbeller.wcf.format
com.tonbeller.wcf.scroller
com.tonbeller.wcf.selection
com.tonbeller.wcf.tree
com.tonbeller.wcf.ui
com.tonbeller.wcf.utils
java.io
java.lang
java.net
java.sql
java.text
java.util
javax.servlet.http
javax.servlet.jsp
org.apache.commons.beanutils
org.apache.log4j
org.jaxen
org.jaxen.dom
org.w3c.dom

com.tonbeller.wcf.test

Afferent Couplings: 0Efferent Couplings: 15Abstractness: 0Instability: 1Distance: 0
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None com.tonbeller.wcf.test.MessageFactory
com.tonbeller.wcf.test.SnoopServlet
com.tonbeller.wcf.test.TestBean
com.tonbeller.wcf.test.TestBean$MyTableModel
com.tonbeller.wcf.test.TestBean$MyTreeModel
com.tonbeller.wcf.test.UserNumberBean
com.tonbeller.wcf.test.WizardBtnTestBean
com.tonbeller.wcf.test.WizardTestBean
Nonecom.tonbeller.wcf.controller
com.tonbeller.wcf.form
com.tonbeller.wcf.selection
com.tonbeller.wcf.table
com.tonbeller.wcf.tree
java.io
java.lang
java.text
java.util
javax.faces.application
javax.faces.component
javax.faces.context
javax.faces.validator
javax.servlet
javax.servlet.http

com.tonbeller.wcf.token

Afferent Couplings: 3Efferent Couplings: 11Abstractness: 0Instability: 0.79Distance: 0.21
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
None com.tonbeller.wcf.token.RequestToken
com.tonbeller.wcf.token.TokenFilter
com.tonbeller.wcf.token.TokenTag
com.tonbeller.wcf.component
com.tonbeller.wcf.pagestack
com.tonbeller.wcf.param
com.tonbeller.tbutils.res
com.tonbeller.wcf.controller
com.tonbeller.wcf.statusline
java.io
java.lang
java.util
javax.servlet
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.tagext
org.apache.log4j

com.tonbeller.wcf.toolbar

Afferent Couplings: 0Efferent Couplings: 13Abstractness: 0.24Instability: 1Distance: 0.24
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.toolbar.ToolBarComponent
com.tonbeller.wcf.toolbar.ToolBarComponentSupport
com.tonbeller.wcf.toolbar.ToolButtonModel
com.tonbeller.wcf.toolbar.ToolButtonTag
com.tonbeller.wcf.toolbar.FormButtonModel
com.tonbeller.wcf.toolbar.FormButtonTag
com.tonbeller.wcf.toolbar.ImgButton
com.tonbeller.wcf.toolbar.ImgButtonTag
com.tonbeller.wcf.toolbar.PushButtonModel
com.tonbeller.wcf.toolbar.PushButtonTag
com.tonbeller.wcf.toolbar.ScriptButtonModel
com.tonbeller.wcf.toolbar.ScriptButtonTag
com.tonbeller.wcf.toolbar.ToolBar
com.tonbeller.wcf.toolbar.ToolBarTag
com.tonbeller.wcf.toolbar.ToolButton
com.tonbeller.wcf.toolbar.ToolSeparator
com.tonbeller.wcf.toolbar.ToolSeparatorTag
Nonecom.tonbeller.tbutils.res
com.tonbeller.wcf.bookmarks
com.tonbeller.wcf.component
com.tonbeller.wcf.controller
com.tonbeller.wcf.utils
java.lang
java.text
java.util
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.tagext
org.apache.log4j
org.w3c.dom

com.tonbeller.wcf.tree

Afferent Couplings: 3Efferent Couplings: 19Abstractness: 0.21Instability: 0.86Distance: 0.08
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.tree.AbstractTreeModel
com.tonbeller.wcf.tree.DecoratedTreeModel
com.tonbeller.wcf.tree.DeleteNodeModel
com.tonbeller.wcf.tree.LabelProvider
com.tonbeller.wcf.tree.MutableTreeModel
com.tonbeller.wcf.tree.NodeFilter
com.tonbeller.wcf.tree.NodeRenderer
com.tonbeller.wcf.tree.RequestListeningNodeRenderer
com.tonbeller.wcf.tree.TreeBounding
com.tonbeller.wcf.tree.TreeModel
com.tonbeller.wcf.tree.TreeModelChangeListener
com.tonbeller.wcf.tree.AndNodeFilter
com.tonbeller.wcf.tree.CachingTreeModelDecorator
com.tonbeller.wcf.tree.CachingTreeModelDecorator$1
com.tonbeller.wcf.tree.DefaultDeleteNodeModel
com.tonbeller.wcf.tree.DefaultLabelProvider
com.tonbeller.wcf.tree.DefaultNodeRenderer
com.tonbeller.wcf.tree.EmptyTreeModel
com.tonbeller.wcf.tree.EnumBoundedTreeModelDecorator
com.tonbeller.wcf.tree.FilteringTreeModelDecorator
com.tonbeller.wcf.tree.GroupingTreeModelDecorator
com.tonbeller.wcf.tree.GroupingTreeModelDecorator$1
com.tonbeller.wcf.tree.GroupingTreeModelDecorator$Group
com.tonbeller.wcf.tree.GroupingTreeModelDecorator$GroupComparator
com.tonbeller.wcf.tree.MutableTreeModelDecorator
com.tonbeller.wcf.tree.MutableTreeModelDecorator$1
com.tonbeller.wcf.tree.NodeFilter$1
com.tonbeller.wcf.tree.NodeFilter$2
com.tonbeller.wcf.tree.NodeIterator
com.tonbeller.wcf.tree.NodeSorter
com.tonbeller.wcf.tree.OptimizingTreeModelDecorator
com.tonbeller.wcf.tree.OptimizingTreeModelDecorator$1
com.tonbeller.wcf.tree.SimpleOptimizingTreeModelDecorator
com.tonbeller.wcf.tree.SimpleOptimizingTreeModelDecorator$1
com.tonbeller.wcf.tree.TestBean
com.tonbeller.wcf.tree.TestBean$MyTreeModel
com.tonbeller.wcf.tree.TestTreeModel
com.tonbeller.wcf.tree.TestTreeModel$1
com.tonbeller.wcf.tree.TestTreeModel$Node
com.tonbeller.wcf.tree.TreeComponent
com.tonbeller.wcf.tree.TreeComponent$1
com.tonbeller.wcf.tree.TreeComponent$2
com.tonbeller.wcf.tree.TreeComponent$3
com.tonbeller.wcf.tree.TreeComponent$CollapseHandler
com.tonbeller.wcf.tree.TreeComponent$ExpandHandler
com.tonbeller.wcf.tree.TreeComponent$UnboundHandler
com.tonbeller.wcf.tree.TreeComponentTag
com.tonbeller.wcf.tree.TreeHandler
com.tonbeller.wcf.tree.TreeModel$1
com.tonbeller.wcf.tree.TreeModelChangeEvent
com.tonbeller.wcf.tree.TreeModelChangeSupport
com.tonbeller.wcf.tree.TreeModelDecorator
com.tonbeller.wcf.tabbed
com.tonbeller.wcf.table
com.tonbeller.wcf.test
com.tonbeller.tbutils.res
com.tonbeller.wcf.changeorder
com.tonbeller.wcf.component
com.tonbeller.wcf.controller
com.tonbeller.wcf.convert
com.tonbeller.wcf.form
com.tonbeller.wcf.scroller
com.tonbeller.wcf.selection
com.tonbeller.wcf.ui
com.tonbeller.wcf.utils
java.io
java.lang
java.text
java.util
javax.servlet.http
javax.servlet.jsp
org.apache.commons.beanutils
org.apache.log4j
org.w3c.dom

com.tonbeller.wcf.ui

Afferent Couplings: 8Efferent Couplings: 5Abstractness: 0.23Instability: 0.38Distance: 0.39
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.ui.EditCtrl
com.tonbeller.wcf.ui.Item
com.tonbeller.wcf.ui.SelectMultiple
com.tonbeller.wcf.ui.SelectSingle
com.tonbeller.wcf.ui.XoplonCtrl
com.tonbeller.wcf.ui.Button
com.tonbeller.wcf.ui.CheckBox
com.tonbeller.wcf.ui.CheckBoxes
com.tonbeller.wcf.ui.FileUploadCtrl
com.tonbeller.wcf.ui.Form
com.tonbeller.wcf.ui.ImgButton
com.tonbeller.wcf.ui.Label
com.tonbeller.wcf.ui.ListBox1
com.tonbeller.wcf.ui.ListBoxN
com.tonbeller.wcf.ui.ListItem
com.tonbeller.wcf.ui.Password
com.tonbeller.wcf.ui.RadioButton
com.tonbeller.wcf.ui.RadioButtons
com.tonbeller.wcf.ui.Select
com.tonbeller.wcf.ui.TextArea
com.tonbeller.wcf.ui.TextField
com.tonbeller.wcf.ui.TypedCtrl
com.tonbeller.wcf.convert
com.tonbeller.wcf.form
com.tonbeller.wcf.list
com.tonbeller.wcf.log
com.tonbeller.wcf.selection
com.tonbeller.wcf.tabbed
com.tonbeller.wcf.table
com.tonbeller.wcf.tree
com.tonbeller.wcf.format
com.tonbeller.wcf.utils
java.lang
java.util
org.w3c.dom

com.tonbeller.wcf.utils

Afferent Couplings: 19Efferent Couplings: 20Abstractness: 0.11Instability: 0.51Distance: 0.38
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.utils.I18nReplacer
com.tonbeller.wcf.utils.TempFileDeleter
com.tonbeller.wcf.utils.DomUtils
com.tonbeller.wcf.utils.I18nReplacer$1
com.tonbeller.wcf.utils.I18nReplacer$2
com.tonbeller.wcf.utils.IdGenerator
com.tonbeller.wcf.utils.IncludeTag
com.tonbeller.wcf.utils.IndexOfComparator
com.tonbeller.wcf.utils.JDK13Utils
com.tonbeller.wcf.utils.ObjectFactory
com.tonbeller.wcf.utils.ObjectFactory$ObjectHolder
com.tonbeller.wcf.utils.ResourceLocator
com.tonbeller.wcf.utils.SessionTempFileDeleter
com.tonbeller.wcf.utils.SoftException
com.tonbeller.wcf.utils.SqlUtils
com.tonbeller.wcf.utils.UrlUtils
com.tonbeller.wcf.utils.XmlUtils
com.tonbeller.wcf.utils.XoplonNS
com.tonbeller.wcf.catedit
com.tonbeller.wcf.changeorder
com.tonbeller.wcf.component
com.tonbeller.wcf.controller
com.tonbeller.wcf.convert
com.tonbeller.wcf.expr
com.tonbeller.wcf.form
com.tonbeller.wcf.format
com.tonbeller.wcf.list
com.tonbeller.wcf.log
com.tonbeller.wcf.param
com.tonbeller.wcf.popup
com.tonbeller.wcf.selection
com.tonbeller.wcf.statusline
com.tonbeller.wcf.tabbed
com.tonbeller.wcf.table
com.tonbeller.wcf.toolbar
com.tonbeller.wcf.tree
com.tonbeller.wcf.ui
com.tonbeller.tbutils.res
java.io
java.lang
java.lang.reflect
java.net
java.sql
java.util
javax.servlet
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.tagext
javax.xml.parsers
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.stream
org.apache.commons.digester
org.apache.commons.digester.xmlrules
org.apache.log4j
org.w3c.dom
org.xml.sax

com.tonbeller.wcf.wizard

Afferent Couplings: 1Efferent Couplings: 6Abstractness: 0.29Instability: 0.86Distance: 0.14
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
com.tonbeller.wcf.wizard.PageListener
com.tonbeller.wcf.wizard.WizardPage
com.tonbeller.wcf.wizard.WizardComponent
com.tonbeller.wcf.wizard.WizardComponent$1
com.tonbeller.wcf.wizard.WizardComponentTag
com.tonbeller.wcf.wizard.WizardPage$WizardPagePosition
com.tonbeller.wcf.wizard.WizardPageSupport
com.tonbeller.wcf.form
com.tonbeller.wcf.component
com.tonbeller.wcf.controller
java.lang
java.util
org.apache.log4j
org.w3c.dom

Cycles

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

There are no cyclic dependancies.

Explanations

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

The following explanations are for quick reference and are lifted directly from the original JDepend documentation.

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.