UI-Component Sets

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
javax.faces2201070.0%41.0%58.999996%1
javax.faces.application125771158.0%61.0%19.0%1
javax.faces.component73541982126.0%72.0%2.0%1
javax.faces.component.html6425390461.0%100.0%61.0%1
javax.faces.context826111175.0%50.0%25.0%1
javax.faces.convert181714106.0%71.0%23.0%1
javax.faces.el8445350.0%38.0%12.0%1
javax.faces.event12753842.0%73.0%14.0%1
javax.faces.lifecycle20255100.0%50.0%50.0%1
javax.faces.model181621611.0%86.0%3.0%1
javax.faces.render40437100.0%70.0%70.0%1
javax.faces.validator9813911.0%75.0%14.0%1
javax.faces.webapp158702447.0%100.0%47.0%1

Packages

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

javax.faces

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1070.0%41.0%58.999996%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
Nonejavax.faces.FacesException
javax.faces.FactoryFinder
javax.faces.application
javax.faces.component
javax.faces.context
javax.faces.convert
javax.faces.el
javax.faces.event
javax.faces.lifecycle
javax.faces.model
javax.faces.validator
javax.faces.webapp
java.lang
java.lang.reflect
java.util
javax.faces.application
javax.faces.context
javax.faces.lifecycle
javax.faces.render

javax.faces.application

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
71158.0%61.0%19.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.application.Application
javax.faces.application.ApplicationFactory
javax.faces.application.NavigationHandler
javax.faces.application.StateManager
javax.faces.application.StateManagerWrapper
javax.faces.application.ViewHandler
javax.faces.application.ViewHandlerWrapper
javax.faces.application.FacesMessage
javax.faces.application.FacesMessage$1
javax.faces.application.FacesMessage$Severity
javax.faces.application.StateManager$SerializedView
javax.faces.application.ViewExpiredException
javax.faces
javax.faces.component
javax.faces.context
javax.faces.convert
javax.faces.render
javax.faces.validator
javax.faces.webapp
java.io
java.lang
java.util
javax.el
javax.faces
javax.faces.component
javax.faces.context
javax.faces.convert
javax.faces.el
javax.faces.event
javax.faces.validator

javax.faces.component

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
82126.0%72.0%2.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.component.ActionSource
javax.faces.component.ActionSource2
javax.faces.component.ContextCallback
javax.faces.component.EditableValueHolder
javax.faces.component.NamingContainer
javax.faces.component.StateHolder
javax.faces.component.UIComponent
javax.faces.component.UIComponentBase
javax.faces.component.UIViewRoot$Processor
javax.faces.component.ValueHolder
javax.faces.component._MethodBindingToListener
javax.faces.component._MethodBindingToMethodExpression$Invoker
javax.faces.component._SelectItemsUtil$_ValueConverter
javax.faces.component._UIMessage
javax.faces.component._UIMessages
javax.faces.component._UIParameter
javax.faces.component._UISelectItem
javax.faces.component._UISelectItems
javax.faces.component._ValueBindingToValueExpression$Invoker
javax.faces.component.UIColumn
javax.faces.component.UICommand
javax.faces.component.UIData
javax.faces.component.UIData$1
javax.faces.component.UIData$EditableValueHolderState
javax.faces.component.UIData$FacesEventWrapper
javax.faces.component.UIForm
javax.faces.component.UIGraphic
javax.faces.component.UIInput
javax.faces.component.UIMessage
javax.faces.component.UIMessages
javax.faces.component.UINamingContainer
javax.faces.component.UIOutput
javax.faces.component.UIPanel
javax.faces.component.UIParameter
javax.faces.component.UISelectBoolean
javax.faces.component.UISelectItem
javax.faces.component.UISelectItems
javax.faces.component.UISelectMany
javax.faces.component.UISelectMany$1
javax.faces.component.UISelectOne
javax.faces.component.UISelectOne$1
javax.faces.component.UIViewRoot
javax.faces.component.UIViewRoot$1
javax.faces.component.UIViewRoot$2
javax.faces.component.UIViewRoot$3
javax.faces.component._AttachedListStateWrapper
javax.faces.component._AttachedStateWrapper
javax.faces.component._ClassUtils
javax.faces.component._ComponentAttributesMap
javax.faces.component._ComponentChildrenList
javax.faces.component._ComponentFacetMap
javax.faces.component._ComponentUtils
javax.faces.component._EmptyIterator
javax.faces.component._FacetsAndChildrenIterator
javax.faces.component._LabeledFacesMessage
javax.faces.component._MessageUtils
javax.faces.component._MethodBindingToActionListener
javax.faces.component._MethodBindingToMethodExpression
javax.faces.component._MethodBindingToMethodExpression$1
javax.faces.component._MethodBindingToMethodExpression$2
javax.faces.component._MethodBindingToValueChangeListener
javax.faces.component._MethodExpressionToMethodBinding
javax.faces.component._ParametrizableFacesMessage
javax.faces.component._PrimitiveArrayIterator
javax.faces.component._SelectItemsIterator
javax.faces.component._SelectItemsUtil
javax.faces.component._SharedRendererUtils
javax.faces.component._ValueBindingToValueExpression
javax.faces.component._ValueBindingToValueExpression$1
javax.faces.component._ValueBindingToValueExpression$2
javax.faces.component._ValueBindingToValueExpression$3
javax.faces.component._ValueBindingToValueExpression$4
javax.faces.component._ValueExpressionToValueBinding
javax.faces.application
javax.faces.component.html
javax.faces.context
javax.faces.convert
javax.faces.event
javax.faces.render
javax.faces.validator
javax.faces.webapp
java.beans
java.io
java.lang
java.lang.reflect
java.sql
java.text
java.util
java.util.logging
javax.el
javax.faces
javax.faces.application
javax.faces.context
javax.faces.convert
javax.faces.el
javax.faces.event
javax.faces.lifecycle
javax.faces.model
javax.faces.render
javax.faces.validator
javax.servlet.jsp.jstl.sql
org.apache.commons.logging

