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
org.apache.commons.ognl1281062231017.0%77.0%6.0%1
org.apache.commons.ognl.enhance9541544.0%83.0%28.0%1
org.apache.commons.ognl.internal161332619.0%75.0%6.0%1
org.apache.commons.ognl.internal.entry181352728.0%78.0%6.0%1

Packages

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

org.apache.commons.ognl

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
31017.0%77.0%6.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.commons.ognl.BooleanExpression
org.apache.commons.ognl.ClassCacheInspector
org.apache.commons.ognl.ClassResolver
org.apache.commons.ognl.ComparisonExpression
org.apache.commons.ognl.ElementsAccessor
org.apache.commons.ognl.ExpressionNode
org.apache.commons.ognl.JavaSource
org.apache.commons.ognl.MemberAccess
org.apache.commons.ognl.MethodAccessor
org.apache.commons.ognl.Node
org.apache.commons.ognl.NodeType
org.apache.commons.ognl.NodeVisitor
org.apache.commons.ognl.NullHandler
org.apache.commons.ognl.NumericExpression
org.apache.commons.ognl.NumericTypes
org.apache.commons.ognl.Ognl
org.apache.commons.ognl.OgnlOps
org.apache.commons.ognl.OgnlParserConstants
org.apache.commons.ognl.OgnlParserTreeConstants
org.apache.commons.ognl.PropertyAccessor
org.apache.commons.ognl.SimpleNode
org.apache.commons.ognl.TypeConverter
org.apache.commons.ognl.ASTAdd
org.apache.commons.ognl.ASTAnd
org.apache.commons.ognl.ASTAssign
org.apache.commons.ognl.ASTBitAnd
org.apache.commons.ognl.ASTBitNegate
org.apache.commons.ognl.ASTBitOr
org.apache.commons.ognl.ASTChain
org.apache.commons.ognl.ASTConst
org.apache.commons.ognl.ASTCtor
org.apache.commons.ognl.ASTDivide
org.apache.commons.ognl.ASTEq
org.apache.commons.ognl.ASTEval
org.apache.commons.ognl.ASTGreater
org.apache.commons.ognl.ASTGreaterEq
org.apache.commons.ognl.ASTIn
org.apache.commons.ognl.ASTInstanceof
org.apache.commons.ognl.ASTKeyValue
org.apache.commons.ognl.ASTLess
org.apache.commons.ognl.ASTLessEq
org.apache.commons.ognl.ASTList
org.apache.commons.ognl.ASTMap
org.apache.commons.ognl.ASTMethod
org.apache.commons.ognl.ASTMethodUtil
org.apache.commons.ognl.ASTMultiply
org.apache.commons.ognl.ASTNegate
org.apache.commons.ognl.ASTNot
org.apache.commons.ognl.ASTNotEq
org.apache.commons.ognl.ASTNotIn
org.apache.commons.ognl.ASTOr
org.apache.commons.ognl.ASTProject
org.apache.commons.ognl.ASTProperty
org.apache.commons.ognl.ASTRemainder
org.apache.commons.ognl.ASTRootVarRef
org.apache.commons.ognl.ASTSelect
org.apache.commons.ognl.ASTSelectFirst
org.apache.commons.ognl.ASTSelectLast
org.apache.commons.ognl.ASTSequence
org.apache.commons.ognl.ASTShiftLeft
org.apache.commons.ognl.ASTShiftRight
org.apache.commons.ognl.ASTStaticField
org.apache.commons.ognl.ASTStaticMethod
org.apache.commons.ognl.ASTSubtract
org.apache.commons.ognl.ASTTest
org.apache.commons.ognl.ASTThisVarRef
org.apache.commons.ognl.ASTUnsignedShiftRight
org.apache.commons.ognl.ASTVarRef
org.apache.commons.ognl.ASTXor
org.apache.commons.ognl.ArrayElementsAccessor
org.apache.commons.ognl.ArrayElementsAccessor$1
org.apache.commons.ognl.ArrayPropertyAccessor
org.apache.commons.ognl.CollectionElementsAccessor
org.apache.commons.ognl.DefaultClassResolver
org.apache.commons.ognl.DefaultMemberAccess
org.apache.commons.ognl.DefaultTypeConverter
org.apache.commons.ognl.DynamicSubscript
org.apache.commons.ognl.EnumerationElementsAccessor
org.apache.commons.ognl.EnumerationIterator
org.apache.commons.ognl.EnumerationPropertyAccessor
org.apache.commons.ognl.Evaluation
org.apache.commons.ognl.EvaluationPool
org.apache.commons.ognl.ExpressionSyntaxException
org.apache.commons.ognl.InappropriateExpressionException
org.apache.commons.ognl.IteratorElementsAccessor
org.apache.commons.ognl.IteratorEnumeration
org.apache.commons.ognl.IteratorPropertyAccessor
org.apache.commons.ognl.JJTOgnlParserState
org.apache.commons.ognl.JavaCharStream
org.apache.commons.ognl.ListPropertyAccessor
org.apache.commons.ognl.MapElementsAccessor
org.apache.commons.ognl.MapPropertyAccessor
org.apache.commons.ognl.MethodFailedException
org.apache.commons.ognl.NoSuchPropertyException
org.apache.commons.ognl.NumberElementsAccessor
org.apache.commons.ognl.NumberElementsAccessor$1
org.apache.commons.ognl.NumericCasts
org.apache.commons.ognl.NumericDefaults
org.apache.commons.ognl.NumericLiterals
org.apache.commons.ognl.NumericValues
org.apache.commons.ognl.ObjectArrayPool
org.apache.commons.ognl.ObjectElementsAccessor
org.apache.commons.ognl.ObjectElementsAccessor$1
org.apache.commons.ognl.ObjectIndexedPropertyDescriptor
org.apache.commons.ognl.ObjectMethodAccessor
org.apache.commons.ognl.ObjectNullHandler
org.apache.commons.ognl.ObjectPropertyAccessor
org.apache.commons.ognl.OgnlCache
org.apache.commons.ognl.OgnlCache$1
org.apache.commons.ognl.OgnlCache$2
org.apache.commons.ognl.OgnlCache$3
org.apache.commons.ognl.OgnlContext
org.apache.commons.ognl.OgnlException
org.apache.commons.ognl.OgnlInvokePermission
org.apache.commons.ognl.OgnlParser
org.apache.commons.ognl.OgnlParser$1
org.apache.commons.ognl.OgnlParser$JJCalls
org.apache.commons.ognl.OgnlParser$LookaheadSuccess
org.apache.commons.ognl.OgnlParserTokenManager
org.apache.commons.ognl.OgnlRuntime
org.apache.commons.ognl.ParseException
org.apache.commons.ognl.PrimitiveDefaults
org.apache.commons.ognl.PrimitiveTypes
org.apache.commons.ognl.PrimitiveWrapperClasses
org.apache.commons.ognl.SetPropertyAccessor
org.apache.commons.ognl.ToStringVisitor
org.apache.commons.ognl.Token
org.apache.commons.ognl.TokenMgrError
org.apache.commons.ognl.enhance
org.apache.commons.ognl.internal
org.apache.commons.ognl.internal.entry
java.beans
java.io
java.lang
java.lang.reflect
java.math
java.security
java.util
org.apache.commons.ognl.enhance
org.apache.commons.ognl.internal
org.apache.commons.ognl.internal.entry

