Apache Commons logo Apache Commons JEXL

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.apache.commons.jexl3 42 26 16 5 13 38.0% 72.0% 10.0% 1
org.apache.commons.jexl3.annotations 1 0 1 1 2 100.0% 67.0% 67.0% 1
org.apache.commons.jexl3.internal 51 47 4 2 13 8.0% 87.0% 5.0% 1
org.apache.commons.jexl3.internal.introspection 37 32 5 1 12 14.0% 92.0% 6.0% 1
org.apache.commons.jexl3.introspection 15 8 7 4 3 47.0% 43.0% 10.0% 1
org.apache.commons.jexl3.parser 92 84 8 3 8 9.0% 73.0% 19.0% 1
org.apache.commons.jexl3.scripting 9 9 0 0 8 0.0% 100.0% 0.0% 1

Packages

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

org.apache.commons.jexl3

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 13 38.0% 72.0% 10.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.jexl3.JexlArithmetic$ArrayBuilder
org.apache.commons.jexl3.JexlArithmetic$MapBuilder
org.apache.commons.jexl3.JexlArithmetic$SetBuilder
org.apache.commons.jexl3.JexlArithmetic$Uberspect
org.apache.commons.jexl3.JexlContext
org.apache.commons.jexl3.JexlContext$NamespaceFunctor
org.apache.commons.jexl3.JexlContext$NamespaceResolver
org.apache.commons.jexl3.JexlContext$ThreadLocal
org.apache.commons.jexl3.JexlEngine
org.apache.commons.jexl3.JexlEngine$Options
org.apache.commons.jexl3.JexlExpression
org.apache.commons.jexl3.JexlInfo$Detail
org.apache.commons.jexl3.JexlScript
org.apache.commons.jexl3.JxltEngine
org.apache.commons.jexl3.JxltEngine$Expression
org.apache.commons.jexl3.JxltEngine$Template
org.apache.commons.jexl3.JexlArithmetic
org.apache.commons.jexl3.JexlArithmetic$NullOperand
org.apache.commons.jexl3.JexlBuilder
org.apache.commons.jexl3.JexlEngine$1
org.apache.commons.jexl3.JexlEngine$2
org.apache.commons.jexl3.JexlEngine$3
org.apache.commons.jexl3.JexlEngine$4
org.apache.commons.jexl3.JexlException
org.apache.commons.jexl3.JexlException$1
org.apache.commons.jexl3.JexlException$Ambiguous
org.apache.commons.jexl3.JexlException$Assignment
org.apache.commons.jexl3.JexlException$Break
org.apache.commons.jexl3.JexlException$Cancel
org.apache.commons.jexl3.JexlException$Continue
org.apache.commons.jexl3.JexlException$Method
org.apache.commons.jexl3.JexlException$Operator
org.apache.commons.jexl3.JexlException$Parsing
org.apache.commons.jexl3.JexlException$Property
org.apache.commons.jexl3.JexlException$Return
org.apache.commons.jexl3.JexlException$Tokenization
org.apache.commons.jexl3.JexlException$Variable
org.apache.commons.jexl3.JexlInfo
org.apache.commons.jexl3.JexlOperator
org.apache.commons.jexl3.JxltEngine$Exception
org.apache.commons.jexl3.MapContext
org.apache.commons.jexl3.ObjectContext
org.apache.commons.jexl3.internal
org.apache.commons.jexl3.internal.introspection
org.apache.commons.jexl3.introspection
org.apache.commons.jexl3.parser
org.apache.commons.jexl3.scripting
java.io
java.lang
java.lang.reflect
java.math
java.net
java.nio.charset
java.util
java.util.concurrent
java.util.regex
org.apache.commons.jexl3.internal
org.apache.commons.jexl3.introspection
org.apache.commons.jexl3.parser
org.apache.commons.logging

org.apache.commons.jexl3.annotations

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 2 100.0% 67.0% 67.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.jexl3.annotations.NoJexl
None org.apache.commons.jexl3.internal.introspection
java.lang
java.lang.annotation

