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.shardingsphere.sql.parser.autogen 142 141 1 2 7 1.0% 78.0% 22.0% 1
org.apache.shardingsphere.sql.parser.sql92.parser 3 3 0 0 7 0.0% 100.0% 0.0% 1
org.apache.shardingsphere.sql.parser.sql92.visitor.statement 1 1 0 1 3 0.0% 75.0% 25.0% 1
org.apache.shardingsphere.sql.parser.sql92.visitor.statement.type 3 3 0 1 9 0.0% 90.0% 10.0% 1

Packages

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

org.apache.shardingsphere.sql.parser.autogen

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 7 1.0% 78.0% 22.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementVisitor
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementBaseVisitor
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementLexer
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$AddColumnSpecificationContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$AddConstraintSpecificationContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$AggregationFunctionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$AggregationFunctionNameContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$AliasContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$AlterDefinitionClauseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$AlterTableContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$AndOperatorContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$AssignmentContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$AssignmentValueContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$AssignmentValuesContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$BitExprContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$BitValueLiteralsContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$BlobValueContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$BooleanLiteralsContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$BooleanPrimaryContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$CaseElseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$CaseExpressionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$CaseWhenContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$CastFunctionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$CharacterSetContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$CharacterSetNameContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$CheckConstraintDefinitionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$CollateClauseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ColumnDefinitionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ColumnNameContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ColumnNamesContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$CombineClauseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$CommitContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ComparisonOperatorContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ConstraintDefinitionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ConstraintNameContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ConvertFunctionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$CreateDatabaseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$CreateDatabaseSpecification_Context
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$CreateDefinitionClauseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$CreateDefinitionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$CreateLikeClauseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$CreateTableContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$CreateTableSpecificationContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$CreateViewContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$DataTypeContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$DataTypeLengthContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$DataTypeNameContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$DataTypeOptionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$DateTimeLiteralsContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$DeleteContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$DistinctContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$DropBehaviourContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$DropColumnSpecificationContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$DropConstraintSpecificationContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$DropDatabaseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$DropTableContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$DropViewContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$DuplicateSpecificationContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$EscapedTableReferenceContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ExecuteContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ExprContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ExtractFunctionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ForeignKeyOptionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$FromClauseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$FunctionCallContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$GrantContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$GranteeContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$GroupByClauseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$HavingClauseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$HexadecimalLiteralsContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$IdentifierContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$IgnoredIdentifierContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$InsertContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$InsertSelectClauseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$InsertValuesClauseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$IntervalExpressionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$IntervalUnitContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$JoinSpecificationContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$JoinedTableContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$KeyPartContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$KeyPartsContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$LevelOfIsolationContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$LimitClauseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$LimitOffsetContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$LimitRowCountContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$LiteralsContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$MatchExpressionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ModifyColumnSpecificationContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$NameContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$NotOperatorContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$NullValueLiteralsContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$NumberLiteralsContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ObjectTypeContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$OnObjectClauseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$OrOperatorContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$OrderByClauseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$OrderByItemContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$OwnerContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ParameterMarkerContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$PositionFunctionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$PredicateContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$PrimaryKeyContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$PrimaryKeyOptionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$PrivilegeClauseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$PrivilegeLevelContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$PrivilegeTypeContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$PrivilegesContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ProjectionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ProjectionsContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$QualifiedShorthandContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ReferenceDefinitionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ReferenceOptionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$RegularFunctionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$RegularFunctionNameContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$RevokeContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$RollbackContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$SchemaNameContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$SelectClauseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$SelectContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$SelectSpecificationContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$SetAssignmentsClauseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$SetTransactionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$SimpleExprContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$SingleTableClauseContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$SpecialFunctionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$StringLiteralsContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$SubqueryContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$SubstringFunctionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$TableFactorContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$TableNameContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$TableNamesContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$TableReferenceContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$TableReferencesContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$TrimFunctionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$UniqueOptionContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$UnqualifiedShorthandContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$UnreservedWordContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$UpdateContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$VariableContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$ViewNameContext
org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser$WhereClauseContext
org.apache.shardingsphere.sql.parser.sql92.parser
org.apache.shardingsphere.sql.parser.sql92.visitor.statement.type
java.lang
java.util
org.antlr.v4.runtime
org.antlr.v4.runtime.atn
org.antlr.v4.runtime.dfa
org.antlr.v4.runtime.misc
org.antlr.v4.runtime.tree

org.apache.shardingsphere.sql.parser.sql92.parser

Afferent Couplings Efferent Couplings Abstractness Instability Distance
0 7 0.0% 100.0% 0.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.shardingsphere.sql.parser.sql92.parser.SQL92Lexer
org.apache.shardingsphere.sql.parser.sql92.parser.SQL92Parser
org.apache.shardingsphere.sql.parser.sql92.parser.SQL92ParserFacade
None java.lang
org.antlr.v4.runtime
org.apache.shardingsphere.sql.parser.api
org.apache.shardingsphere.sql.parser.api.parser
org.apache.shardingsphere.sql.parser.autogen
org.apache.shardingsphere.sql.parser.core
org.apache.shardingsphere.sql.parser.spi

org.apache.shardingsphere.sql.parser.sql92.visitor.statement

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 3 0.0% 75.0% 25.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.shardingsphere.sql.parser.sql92.visitor.statement.SQL92StatementVisitorFacade
org.apache.shardingsphere.sql.parser.sql92.visitor.statement.type
java.lang
org.apache.shardingsphere.sql.parser.spi
org.apache.shardingsphere.sql.parser.sql92.visitor.statement.type

org.apache.shardingsphere.sql.parser.sql92.visitor.statement.type

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 9 0.0% 90.0% 10.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.shardingsphere.sql.parser.sql92.visitor.statement.type.SQL92DALStatementVisitor
org.apache.shardingsphere.sql.parser.sql92.visitor.statement.type.SQL92DCLStatementVisitor
org.apache.shardingsphere.sql.parser.sql92.visitor.statement.type.SQL92TCLStatementVisitor
org.apache.shardingsphere.sql.parser.sql92.visitor.statement
java.lang
java.util
org.apache.shardingsphere.sql.parser.api
org.apache.shardingsphere.sql.parser.api.visitor.statement.type
org.apache.shardingsphere.sql.parser.autogen
org.apache.shardingsphere.sql.parser.sql92.visitor.statement
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
org.apache.shardingsphere.sql.parser.statement.sql92.dcl
org.apache.shardingsphere.sql.parser.statement.sql92.tcl

Cycles

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

Package Package Dependencies
org.apache.shardingsphere.sql.parser.sql92.visitor.statement org.apache.shardingsphere.sql.parser.sql92.visitor.statement.type
org.apache.shardingsphere.sql.parser.sql92.visitor.statement
org.apache.shardingsphere.sql.parser.sql92.visitor.statement.type org.apache.shardingsphere.sql.parser.sql92.visitor.statement
org.apache.shardingsphere.sql.parser.sql92.visitor.statement.type

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.