org.apache.commons.ognl.enhance

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
1544.0%83.0%28.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.commons.ognl.enhance.ExpressionAccessor
org.apache.commons.ognl.enhance.LocalReference
org.apache.commons.ognl.enhance.OgnlExpressionCompiler
org.apache.commons.ognl.enhance.OrderedReturn
org.apache.commons.ognl.enhance.ContextClassLoader
org.apache.commons.ognl.enhance.EnhancedClassLoader
org.apache.commons.ognl.enhance.ExpressionCompiler
org.apache.commons.ognl.enhance.LocalReferenceImpl
org.apache.commons.ognl.enhance.UnsupportedCompilationException
org.apache.commons.ognl
java.lang
java.lang.reflect
java.util
javassist
org.apache.commons.ognl

org.apache.commons.ognl.internal

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2619.0%75.0%6.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.commons.ognl.internal.Cache
org.apache.commons.ognl.internal.CacheFactory
org.apache.commons.ognl.internal.ClassCache
org.apache.commons.ognl.internal.CacheException
org.apache.commons.ognl.internal.ClassCacheHandler
org.apache.commons.ognl.internal.ClassCacheImpl
org.apache.commons.ognl.internal.ConcurrentHashMapCache
org.apache.commons.ognl.internal.ConcurrentHashMapCacheFactory
org.apache.commons.ognl.internal.ConcurrentHashMapClassCache
org.apache.commons.ognl.internal.Entry
org.apache.commons.ognl.internal.HashMapCache
org.apache.commons.ognl.internal.HashMapCacheFactory
org.apache.commons.ognl.internal.HashMapClassCache
org.apache.commons.ognl.internal.ReentrantReadWriteLockCache
org.apache.commons.ognl.internal.ReentrantReadWriteLockCacheFactory
org.apache.commons.ognl.internal.ReentrantReadWriteLockClassCache
org.apache.commons.ognl
org.apache.commons.ognl.internal.entry
java.lang
java.util
java.util.concurrent
java.util.concurrent.locks
org.apache.commons.ognl
org.apache.commons.ognl.internal.entry

