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.opendaylight.controller.config.yang.pcep.impl 7 3 4 0 11 57.0% 100.0% 57.0% 1
org.opendaylight.protocol.pcep.impl 17 14 3 0 27 18.0% 100.0% 18.0% 1
org.opendaylight.protocol.pcep.impl.spi 1 1 0 0 11 0.0% 100.0% 0.0% 1
org.opendaylight.protocol.pcep.impl.tls 3 3 0 0 9 0.0% 100.0% 0.0% 1
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707 13 10 3 3 8 23.0% 73.0% 4.0% 1
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.pcep.dispatcher.config 4 3 1 3 6 25.0% 67.0% 8.0% 1
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.impl.rev130627 3 2 1 0 8 33.0% 100.0% 33.0% 1
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.impl.rev130627.modules.module.configuration 4 3 1 0 6 25.0% 100.0% 25.0% 1

Packages

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

org.opendaylight.controller.config.yang.pcep.impl

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 11 57.0% 100.0% 57.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.opendaylight.controller.config.yang.pcep.impl.AbstractPCEPDispatcherImplModule
org.opendaylight.controller.config.yang.pcep.impl.AbstractPCEPDispatcherImplModuleFactory
org.opendaylight.controller.config.yang.pcep.impl.PCEPDispatcherImplModule$AutoCloseablePCEPDispatcher
org.opendaylight.controller.config.yang.pcep.impl.PCEPDispatcherImplModuleMXBean
org.opendaylight.controller.config.yang.pcep.impl.PCEPDispatcherImplModule
org.opendaylight.controller.config.yang.pcep.impl.PCEPDispatcherImplModule$1
org.opendaylight.controller.config.yang.pcep.impl.PCEPDispatcherImplModuleFactory
None com.google.common.reflect
java.lang
java.lang.reflect
java.util
org.opendaylight.controller.config.api
org.opendaylight.controller.config.api.osgi
org.opendaylight.controller.config.spi
org.opendaylight.controller.config.yang.pcep
org.opendaylight.protocol.pcep
org.osgi.framework
org.slf4j

org.opendaylight.protocol.pcep.impl

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 27 18.0% 100.0% 18.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.opendaylight.protocol.pcep.impl.AbstractPCEPSessionNegotiatorFactory
org.opendaylight.protocol.pcep.impl.PCEPDispatcherImpl$ChannelPipelineInitializer
org.opendaylight.protocol.pcep.impl.PCEPPeerRegistry$SessionReference
org.opendaylight.protocol.pcep.impl.AbstractPCEPSessionNegotiator$1
org.opendaylight.protocol.pcep.impl.AbstractPCEPSessionNegotiator$State
org.opendaylight.protocol.pcep.impl.BasePCEPSessionProposalFactory
org.opendaylight.protocol.pcep.impl.DefaultPCEPSessionNegotiator
org.opendaylight.protocol.pcep.impl.DefaultPCEPSessionNegotiatorFactory
org.opendaylight.protocol.pcep.impl.PCEPDispatcherImpl$1
org.opendaylight.protocol.pcep.impl.PCEPHandlerFactory
org.opendaylight.protocol.pcep.impl.PCEPMessageHeaderDecoder
org.opendaylight.protocol.pcep.impl.PCEPMessageToByteEncoder
org.opendaylight.protocol.pcep.impl.PCEPPeerRegistry$ByteArrayWrapper
org.opendaylight.protocol.pcep.impl.PCEPProtocolSessionPromise
org.opendaylight.protocol.pcep.impl.PCEPSessionNegotiator$1
org.opendaylight.protocol.pcep.impl.PCEPSessionState
org.opendaylight.protocol.pcep.impl.PeerRecord
None com.google.common.base
com.google.common.cache
io.netty.bootstrap
io.netty.buffer
io.netty.channel
io.netty.channel.socket
io.netty.handler.codec
io.netty.util.concurrent
java.lang
java.net
java.util
java.util.concurrent
org.opendaylight.protocol.pcep
org.opendaylight.protocol.pcep.spi
org.opendaylight.protocol.util
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.pcep.dispatcher.config
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.stats.rev141006.pcep.session.state
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.stats.rev141006.pcep.session.state.messages
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.stats.rev141006.pcep.session.state.messages.error.messages
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message
org.slf4j