org.apache.commons.jexl3.internal

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 13 8.0% 87.0% 5.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.jexl3.internal.IntegerRange
org.apache.commons.jexl3.internal.LongRange
org.apache.commons.jexl3.internal.TemplateEngine$JexlBasedExpression
org.apache.commons.jexl3.internal.TemplateEngine$TemplateExpression
org.apache.commons.jexl3.internal.ArrayBuilder
org.apache.commons.jexl3.internal.AscIntegerIterator
org.apache.commons.jexl3.internal.AscLongIterator
org.apache.commons.jexl3.internal.Closure
org.apache.commons.jexl3.internal.Closure$1
org.apache.commons.jexl3.internal.Debugger
org.apache.commons.jexl3.internal.DescIntegerIterator
org.apache.commons.jexl3.internal.DescLongIterator
org.apache.commons.jexl3.internal.Engine
org.apache.commons.jexl3.internal.Engine$1
org.apache.commons.jexl3.internal.Engine$SoftCache
org.apache.commons.jexl3.internal.Engine$UberspectHolder
org.apache.commons.jexl3.internal.Engine$VarCollector
org.apache.commons.jexl3.internal.IntegerRange$Ascending
org.apache.commons.jexl3.internal.IntegerRange$Descending
org.apache.commons.jexl3.internal.Interpreter
org.apache.commons.jexl3.internal.Interpreter$ArithmeticFuncall
org.apache.commons.jexl3.internal.Interpreter$ContextFuncall
org.apache.commons.jexl3.internal.Interpreter$Funcall
org.apache.commons.jexl3.internal.LongRange$Ascending
org.apache.commons.jexl3.internal.LongRange$Descending
org.apache.commons.jexl3.internal.MapBuilder
org.apache.commons.jexl3.internal.Operators
org.apache.commons.jexl3.internal.Operators$1
org.apache.commons.jexl3.internal.Scope
org.apache.commons.jexl3.internal.Scope$Frame
org.apache.commons.jexl3.internal.Script
org.apache.commons.jexl3.internal.Script$1
org.apache.commons.jexl3.internal.Script$Curried
org.apache.commons.jexl3.internal.SetBuilder
org.apache.commons.jexl3.internal.TemplateDebugger
org.apache.commons.jexl3.internal.TemplateDebugger$1
org.apache.commons.jexl3.internal.TemplateEngine
org.apache.commons.jexl3.internal.TemplateEngine$1
org.apache.commons.jexl3.internal.TemplateEngine$2
org.apache.commons.jexl3.internal.TemplateEngine$Block
org.apache.commons.jexl3.internal.TemplateEngine$BlockType
org.apache.commons.jexl3.internal.TemplateEngine$CompositeExpression
org.apache.commons.jexl3.internal.TemplateEngine$ConstantExpression
org.apache.commons.jexl3.internal.TemplateEngine$DeferredExpression
org.apache.commons.jexl3.internal.TemplateEngine$ExpressionBuilder
org.apache.commons.jexl3.internal.TemplateEngine$ExpressionType
org.apache.commons.jexl3.internal.TemplateEngine$ImmediateExpression
org.apache.commons.jexl3.internal.TemplateEngine$NestedExpression
org.apache.commons.jexl3.internal.TemplateEngine$ParseState
org.apache.commons.jexl3.internal.TemplateInterpreter
org.apache.commons.jexl3.internal.TemplateScript
org.apache.commons.jexl3
org.apache.commons.jexl3.parser
java.io
java.lang
java.lang.ref
java.lang.reflect
java.nio.charset
java.util
java.util.concurrent
java.util.regex
org.apache.commons.jexl3
org.apache.commons.jexl3.internal.introspection
org.apache.commons.jexl3.introspection
org.apache.commons.jexl3.parser
org.apache.commons.logging

