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
org.seasar.cubby 1 1 0 0 1 0.0% 100.0% 0.0% 1
org.seasar.cubby.action 15 6 9 12 12 60.000004% 50.0% 10.0% 1
org.seasar.cubby.action.impl 7 6 1 1 4 14.0% 80.0% 6.0% 1
org.seasar.cubby.aop 1 1 0 1 8 0.0% 89.0% 11.0% 1
org.seasar.cubby.controller 8 2 6 9 9 75.0% 50.0% 25.0% 1
org.seasar.cubby.controller.impl 7 7 0 0 22 0.0% 100.0% 0.0% 1
org.seasar.cubby.customizer 2 2 0 0 5 0.0% 100.0% 0.0% 1
org.seasar.cubby.dxo 1 0 1 5 2 100.0% 29.0% 29.0% 1
org.seasar.cubby.dxo.converter.impl 4 3 1 0 6 25.0% 100.0% 25.0% 1
org.seasar.cubby.dxo.impl 7 7 0 0 18 0.0% 100.0% 0.0% 1
org.seasar.cubby.exception 3 3 0 2 2 0.0% 50.0% 50.0% 1
org.seasar.cubby.filter 5 5 0 1 13 0.0% 93.0% 7.0% 1
org.seasar.cubby.interceptor 2 2 0 0 10 0.0% 100.0% 0.0% 1
org.seasar.cubby.routing 3 0 3 3 3 100.0% 50.0% 50.0% 1
org.seasar.cubby.routing.impl 13 11 2 0 16 15.000001% 100.0% 15.000001% 1
org.seasar.cubby.tags 11 9 2 0 16 18.0% 100.0% 18.0% 1
org.seasar.cubby.unit 3 2 1 0 13 33.0% 100.0% 33.0% 1
org.seasar.cubby.util 6 6 0 7 12 0.0% 63.0% 37.0% 1
org.seasar.cubby.validator 16 9 7 3 4 44.0% 57.0% 1.0% 1
org.seasar.cubby.validator.impl 1 1 0 0 4 0.0% 100.0% 0.0% 1
org.seasar.cubby.validator.validators 13 13 0 0 13 0.0% 100.0% 0.0% 1

Packages

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

org.seasar.cubby

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 1 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.seasar.cubby.CubbyConstants
None java.lang

org.seasar.cubby.action

Afferent Couplings Efferent Couplings Abstractness Instability Distance
12 12 60.000004% 50.0% 10.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.seasar.cubby.action.AbstractActionResult
org.seasar.cubby.action.Accept
org.seasar.cubby.action.Action
org.seasar.cubby.action.ActionErrors
org.seasar.cubby.action.ActionResult
org.seasar.cubby.action.Form
org.seasar.cubby.action.FormatPattern
org.seasar.cubby.action.Path
org.seasar.cubby.action.Validation
org.seasar.cubby.action.Direct
org.seasar.cubby.action.FieldInfo
org.seasar.cubby.action.Forward
org.seasar.cubby.action.Json
org.seasar.cubby.action.Redirect
org.seasar.cubby.action.RequestMethod
org.seasar.cubby.action.impl
org.seasar.cubby.controller
org.seasar.cubby.controller.impl
org.seasar.cubby.dxo.impl
org.seasar.cubby.interceptor
org.seasar.cubby.routing.impl
org.seasar.cubby.tags
org.seasar.cubby.unit
org.seasar.cubby.util
org.seasar.cubby.validator
org.seasar.cubby.validator.impl
org.seasar.cubby.validator.validators
java.io
java.lang
java.lang.annotation
java.text
java.util
javax.servlet
javax.servlet.http
org.seasar.cubby.controller
org.seasar.cubby.util
org.seasar.framework.container
org.seasar.framework.log
org.seasar.framework.util

org.seasar.cubby.action.impl

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 4 14.0% 80.0% 6.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.seasar.cubby.action.impl.ActionErrorsImpl$EmptyValueFactory
org.seasar.cubby.action.impl.ActionErrorsImpl
org.seasar.cubby.action.impl.ActionErrorsImpl$1
org.seasar.cubby.action.impl.ActionErrorsImpl$IndexMapEmptyValueFactory
org.seasar.cubby.action.impl.ActionErrorsImpl$MessageListEmptyValueFactory
org.seasar.cubby.action.impl.ActionErrorsImpl$NotNullHashMap
org.seasar.cubby.action.impl.FormatPatternImpl
org.seasar.cubby.controller.impl
java.lang
java.text
java.util
org.seasar.cubby.action