org.opendaylight.protocol.pcep.impl.spi

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 11 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.opendaylight.protocol.pcep.impl.spi.Util
None java.lang
java.util
org.opendaylight.protocol.pcep.spi
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type.session._case

org.opendaylight.protocol.pcep.impl.tls

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 9 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.opendaylight.protocol.pcep.impl.tls.SslContextFactory
org.opendaylight.protocol.pcep.impl.tls.SslKeyStore
org.opendaylight.protocol.pcep.impl.tls.SslKeyStore$1
None com.google.common.base
java.io
java.lang
java.security
java.security.cert
javax.net.ssl
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.pcep.dispatcher.config
org.slf4j

org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 8 23.0% 73.0% 4.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.PcepAppConfigData
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.PcepDispatcherConfig
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.PcepSessionConfig
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.$YangModelBindingProvider
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.$YangModuleInfoImpl
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.PathType
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.PcepDispatcherConfigBuilder
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.PcepDispatcherConfigBuilder$1
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.PcepDispatcherConfigBuilder$PcepDispatcherConfigImpl
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.PcepSessionConfigBuilder
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.PcepSessionConfigBuilder$1
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.PcepSessionConfigBuilder$PcepSessionConfigImpl
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.StoreType
org.opendaylight.protocol.pcep.impl
org.opendaylight.protocol.pcep.impl.tls
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.pcep.dispatcher.config
com.google.common.collect
java.io
java.lang
java.util
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.pcep.dispatcher.config
org.opendaylight.yangtools.concepts
org.opendaylight.yangtools.yang.binding
org.opendaylight.yangtools.yang.common

org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.pcep.dispatcher.config

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 6 25.0% 67.0% 8.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.pcep.dispatcher.config.Tls
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.pcep.dispatcher.config.TlsBuilder
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.pcep.dispatcher.config.TlsBuilder$1
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.pcep.dispatcher.config.TlsBuilder$TlsImpl
org.opendaylight.protocol.pcep.impl
org.opendaylight.protocol.pcep.impl.tls
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707
java.lang
java.util
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707
org.opendaylight.yangtools.concepts
org.opendaylight.yangtools.yang.binding
org.opendaylight.yangtools.yang.common

org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.impl.rev130627

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 8 33.0% 100.0% 33.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.impl.rev130627.PcepDispatcherImpl
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.impl.rev130627.$YangModelBindingProvider
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.impl.rev130627.$YangModuleInfoImpl
None com.google.common.collect
java.io
java.lang
java.util
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.rev130409
org.opendaylight.yangtools.yang.binding
org.opendaylight.yangtools.yang.common

org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.impl.rev130627.modules.module.configuration

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.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.impl.rev130627.modules.module.configuration.PcepDispatcherImpl
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.impl.rev130627.modules.module.configuration.PcepDispatcherImplBuilder
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.impl.rev130627.modules.module.configuration.PcepDispatcherImplBuilder$1
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.impl.rev130627.modules.module.configuration.PcepDispatcherImplBuilder$PcepDispatcherImplImpl
None java.lang
java.util
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.modules.module
org.opendaylight.yangtools.concepts
org.opendaylight.yangtools.yang.binding
org.opendaylight.yangtools.yang.common

Cycles

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

Package Package Dependencies
org.opendaylight.protocol.pcep.impl org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.pcep.dispatcher.config
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.pcep.dispatcher.config
org.opendaylight.protocol.pcep.impl.tls org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.pcep.dispatcher.config
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.pcep.dispatcher.config
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.pcep.dispatcher.config
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.pcep.dispatcher.config org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707
org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.app.config.rev160707.pcep.dispatcher.config

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.