org.apache.commons.jexl3.internal.introspection

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 12 14.0% 92.0% 6.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.jexl3.internal.introspection.AbstractExecutor
org.apache.commons.jexl3.internal.introspection.AbstractExecutor$Get
org.apache.commons.jexl3.internal.introspection.AbstractExecutor$Method
org.apache.commons.jexl3.internal.introspection.AbstractExecutor$Set
org.apache.commons.jexl3.internal.introspection.MethodKey$Parameters
org.apache.commons.jexl3.internal.introspection.ArrayIterator
org.apache.commons.jexl3.internal.introspection.ArrayListWrapper
org.apache.commons.jexl3.internal.introspection.BooleanGetExecutor
org.apache.commons.jexl3.internal.introspection.ClassMap
org.apache.commons.jexl3.internal.introspection.ClassMap$1
org.apache.commons.jexl3.internal.introspection.ConstructorMethod
org.apache.commons.jexl3.internal.introspection.DuckGetExecutor
org.apache.commons.jexl3.internal.introspection.DuckSetExecutor
org.apache.commons.jexl3.internal.introspection.EnumerationIterator
org.apache.commons.jexl3.internal.introspection.FieldGetExecutor
org.apache.commons.jexl3.internal.introspection.FieldSetExecutor
org.apache.commons.jexl3.internal.introspection.IndexedType
org.apache.commons.jexl3.internal.introspection.IndexedType$1
org.apache.commons.jexl3.internal.introspection.IndexedType$IndexedContainer
org.apache.commons.jexl3.internal.introspection.Introspector
org.apache.commons.jexl3.internal.introspection.Introspector$CacheMiss
org.apache.commons.jexl3.internal.introspection.ListGetExecutor
org.apache.commons.jexl3.internal.introspection.ListSetExecutor
org.apache.commons.jexl3.internal.introspection.MapGetExecutor
org.apache.commons.jexl3.internal.introspection.MapSetExecutor
org.apache.commons.jexl3.internal.introspection.MethodExecutor
org.apache.commons.jexl3.internal.introspection.MethodKey
org.apache.commons.jexl3.internal.introspection.MethodKey$1
org.apache.commons.jexl3.internal.introspection.MethodKey$2
org.apache.commons.jexl3.internal.introspection.MethodKey$AmbiguousException
org.apache.commons.jexl3.internal.introspection.Permissions
org.apache.commons.jexl3.internal.introspection.PropertyGetExecutor
org.apache.commons.jexl3.internal.introspection.PropertySetExecutor
org.apache.commons.jexl3.internal.introspection.SandboxUberspect
org.apache.commons.jexl3.internal.introspection.Uberspect
org.apache.commons.jexl3.internal.introspection.Uberspect$1
org.apache.commons.jexl3.internal.introspection.Uberspect$ArithmeticUberspect
org.apache.commons.jexl3.internal
java.beans
java.lang
java.lang.ref
java.lang.reflect
java.util
java.util.concurrent
java.util.concurrent.atomic
java.util.concurrent.locks
org.apache.commons.jexl3
org.apache.commons.jexl3.annotations
org.apache.commons.jexl3.introspection
org.apache.commons.logging

org.apache.commons.jexl3.introspection

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 3 47.0% 43.0% 10.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.jexl3.introspection.JexlMethod
org.apache.commons.jexl3.introspection.JexlPropertyGet
org.apache.commons.jexl3.introspection.JexlPropertySet
org.apache.commons.jexl3.introspection.JexlSandbox$Names
org.apache.commons.jexl3.introspection.JexlUberspect
org.apache.commons.jexl3.introspection.JexlUberspect$PropertyResolver
org.apache.commons.jexl3.introspection.JexlUberspect$ResolverStrategy
org.apache.commons.jexl3.introspection.JexlSandbox
org.apache.commons.jexl3.introspection.JexlSandbox$1
org.apache.commons.jexl3.introspection.JexlSandbox$BlackSet
org.apache.commons.jexl3.introspection.JexlSandbox$Permissions
org.apache.commons.jexl3.introspection.JexlSandbox$WhiteSet
org.apache.commons.jexl3.introspection.JexlUberspect$1
org.apache.commons.jexl3.introspection.JexlUberspect$2
org.apache.commons.jexl3.introspection.JexlUberspect$JexlResolver
org.apache.commons.jexl3
org.apache.commons.jexl3.internal
org.apache.commons.jexl3.internal.introspection
org.apache.commons.jexl3.parser
java.lang
java.util
org.apache.commons.jexl3