org.seasar.cubby.aop

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 8 0.0% 89.0% 11.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.seasar.cubby.aop.ActionMethodPointcutImpl
org.seasar.cubby.customizer
java.io
java.lang
java.lang.reflect
java.util
java.util.regex
org.seasar.cubby.util
org.seasar.framework.aop
org.seasar.framework.exception

org.seasar.cubby.controller

Afferent Couplings Efferent Couplings Abstractness Instability Distance
9 9 75.0% 50.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.seasar.cubby.controller.ActionContext
org.seasar.cubby.controller.ActionDef
org.seasar.cubby.controller.ActionDefBuilder
org.seasar.cubby.controller.ActionProcessor
org.seasar.cubby.controller.CubbyConfiguration
org.seasar.cubby.controller.RequestParser
org.seasar.cubby.controller.ThreadContext
org.seasar.cubby.controller.ThreadContext$1
org.seasar.cubby.action
org.seasar.cubby.controller.impl
org.seasar.cubby.dxo.impl
org.seasar.cubby.filter
org.seasar.cubby.interceptor
org.seasar.cubby.tags
org.seasar.cubby.unit
org.seasar.cubby.util
org.seasar.cubby.validator.validators
java.lang
java.lang.reflect
java.util
javax.servlet
javax.servlet.http
org.seasar.cubby.action
org.seasar.cubby.dxo
org.seasar.framework.container
org.seasar.framework.util

org.seasar.cubby.controller.impl

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 22 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.seasar.cubby.controller.impl.ActionContextImpl
org.seasar.cubby.controller.impl.ActionDefBuilderImpl
org.seasar.cubby.controller.impl.ActionDefImpl
org.seasar.cubby.controller.impl.ActionProcessorImpl
org.seasar.cubby.controller.impl.CubbyConfigurationImpl
org.seasar.cubby.controller.impl.DefaultRequestParserImpl
org.seasar.cubby.controller.impl.MultipartRequestParserImpl
None java.io
java.lang
java.lang.reflect
java.util
java.util.regex
javax.servlet
javax.servlet.http
org.apache.commons.fileupload
org.apache.commons.fileupload.servlet
org.seasar.cubby.action
org.seasar.cubby.action.impl
org.seasar.cubby.controller
org.seasar.cubby.dxo
org.seasar.cubby.exception
org.seasar.cubby.filter
org.seasar.cubby.util
org.seasar.framework.beans
org.seasar.framework.beans.factory
org.seasar.framework.container
org.seasar.framework.exception
org.seasar.framework.log
org.seasar.framework.util

org.seasar.cubby.customizer

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 5 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.seasar.cubby.customizer.ActionMethodCustomizer
org.seasar.cubby.customizer.PointcutFactory
None java.lang
org.seasar.cubby.aop
org.seasar.framework.aop
org.seasar.framework.container.customizer
org.seasar.framework.util

org.seasar.cubby.dxo

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 2 100.0% 29.0% 29.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.seasar.cubby.dxo.FormDxo
None org.seasar.cubby.controller
org.seasar.cubby.controller.impl
org.seasar.cubby.dxo.impl
org.seasar.cubby.interceptor
org.seasar.cubby.tags
java.lang
java.util

org.seasar.cubby.dxo.converter.impl

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 6 25.0% 100.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.seasar.cubby.dxo.converter.impl.AbstractFileItemConverter
org.seasar.cubby.dxo.converter.impl.ByteArrayConverter
org.seasar.cubby.dxo.converter.impl.FileItemConverter
org.seasar.cubby.dxo.converter.impl.InputStreamConverter
None java.io
java.lang
org.apache.commons.fileupload
org.seasar.extension.dxo.converter
org.seasar.extension.dxo.converter.impl
org.seasar.framework.log

org.seasar.cubby.dxo.impl

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 18 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.seasar.cubby.dxo.impl.BeanToStringArrayMapDxoCommand
org.seasar.cubby.dxo.impl.FormDxoImpl
org.seasar.cubby.dxo.impl.ObjectArrayMapToBeanDxoCommand
org.seasar.cubby.dxo.impl.RequestParameterAnnotationReader
org.seasar.cubby.dxo.impl.RequestParameterConverterFactoryImpl
org.seasar.cubby.dxo.impl.RequestParameterConverterFactoryImpl$1
org.seasar.cubby.dxo.impl.RequestParameterConverterFactoryImpl$DisregardExceptionConverterWrapper
None java.lang
java.lang.reflect
java.util
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.dxo
org.seasar.extension.dxo.annotation
org.seasar.extension.dxo.annotation.impl
org.seasar.extension.dxo.command
org.seasar.extension.dxo.command.impl
org.seasar.extension.dxo.converter
org.seasar.extension.dxo.converter.impl
org.seasar.framework.beans
org.seasar.framework.beans.factory
org.seasar.framework.container
org.seasar.framework.container.factory
org.seasar.framework.log
org.seasar.framework.util