javax.faces.component.html

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
0461.0%100.0%61.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.component.html._AccesskeyProperty
javax.faces.component.html._AltProperty
javax.faces.component.html._ChangeSelectProperties
javax.faces.component.html._DisabledClassEnabledClassProperties
javax.faces.component.html._DisabledReadonlyProperties
javax.faces.component.html._EscapeProperty
javax.faces.component.html._EventProperties
javax.faces.component.html._FocusBlurProperties
javax.faces.component.html._HtmlColumn
javax.faces.component.html._HtmlCommandButton
javax.faces.component.html._HtmlCommandLink
javax.faces.component.html._HtmlDataTable
javax.faces.component.html._HtmlForm
javax.faces.component.html._HtmlGraphicImage
javax.faces.component.html._HtmlInputSecret
javax.faces.component.html._HtmlInputText
javax.faces.component.html._HtmlInputTextarea
javax.faces.component.html._HtmlMessage
javax.faces.component.html._HtmlMessages
javax.faces.component.html._HtmlOutputFormat
javax.faces.component.html._HtmlOutputLabel
javax.faces.component.html._HtmlOutputLink
javax.faces.component.html._HtmlOutputText
javax.faces.component.html._HtmlPanelGrid
javax.faces.component.html._HtmlPanelGroup
javax.faces.component.html._HtmlSelectBooleanCheckbox
javax.faces.component.html._HtmlSelectManyCheckbox
javax.faces.component.html._HtmlSelectManyListbox
javax.faces.component.html._HtmlSelectManyMenu
javax.faces.component.html._HtmlSelectOneListbox
javax.faces.component.html._HtmlSelectOneMenu
javax.faces.component.html._HtmlSelectOneRadio
javax.faces.component.html._LabelProperty
javax.faces.component.html._LinkProperties
javax.faces.component.html._MessageProperties
javax.faces.component.html._StyleProperties
javax.faces.component.html._TabindexProperty
javax.faces.component.html._TitleProperty
javax.faces.component.html._UniversalProperties
javax.faces.component.html.HtmlColumn
javax.faces.component.html.HtmlCommandButton
javax.faces.component.html.HtmlCommandLink
javax.faces.component.html.HtmlDataTable
javax.faces.component.html.HtmlForm
javax.faces.component.html.HtmlGraphicImage
javax.faces.component.html.HtmlInputHidden
javax.faces.component.html.HtmlInputSecret
javax.faces.component.html.HtmlInputText
javax.faces.component.html.HtmlInputTextarea
javax.faces.component.html.HtmlMessage
javax.faces.component.html.HtmlMessages
javax.faces.component.html.HtmlOutputFormat
javax.faces.component.html.HtmlOutputLabel
javax.faces.component.html.HtmlOutputLink
javax.faces.component.html.HtmlOutputText
javax.faces.component.html.HtmlPanelGrid
javax.faces.component.html.HtmlPanelGroup
javax.faces.component.html.HtmlSelectBooleanCheckbox
javax.faces.component.html.HtmlSelectManyCheckbox
javax.faces.component.html.HtmlSelectManyListbox
javax.faces.component.html.HtmlSelectManyMenu
javax.faces.component.html.HtmlSelectOneListbox
javax.faces.component.html.HtmlSelectOneMenu
javax.faces.component.html.HtmlSelectOneRadio
Nonejava.lang
javax.el
javax.faces.component
javax.faces.context