org.apache.commons.jexl3.parser

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 8 9.0% 73.0% 19.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.jexl3.parser.JavaccError
org.apache.commons.jexl3.parser.JexlNode
org.apache.commons.jexl3.parser.JexlNode$Constant
org.apache.commons.jexl3.parser.JexlParser
org.apache.commons.jexl3.parser.Node
org.apache.commons.jexl3.parser.ParserConstants
org.apache.commons.jexl3.parser.ParserTreeConstants
org.apache.commons.jexl3.parser.ParserVisitor
org.apache.commons.jexl3.parser.ASTAddNode
org.apache.commons.jexl3.parser.ASTAmbiguous
org.apache.commons.jexl3.parser.ASTAndNode
org.apache.commons.jexl3.parser.ASTArguments
org.apache.commons.jexl3.parser.ASTArrayAccess
org.apache.commons.jexl3.parser.ASTArrayLiteral
org.apache.commons.jexl3.parser.ASTAssignment
org.apache.commons.jexl3.parser.ASTBitwiseAndNode
org.apache.commons.jexl3.parser.ASTBitwiseComplNode
org.apache.commons.jexl3.parser.ASTBitwiseOrNode
org.apache.commons.jexl3.parser.ASTBitwiseXorNode
org.apache.commons.jexl3.parser.ASTBlock
org.apache.commons.jexl3.parser.ASTBreak
org.apache.commons.jexl3.parser.ASTConstructorNode
org.apache.commons.jexl3.parser.ASTContinue
org.apache.commons.jexl3.parser.ASTDivNode
org.apache.commons.jexl3.parser.ASTEQNode
org.apache.commons.jexl3.parser.ASTERNode
org.apache.commons.jexl3.parser.ASTEWNode
org.apache.commons.jexl3.parser.ASTEmptyFunction
org.apache.commons.jexl3.parser.ASTEmptyMethod
org.apache.commons.jexl3.parser.ASTExtendedLiteral
org.apache.commons.jexl3.parser.ASTFalseNode
org.apache.commons.jexl3.parser.ASTForeachStatement
org.apache.commons.jexl3.parser.ASTFunctionNode
org.apache.commons.jexl3.parser.ASTGENode
org.apache.commons.jexl3.parser.ASTGTNode
org.apache.commons.jexl3.parser.ASTIdentifier
org.apache.commons.jexl3.parser.ASTIdentifierAccess
org.apache.commons.jexl3.parser.ASTIfStatement
org.apache.commons.jexl3.parser.ASTJexlLambda
org.apache.commons.jexl3.parser.ASTJexlScript
org.apache.commons.jexl3.parser.ASTJxltLiteral
org.apache.commons.jexl3.parser.ASTLENode
org.apache.commons.jexl3.parser.ASTLTNode
org.apache.commons.jexl3.parser.ASTMapEntry
org.apache.commons.jexl3.parser.ASTMapLiteral
org.apache.commons.jexl3.parser.ASTMethodNode
org.apache.commons.jexl3.parser.ASTModNode
org.apache.commons.jexl3.parser.ASTMulNode
org.apache.commons.jexl3.parser.ASTNENode
org.apache.commons.jexl3.parser.ASTNEWNode
org.apache.commons.jexl3.parser.ASTNRNode
org.apache.commons.jexl3.parser.ASTNSWNode
org.apache.commons.jexl3.parser.ASTNotNode
org.apache.commons.jexl3.parser.ASTNullLiteral
org.apache.commons.jexl3.parser.ASTNumberLiteral
org.apache.commons.jexl3.parser.ASTOrNode
org.apache.commons.jexl3.parser.ASTRangeNode
org.apache.commons.jexl3.parser.ASTReference
org.apache.commons.jexl3.parser.ASTReferenceExpression
org.apache.commons.jexl3.parser.ASTReturnStatement
org.apache.commons.jexl3.parser.ASTSWNode
org.apache.commons.jexl3.parser.ASTSetAddNode
org.apache.commons.jexl3.parser.ASTSetAndNode
org.apache.commons.jexl3.parser.ASTSetDivNode
org.apache.commons.jexl3.parser.ASTSetLiteral
org.apache.commons.jexl3.parser.ASTSetModNode
org.apache.commons.jexl3.parser.ASTSetMultNode
org.apache.commons.jexl3.parser.ASTSetOrNode
org.apache.commons.jexl3.parser.ASTSetSubNode
org.apache.commons.jexl3.parser.ASTSetXorNode
org.apache.commons.jexl3.parser.ASTSizeFunction
org.apache.commons.jexl3.parser.ASTSizeMethod
org.apache.commons.jexl3.parser.ASTStringLiteral
org.apache.commons.jexl3.parser.ASTSubNode
org.apache.commons.jexl3.parser.ASTTernaryNode
org.apache.commons.jexl3.parser.ASTTrueNode
org.apache.commons.jexl3.parser.ASTUnaryMinusNode
org.apache.commons.jexl3.parser.ASTVar
org.apache.commons.jexl3.parser.ASTWhileStatement
org.apache.commons.jexl3.parser.JJTParserState
org.apache.commons.jexl3.parser.NumberParser
org.apache.commons.jexl3.parser.ParseException
org.apache.commons.jexl3.parser.Parser
org.apache.commons.jexl3.parser.Parser$1
org.apache.commons.jexl3.parser.Parser$JJCalls
org.apache.commons.jexl3.parser.Parser$LookaheadSuccess
org.apache.commons.jexl3.parser.ParserTokenManager
org.apache.commons.jexl3.parser.SimpleCharStream
org.apache.commons.jexl3.parser.SimpleNode
org.apache.commons.jexl3.parser.StringParser
org.apache.commons.jexl3.parser.Token
org.apache.commons.jexl3.parser.TokenMgrError
org.apache.commons.jexl3
org.apache.commons.jexl3.internal
org.apache.commons.jexl3.scripting
java.io
java.lang
java.math
java.text
java.util
org.apache.commons.jexl3
org.apache.commons.jexl3.internal
org.apache.commons.jexl3.introspection