org.seasar.cubby.exception

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 2 0.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.seasar.cubby.exception.ActionRuntimeException
org.seasar.cubby.exception.DuplicateRoutingRuntimeException
org.seasar.cubby.exception.FileUploadRuntimeException
org.seasar.cubby.controller.impl
org.seasar.cubby.routing.impl
java.lang
org.seasar.framework.exception

org.seasar.cubby.filter

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 13 0.0% 93.0% 7.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.seasar.cubby.filter.CubbyFilter
org.seasar.cubby.filter.CubbyHttpServletRequestWrapper
org.seasar.cubby.filter.CubbyHttpServletRequestWrapper$1
org.seasar.cubby.filter.CubbyHttpServletRequestWrapper$IteratorEnumeration
org.seasar.cubby.filter.RequestRoutingFilter
org.seasar.cubby.controller.impl
java.io
java.lang
java.util
java.util.regex
javax.servlet
javax.servlet.http
org.seasar.cubby.controller
org.seasar.cubby.routing
org.seasar.framework.beans
org.seasar.framework.beans.factory
org.seasar.framework.container
org.seasar.framework.log
org.seasar.framework.util

org.seasar.cubby.interceptor

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 10 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.seasar.cubby.interceptor.InitializeInterceptor
org.seasar.cubby.interceptor.ValidationInterceptor
None java.lang
java.util
javax.servlet.http
org.aopalliance.intercept
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.dxo
org.seasar.cubby.validator
org.seasar.framework.beans
org.seasar.framework.beans.factory

org.seasar.cubby.routing

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 3 100.0% 50.0% 50.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.seasar.cubby.routing.InternalForwardInfo
org.seasar.cubby.routing.PathResolver
org.seasar.cubby.routing.Router
None org.seasar.cubby.filter
org.seasar.cubby.routing.impl
org.seasar.cubby.unit
java.lang
java.util
javax.servlet.http

org.seasar.cubby.routing.impl

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 16 15.000001% 100.0% 15.000001%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.seasar.cubby.routing.impl.ClassCollector
org.seasar.cubby.routing.impl.ClassCollector$Strategy
org.seasar.cubby.routing.impl.ClassCollector$1
org.seasar.cubby.routing.impl.ClassCollector$CodeSourceFileStrategy
org.seasar.cubby.routing.impl.ClassCollector$FileSystemStrategy
org.seasar.cubby.routing.impl.ClassCollector$JarFileStrategy
org.seasar.cubby.routing.impl.ClassCollector$ZipFileStrategy
org.seasar.cubby.routing.impl.InternalForwardInfoImpl
org.seasar.cubby.routing.impl.PathResolverImpl
org.seasar.cubby.routing.impl.PathResolverImpl$ActionClassCollector
org.seasar.cubby.routing.impl.PathResolverImpl$Routing
org.seasar.cubby.routing.impl.PathResolverImpl$RoutingComparator
org.seasar.cubby.routing.impl.RouterImpl
None java.io
java.lang
java.lang.reflect
java.net
java.util
java.util.jar
java.util.regex
javax.servlet.http
org.seasar.cubby.action
org.seasar.cubby.exception
org.seasar.cubby.routing
org.seasar.cubby.util
org.seasar.framework.convention
org.seasar.framework.exception
org.seasar.framework.log
org.seasar.framework.util

org.seasar.cubby.tags

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 16 18.0% 100.0% 18.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.seasar.cubby.tags.DynamicAttributesTagSupport
org.seasar.cubby.tags.SelectTag$ItemAdaptor
org.seasar.cubby.tags.FormTag
org.seasar.cubby.tags.InputTag
org.seasar.cubby.tags.SelectTag
org.seasar.cubby.tags.SelectTag$BeanItemAdaptor
org.seasar.cubby.tags.SelectTag$EntryItemAdaptor
org.seasar.cubby.tags.SelectTag$OptionWriter
org.seasar.cubby.tags.TagUtils
org.seasar.cubby.tags.TextareaTag
org.seasar.cubby.tags.TokenTag
None java.io
java.lang
java.util
javax.servlet.http
javax.servlet.jsp
javax.servlet.jsp.tagext
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.dxo
org.seasar.cubby.util
org.seasar.framework.beans
org.seasar.framework.beans.factory
org.seasar.framework.container
org.seasar.framework.log
org.seasar.framework.message
org.seasar.framework.util