javax.faces.context

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
111175.0%50.0%25.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.context.ExternalContext
javax.faces.context.FacesContext
javax.faces.context.FacesContextFactory
javax.faces.context.ResponseStream
javax.faces.context.ResponseWriter
javax.faces.context.ResponseWriterWrapper
javax.faces.context.FacesContext$1
javax.faces.context.FacesContext$2
javax.faces
javax.faces.application
javax.faces.component
javax.faces.component.html
javax.faces.convert
javax.faces.el
javax.faces.event
javax.faces.lifecycle
javax.faces.render
javax.faces.validator
javax.faces.webapp
java.io
java.lang
java.net
java.security
java.util
javax.el
javax.faces
javax.faces.application
javax.faces.component
javax.faces.lifecycle
javax.faces.render

javax.faces.convert

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
4106.0%71.0%23.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.convert.Converter
javax.faces.convert.BigDecimalConverter
javax.faces.convert.BigIntegerConverter
javax.faces.convert.BooleanConverter
javax.faces.convert.ByteConverter
javax.faces.convert.CharacterConverter
javax.faces.convert.ConverterException
javax.faces.convert.DateTimeConverter
javax.faces.convert.DoubleConverter
javax.faces.convert.EnumConverter
javax.faces.convert.FloatConverter
javax.faces.convert.IntegerConverter
javax.faces.convert.LongConverter
javax.faces.convert.NumberConverter
javax.faces.convert.ShortConverter
javax.faces.convert._LabeledFacesMessage
javax.faces.convert._MessageUtils
javax.faces.convert._ParametrizableFacesMessage
javax.faces.application
javax.faces.component
javax.faces.render
javax.faces.webapp
java.lang
java.math
java.text
java.util
javax.el
javax.faces
javax.faces.application
javax.faces.component
javax.faces.context
javax.faces.el

javax.faces.el

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
5350.0%38.0%12.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.el.MethodBinding
javax.faces.el.PropertyResolver
javax.faces.el.ValueBinding
javax.faces.el.VariableResolver
javax.faces.el.EvaluationException
javax.faces.el.MethodNotFoundException
javax.faces.el.PropertyNotFoundException
javax.faces.el.ReferenceSyntaxException
javax.faces.application
javax.faces.component
javax.faces.convert
javax.faces.validator
javax.faces.webapp
java.lang
javax.faces
javax.faces.context

javax.faces.event

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
3842.0%73.0%14.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.event.ActionListener
javax.faces.event.FacesEvent
javax.faces.event.FacesListener
javax.faces.event.PhaseListener
javax.faces.event.ValueChangeListener
javax.faces.event.AbortProcessingException
javax.faces.event.ActionEvent
javax.faces.event.MethodExpressionActionListener
javax.faces.event.MethodExpressionValueChangeListener
javax.faces.event.PhaseEvent
javax.faces.event.PhaseId
javax.faces.event.ValueChangeEvent
javax.faces.application
javax.faces.component
javax.faces.lifecycle
java.io
java.lang
java.util
javax.el
javax.faces
javax.faces.component
javax.faces.context
javax.faces.lifecycle

javax.faces.lifecycle

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
55100.0%50.0%50.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.lifecycle.Lifecycle
javax.faces.lifecycle.LifecycleFactory
Nonejavax.faces
javax.faces.component
javax.faces.context
javax.faces.event
javax.faces.webapp
java.lang
java.util
javax.faces
javax.faces.context
javax.faces.event