org.apache.commons.jexl3.scripting

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 8 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.commons.jexl3.scripting.JexlScriptEngine
org.apache.commons.jexl3.scripting.JexlScriptEngine$1
org.apache.commons.jexl3.scripting.JexlScriptEngine$EngineSingletonHolder
org.apache.commons.jexl3.scripting.JexlScriptEngine$FactorySingletonHolder
org.apache.commons.jexl3.scripting.JexlScriptEngine$JexlCompiledScript
org.apache.commons.jexl3.scripting.JexlScriptEngine$JexlContextWrapper
org.apache.commons.jexl3.scripting.JexlScriptEngine$JexlScriptObject
org.apache.commons.jexl3.scripting.JexlScriptEngineFactory
org.apache.commons.jexl3.scripting.Main
None java.io
java.lang
java.nio.charset
java.util
javax.script
org.apache.commons.jexl3
org.apache.commons.jexl3.parser
org.apache.commons.logging

Cycles

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

Package Package Dependencies
org.apache.commons.jexl3 org.apache.commons.jexl3.parser
org.apache.commons.jexl3.internal
org.apache.commons.jexl3
org.apache.commons.jexl3.internal org.apache.commons.jexl3
org.apache.commons.jexl3.parser
org.apache.commons.jexl3.internal
org.apache.commons.jexl3.internal.introspection org.apache.commons.jexl3.introspection
org.apache.commons.jexl3
org.apache.commons.jexl3.parser
org.apache.commons.jexl3.internal
org.apache.commons.jexl3
org.apache.commons.jexl3.introspection org.apache.commons.jexl3
org.apache.commons.jexl3.parser
org.apache.commons.jexl3.internal
org.apache.commons.jexl3
org.apache.commons.jexl3.parser org.apache.commons.jexl3.internal
org.apache.commons.jexl3
org.apache.commons.jexl3.parser
org.apache.commons.jexl3.scripting org.apache.commons.jexl3
org.apache.commons.jexl3.parser
org.apache.commons.jexl3.internal
org.apache.commons.jexl3

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.