Apache MyFaces
Foundation

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
javax.faces 2 2 0 10 7 0.0% 41.0% 58.999996% 1
javax.faces.application 12 5 7 7 11 58.0% 61.0% 19.0% 1
javax.faces.component 72 53 19 8 21 26.0% 72.0% 1.0% 1
javax.faces.component.html 64 25 39 0 4 61.0% 100.0% 61.0% 1
javax.faces.context 8 2 6 11 11 75.0% 50.0% 25.0% 1
javax.faces.convert 17 16 1 4 9 6.0% 69.0% 25.0% 1
javax.faces.el 8 4 4 3 3 50.0% 50.0% 0.0% 1
javax.faces.event 12 7 5 3 8 42.0% 73.0% 14.0% 1
javax.faces.lifecycle 2 0 2 5 5 100.0% 50.0% 50.0% 1
javax.faces.model 18 16 2 1 6 11.0% 86.0% 3.0% 1
javax.faces.render 4 0 4 3 7 100.0% 70.0% 70.0% 1
javax.faces.validator 8 7 1 3 8 12.0% 73.0% 15.000001% 1
javax.faces.webapp 15 8 7 0 23 47.0% 100.0% 47.0% 1

Packages

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

javax.faces

Afferent Couplings Efferent Couplings Abstractness Instability Distance
10 7 0.0% 41.0% 58.999996%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None javax.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 Couplings Efferent Couplings Abstractness Instability Distance
7 11 58.0% 61.0% 19.0%
Abstract Classes Concrete Classes Used by Packages Uses 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 Couplings Efferent Couplings Abstractness Instability Distance
8 21 26.0% 72.0% 1.0%
Abstract Classes Concrete Classes Used by Packages Uses 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._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 Couplings Efferent Couplings Abstractness Instability Distance
0 4 61.0% 100.0% 61.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
javax.faces.component.html._AccesskeyProperty
javax.faces.component.html._AltProperty
javax.faces.component.html._Change_SelectProperties
javax.faces.component.html._DisabledClass_EnabledClassProperties
javax.faces.component.html._Disabled_ReadonlyProperties
javax.faces.component.html._EscapeProperty
javax.faces.component.html._EventProperties
javax.faces.component.html._Focus_BlurProperties
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
None java.lang
javax.el
javax.faces.component
javax.faces.context

javax.faces.context

Afferent Couplings Efferent Couplings Abstractness Instability Distance
11 11 75.0% 50.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses 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 Couplings Efferent Couplings Abstractness Instability Distance
4 9 6.0% 69.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses 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.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

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 3 50.0% 50.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses 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.webapp
java.lang
javax.faces
javax.faces.context

javax.faces.event

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 8 42.0% 73.0% 14.0%
Abstract Classes Concrete Classes Used by Packages Uses 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 Couplings Efferent Couplings Abstractness Instability Distance
5 5 100.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
javax.faces.lifecycle.Lifecycle
javax.faces.lifecycle.LifecycleFactory
None javax.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 Couplings Efferent Couplings Abstractness Instability Distance
1 6 11.0% 86.0% 3.0%
Abstract Classes Concrete Classes Used by Packages Uses 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 Couplings Efferent Couplings Abstractness Instability Distance
3 7 100.0% 70.0% 70.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
javax.faces.render.RenderKit
javax.faces.render.RenderKitFactory
javax.faces.render.Renderer
javax.faces.render.ResponseStateManager
None javax.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 Couplings Efferent Couplings Abstractness Instability Distance
3 8 12.0% 73.0% 15.000001%
Abstract Classes Concrete Classes Used by Packages Uses 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.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.webapp

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 23 47.0% 100.0% 47.0%
Abstract Classes Concrete Classes Used by Packages Uses 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
None java.beans
java.io
java.lang
java.lang.reflect
java.text
java.util
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 ]

Package Package Dependencies
javax.faces javax.faces.render
javax.faces.context
javax.faces.render
javax.faces.application javax.faces
javax.faces.render
javax.faces.context
javax.faces.render
javax.faces.component javax.faces.context
javax.faces.render
javax.faces.context
javax.faces.component.html javax.faces.component
javax.faces.context
javax.faces.render
javax.faces.context
javax.faces.context javax.faces.render
javax.faces.context
javax.faces.convert javax.faces.component
javax.faces.context
javax.faces.render
javax.faces.context
javax.faces.el javax.faces.context
javax.faces.render
javax.faces.context
javax.faces.event javax.faces.component
javax.faces.context
javax.faces.render
javax.faces.context
javax.faces.lifecycle javax.faces
javax.faces.render
javax.faces.context
javax.faces.render
javax.faces.model javax.faces
javax.faces.render
javax.faces.context
javax.faces.render
javax.faces.render javax.faces.context
javax.faces.render
javax.faces.validator javax.faces.component
javax.faces.context
javax.faces.render
javax.faces.context
javax.faces.webapp javax.faces.component
javax.faces.context
javax.faces.render
javax.faces.context

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.