org.seasar.cubby.unit

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 13 33.0% 100.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.seasar.cubby.unit.CubbyTestCase
org.seasar.cubby.unit.CubbyTestCase$1
org.seasar.cubby.unit.CubbyTestCase$MockFilterChain
None java.io
java.lang
java.lang.reflect
java.util
javax.servlet
javax.servlet.http
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.routing
org.seasar.framework.beans.util
org.seasar.framework.mock.servlet
org.seasar.framework.unit
org.seasar.framework.util

org.seasar.cubby.util

Afferent Couplings Efferent Couplings Abstractness Instability Distance
7 12 0.0% 63.0% 37.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.seasar.cubby.util.CubbyFunctions
org.seasar.cubby.util.CubbyUtils
org.seasar.cubby.util.CubbyUtils$1AcceptDummy
org.seasar.cubby.util.Messages
org.seasar.cubby.util.QueryStringBuilder
org.seasar.cubby.util.TokenHelper
org.seasar.cubby.action
org.seasar.cubby.aop
org.seasar.cubby.controller.impl
org.seasar.cubby.routing.impl
org.seasar.cubby.tags
org.seasar.cubby.validator
org.seasar.cubby.validator.validators
java.io
java.lang
java.lang.reflect
java.math
java.net
java.text
java.util
javax.servlet.http
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.framework.exception
org.seasar.framework.util

org.seasar.cubby.validator

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 4 44.0% 57.0% 1.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.seasar.cubby.validator.ArrayFieldValidator
org.seasar.cubby.validator.FieldValidationRule$ValidationInvoker
org.seasar.cubby.validator.ScalarFieldValidator
org.seasar.cubby.validator.ValidationProcessor
org.seasar.cubby.validator.ValidationRule
org.seasar.cubby.validator.ValidationRules
org.seasar.cubby.validator.Validator
org.seasar.cubby.validator.DefaultValidationRules
org.seasar.cubby.validator.FieldValidationRule
org.seasar.cubby.validator.FieldValidationRule$ArrayFieldValidationInvoker
org.seasar.cubby.validator.FieldValidationRule$ScalarFieldValidationInvoker
org.seasar.cubby.validator.MessageHelper
org.seasar.cubby.validator.MessageInfo
org.seasar.cubby.validator.MessageInfo$1
org.seasar.cubby.validator.MessageInfo$MessageBuilder
org.seasar.cubby.validator.ValidationContext
org.seasar.cubby.interceptor
org.seasar.cubby.validator.impl
org.seasar.cubby.validator.validators
java.lang
java.util
org.seasar.cubby.action
org.seasar.cubby.util

org.seasar.cubby.validator.impl

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 4 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.seasar.cubby.validator.impl.ValidationProcessorImpl
None java.lang
java.util
org.seasar.cubby.action
org.seasar.cubby.validator

org.seasar.cubby.validator.validators

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 13 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.seasar.cubby.validator.validators.ArrayMaxSizeValidator
org.seasar.cubby.validator.validators.ArrayMinSizeValidator
org.seasar.cubby.validator.validators.DateFormatValidator
org.seasar.cubby.validator.validators.EmailValidator
org.seasar.cubby.validator.validators.EqualsValidator
org.seasar.cubby.validator.validators.FileRegexpValidator
org.seasar.cubby.validator.validators.MaxLengthValidator
org.seasar.cubby.validator.validators.NumberValidator
org.seasar.cubby.validator.validators.RangeLengthValidator
org.seasar.cubby.validator.validators.RangeValidator
org.seasar.cubby.validator.validators.RegexpValidator
org.seasar.cubby.validator.validators.RequiredValidator
org.seasar.cubby.validator.validators.TokenValidator
None java.lang
java.math
java.text
java.util
java.util.regex
javax.servlet.http
org.apache.commons.fileupload
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.util
org.seasar.cubby.validator
org.seasar.framework.exception
org.seasar.framework.util

Cycles

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

Package Package Dependencies
org.seasar.cubby.action org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.action.impl org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.aop org.seasar.cubby.util
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.controller org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.controller.impl org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.customizer org.seasar.cubby.aop
org.seasar.cubby.util
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.dxo.impl org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.filter org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.interceptor org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.routing.impl org.seasar.cubby.util
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.tags org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.unit org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.util org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.validator org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.validator.impl org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action
org.seasar.cubby.validator.validators org.seasar.cubby.validator
org.seasar.cubby.action
org.seasar.cubby.controller
org.seasar.cubby.action

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.