org.apache.commons.ognl.internal.entry

Afferent CouplingsEfferent CouplingsAbstractnessInstabilityDistance
2728.0%78.0%6.0%
Abstract ClassesConcrete ClassesUsed by PackagesUses Packages
org.apache.commons.ognl.internal.entry.CacheEntry
org.apache.commons.ognl.internal.entry.CacheEntryFactory
org.apache.commons.ognl.internal.entry.ClassCacheEntryFactory
org.apache.commons.ognl.internal.entry.MethodCacheEntryFactory
org.apache.commons.ognl.internal.entry.ParametrizedCacheEntryFactory
org.apache.commons.ognl.internal.entry.DeclaredMethodCacheEntry
org.apache.commons.ognl.internal.entry.DeclaredMethodCacheEntry$MethodType
org.apache.commons.ognl.internal.entry.DeclaredMethodCacheEntryFactory
org.apache.commons.ognl.internal.entry.FieldCacheEntryFactory
org.apache.commons.ognl.internal.entry.GenericMethodParameterTypeCacheEntry
org.apache.commons.ognl.internal.entry.GenericMethodParameterTypeFactory
org.apache.commons.ognl.internal.entry.MethodAccessCacheEntryFactory
org.apache.commons.ognl.internal.entry.MethodAccessEntryValue
org.apache.commons.ognl.internal.entry.MethodCacheEntry
org.apache.commons.ognl.internal.entry.MethodPermCacheEntryFactory
org.apache.commons.ognl.internal.entry.PermissionCacheEntry
org.apache.commons.ognl.internal.entry.PermissionCacheEntryFactory
org.apache.commons.ognl.internal.entry.PropertyDescriptorCacheEntryFactory
org.apache.commons.ognl
org.apache.commons.ognl.internal
java.beans
java.lang
java.lang.reflect
java.security
java.util
org.apache.commons.ognl
org.apache.commons.ognl.internal

Cycles

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

PackagePackage Dependencies
org.apache.commons.ognlorg.apache.commons.ognl.enhance
org.apache.commons.ognl
org.apache.commons.ognl.enhanceorg.apache.commons.ognl
org.apache.commons.ognl.enhance
org.apache.commons.ognl.internalorg.apache.commons.ognl.internal.entry
org.apache.commons.ognl.internal
org.apache.commons.ognl.internal.entryorg.apache.commons.ognl.internal
org.apache.commons.ognl.internal.entry

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.