javax.faces.model

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1611.0%86.0%3.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.model.DataModel
javax.faces.model.DataModelListener
javax.faces.model.ArrayDataModel
javax.faces.model.DataModelEvent
javax.faces.model.ListDataModel
javax.faces.model.ResultDataModel
javax.faces.model.ResultSetDataModel
javax.faces.model.ResultSetDataModel$WrapResultSetEntries
javax.faces.model.ResultSetDataModel$WrapResultSetEntriesIterator
javax.faces.model.ResultSetDataModel$WrapResultSetEntry
javax.faces.model.ResultSetDataModel$WrapResultSetKeys
javax.faces.model.ResultSetDataModel$WrapResultSetKeysIterator
javax.faces.model.ResultSetDataModel$WrapResultSetMap
javax.faces.model.ResultSetDataModel$WrapResultSetValues
javax.faces.model.ResultSetDataModel$WrapResultSetValuesIterator
javax.faces.model.ScalarDataModel
javax.faces.model.SelectItem
javax.faces.model.SelectItemGroup
javax.faces.component
java.io
java.lang
java.sql
java.util
javax.faces
javax.servlet.jsp.jstl.sql

javax.faces.render

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
37100.0%70.0%70.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.render.RenderKit
javax.faces.render.RenderKitFactory
javax.faces.render.Renderer
javax.faces.render.ResponseStateManager
Nonejavax.faces
javax.faces.component
javax.faces.context
java.io
java.lang
java.util
javax.faces.application
javax.faces.component
javax.faces.context
javax.faces.convert

javax.faces.validator

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
3911.0%75.0%14.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.validator.Validator
javax.faces.validator.DoubleRangeValidator
javax.faces.validator.LengthValidator
javax.faces.validator.LongRangeValidator
javax.faces.validator.MethodExpressionValidator
javax.faces.validator.ValidatorException
javax.faces.validator._LabeledFacesMessage
javax.faces.validator._MessageUtils
javax.faces.validator._ParametrizableFacesMessage
javax.faces.application
javax.faces.component
javax.faces.webapp
java.lang
java.text
java.util
javax.el
javax.faces
javax.faces.application
javax.faces.component
javax.faces.context
javax.faces.el

javax.faces.webapp

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
02447.0%100.0%47.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
javax.faces.webapp.ConverterELTag
javax.faces.webapp.UIComponentBodyTag
javax.faces.webapp.UIComponentClassicTagBase
javax.faces.webapp.UIComponentELTag
javax.faces.webapp.UIComponentTag
javax.faces.webapp.UIComponentTagBase
javax.faces.webapp.ValidatorELTag
javax.faces.webapp.AttributeTag
javax.faces.webapp.ConverterTag
javax.faces.webapp.FacesServlet
javax.faces.webapp.FacetTag
javax.faces.webapp.UIComponentTag$UIComponentTagWrapper
javax.faces.webapp.ValidatorTag
javax.faces.webapp._ErrorPageWriter
javax.faces.webapp._PageContextOutWriter
Nonejava.beans
java.io
java.lang
java.lang.reflect
java.text
java.util
java.util.concurrent.atomic
java.util.logging
java.util.regex
javax.el
javax.faces
javax.faces.application
javax.faces.component
javax.faces.context
javax.faces.convert
javax.faces.el
javax.faces.lifecycle
javax.faces.validator
javax.servlet
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.jstl.core
javax.servlet.jsp.tagext
org.apache.commons.logging

Cycles

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

PackagePackage Dependencies
javax.facesjavax.faces.render
javax.faces.context
javax.faces.component
javax.faces.context
javax.faces.applicationjavax.faces.context
javax.faces.component
javax.faces.context
javax.faces.componentjavax.faces.context
javax.faces.component
javax.faces.component.htmljavax.faces.component
javax.faces.context
javax.faces.component
javax.faces.contextjavax.faces.component
javax.faces.context
javax.faces.convertjavax.faces.component
javax.faces.context
javax.faces.component
javax.faces.eljavax.faces.context
javax.faces.component
javax.faces.context
javax.faces.eventjavax.faces.component
javax.faces.context
javax.faces.component
javax.faces.lifecyclejavax.faces
javax.faces.render
javax.faces.context
javax.faces.component
javax.faces.context
javax.faces.modeljavax.faces
javax.faces.render
javax.faces.context
javax.faces.component
javax.faces.context
javax.faces.renderjavax.faces.context
javax.faces.component
javax.faces.context
javax.faces.validatorjavax.faces.component
javax.faces.context
javax.faces.component
javax.faces.webappjavax.faces.component
javax.faces.context
javax.faces.component

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.