Apache Commons logo Apache Commons Geometry

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.geometry.euclidean 8 0 8 5 8 100.0% 62.0% 62.0% 1
org.apache.commons.geometry.euclidean.internal 4 3 1 7 6 25.0% 46.0% 29.0% 1
org.apache.commons.geometry.euclidean.oned 14 14 0 3 10 0.0% 77.0% 23.0% 1
org.apache.commons.geometry.euclidean.threed 28 19 9 5 15 32.0% 75.0% 7.0% 1
org.apache.commons.geometry.euclidean.threed.line 11 8 3 1 8 27.000002% 89.0% 16.0% 1
org.apache.commons.geometry.euclidean.threed.mesh 9 5 4 1 7 44.0% 88.0% 32.0% 1
org.apache.commons.geometry.euclidean.threed.rotation 5 4 1 2 5 20.0% 71.0% 9.0% 1
org.apache.commons.geometry.euclidean.threed.shape 5 5 0 1 10 0.0% 91.0% 9.0% 1
org.apache.commons.geometry.euclidean.twod 23 20 3 4 15 13.0% 79.0% 8.0% 1
org.apache.commons.geometry.euclidean.twod.path 8 6 2 1 8 25.0% 89.0% 14.0% 1
org.apache.commons.geometry.euclidean.twod.rotation 1 1 0 1 5 0.0% 83.0% 17.0% 1
org.apache.commons.geometry.euclidean.twod.shape 4 4 0 1 10 0.0% 91.0% 9.0% 1

Packages

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

org.apache.commons.geometry.euclidean

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 8 100.0% 62.0% 62.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.geometry.euclidean.AbstractAffineTransformMatrix
org.apache.commons.geometry.euclidean.AbstractBounds
org.apache.commons.geometry.euclidean.AbstractLinecastPoint
org.apache.commons.geometry.euclidean.AbstractNSphere
org.apache.commons.geometry.euclidean.EuclideanTransform
org.apache.commons.geometry.euclidean.EuclideanVector
org.apache.commons.geometry.euclidean.EuclideanVectorSum
org.apache.commons.geometry.euclidean.MultiDimensionalEuclideanVector
None org.apache.commons.geometry.euclidean.oned
org.apache.commons.geometry.euclidean.threed
org.apache.commons.geometry.euclidean.threed.rotation
org.apache.commons.geometry.euclidean.twod
org.apache.commons.geometry.euclidean.twod.rotation
java.lang
java.util
java.util.function
org.apache.commons.geometry.core
org.apache.commons.geometry.core.partitioning
org.apache.commons.geometry.euclidean.internal
org.apache.commons.geometry.euclidean.oned
org.apache.commons.numbers.core

org.apache.commons.geometry.euclidean.internal

Afferent Couplings Efferent Couplings Abstractness Instability Distance
7 6 25.0% 46.0% 29.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.geometry.euclidean.internal.AbstractPathConnector$ConnectableElement
org.apache.commons.geometry.euclidean.internal.EuclideanUtils
org.apache.commons.geometry.euclidean.internal.Matrices
org.apache.commons.geometry.euclidean.internal.Vectors
org.apache.commons.geometry.euclidean
org.apache.commons.geometry.euclidean.oned
org.apache.commons.geometry.euclidean.threed
org.apache.commons.geometry.euclidean.threed.mesh
org.apache.commons.geometry.euclidean.twod
org.apache.commons.geometry.euclidean.twod.path
org.apache.commons.geometry.euclidean.twod.rotation
java.lang
java.util
java.util.function
org.apache.commons.geometry.core
org.apache.commons.geometry.euclidean.threed
org.apache.commons.numbers.core

org.apache.commons.geometry.euclidean.oned

Afferent Couplings Efferent Couplings Abstractness Instability Distance
3 10 0.0% 77.0% 23.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.commons.geometry.euclidean.oned.AffineTransformMatrix1D
org.apache.commons.geometry.euclidean.oned.Interval
org.apache.commons.geometry.euclidean.oned.OrientedPoint
org.apache.commons.geometry.euclidean.oned.OrientedPoint$OrientedPointConvexSubset
org.apache.commons.geometry.euclidean.oned.OrientedPoints
org.apache.commons.geometry.euclidean.oned.RegionBSPTree1D$1
org.apache.commons.geometry.euclidean.oned.RegionBSPTree1D$BoundaryPair
org.apache.commons.geometry.euclidean.oned.RegionBSPTree1D$BoundaryProjector1D
org.apache.commons.geometry.euclidean.oned.RegionBSPTree1D$NodeRegionVisitor
org.apache.commons.geometry.euclidean.oned.RegionBSPTree1D$RegionNode1D
org.apache.commons.geometry.euclidean.oned.RegionBSPTree1D$RegionSizePropertiesVisitor
org.apache.commons.geometry.euclidean.oned.Vector1D$1
org.apache.commons.geometry.euclidean.oned.Vector1D$Sum
org.apache.commons.geometry.euclidean.oned.Vector1D$Unit
org.apache.commons.geometry.euclidean
org.apache.commons.geometry.euclidean.threed.line
org.apache.commons.geometry.euclidean.twod
java.lang
java.text
java.util
java.util.function
org.apache.commons.geometry.core
org.apache.commons.geometry.core.partitioning
org.apache.commons.geometry.core.partitioning.bsp
org.apache.commons.geometry.euclidean
org.apache.commons.geometry.euclidean.internal
org.apache.commons.numbers.core

org.apache.commons.geometry.euclidean.threed

Afferent Couplings Efferent Couplings Abstractness Instability Distance
5 15 32.0% 75.0% 7.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.geometry.euclidean.threed.AbstractConvexPolygon3D
org.apache.commons.geometry.euclidean.threed.AbstractEmbeddedRegionPlaneSubset
org.apache.commons.geometry.euclidean.threed.AbstractPlaneSubset
org.apache.commons.geometry.euclidean.threed.ConvexPolygon3D
org.apache.commons.geometry.euclidean.threed.PlaneConvexSubset
org.apache.commons.geometry.euclidean.threed.PlaneConvexSubset$Embedded
org.apache.commons.geometry.euclidean.threed.PlaneSubset
org.apache.commons.geometry.euclidean.threed.PlaneSubset$Embedded
org.apache.commons.geometry.euclidean.threed.Triangle3D
org.apache.commons.geometry.euclidean.threed.BoundaryList3D
org.apache.commons.geometry.euclidean.threed.BoundarySourceBoundsBuilder3D
org.apache.commons.geometry.euclidean.threed.Bounds3D
org.apache.commons.geometry.euclidean.threed.Bounds3D$1
org.apache.commons.geometry.euclidean.threed.Bounds3D$Builder
org.apache.commons.geometry.euclidean.threed.EmbeddingPlane
org.apache.commons.geometry.euclidean.threed.EmbeddingPlane$SubspaceTransform
org.apache.commons.geometry.euclidean.threed.Plane
org.apache.commons.geometry.euclidean.threed.Planes$PlaneRegionExtruder
org.apache.commons.geometry.euclidean.threed.RegionBSPTree3D$1
org.apache.commons.geometry.euclidean.threed.RegionBSPTree3D$BoundaryProjector3D
org.apache.commons.geometry.euclidean.threed.RegionBSPTree3D$LinecastVisitor
org.apache.commons.geometry.euclidean.threed.RegionBSPTree3D$RegionNode3D
org.apache.commons.geometry.euclidean.threed.RegionBSPTree3D$RegionSizePropertiesVisitor
org.apache.commons.geometry.euclidean.threed.SimpleTriangle3D
org.apache.commons.geometry.euclidean.threed.Vector3D$1
org.apache.commons.geometry.euclidean.threed.Vector3D$Sum
org.apache.commons.geometry.euclidean.threed.Vector3D$Unit
org.apache.commons.geometry.euclidean.threed.VertexListConvexPolygon3D
org.apache.commons.geometry.euclidean.internal
org.apache.commons.geometry.euclidean.threed.line
org.apache.commons.geometry.euclidean.threed.mesh
org.apache.commons.geometry.euclidean.threed.rotation
org.apache.commons.geometry.euclidean.threed.shape
java.lang
java.util
java.util.stream
org.apache.commons.geometry.core
org.apache.commons.geometry.core.internal
org.apache.commons.geometry.core.partitioning
org.apache.commons.geometry.core.partitioning.bsp
org.apache.commons.geometry.euclidean
org.apache.commons.geometry.euclidean.internal
org.apache.commons.geometry.euclidean.threed.line
org.apache.commons.geometry.euclidean.threed.rotation
org.apache.commons.geometry.euclidean.threed.shape
org.apache.commons.geometry.euclidean.twod
org.apache.commons.geometry.euclidean.twod.path
org.apache.commons.numbers.core

org.apache.commons.geometry.euclidean.threed.line

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 8 27.000002% 89.0% 16.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.geometry.euclidean.threed.line.LineConvexSubset3D
org.apache.commons.geometry.euclidean.threed.line.LineSubset3D
org.apache.commons.geometry.euclidean.threed.line.Linecastable3D
org.apache.commons.geometry.euclidean.threed.line.EmbeddedTreeLineSubset3D
org.apache.commons.geometry.euclidean.threed.line.Line3D
org.apache.commons.geometry.euclidean.threed.line.Line3D$SubspaceTransform
org.apache.commons.geometry.euclidean.threed.line.LineSpanningSubset3D
org.apache.commons.geometry.euclidean.threed.line.Lines3D
org.apache.commons.geometry.euclidean.threed.line.Ray3D
org.apache.commons.geometry.euclidean.threed.line.ReverseRay3D
org.apache.commons.geometry.euclidean.threed.line.Segment3D
org.apache.commons.geometry.euclidean.threed
java.lang
java.text
java.util
org.apache.commons.geometry.core
org.apache.commons.geometry.core.partitioning
org.apache.commons.geometry.euclidean.oned
org.apache.commons.geometry.euclidean.threed
org.apache.commons.numbers.core

org.apache.commons.geometry.euclidean.threed.mesh

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 7 44.0% 88.0% 32.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.geometry.euclidean.threed.mesh.Mesh
org.apache.commons.geometry.euclidean.threed.mesh.Mesh$Face
org.apache.commons.geometry.euclidean.threed.mesh.TriangleMesh
org.apache.commons.geometry.euclidean.threed.mesh.TriangleMesh$Face
org.apache.commons.geometry.euclidean.threed.mesh.SimpleTriangleMesh$1
org.apache.commons.geometry.euclidean.threed.mesh.SimpleTriangleMesh$Builder
org.apache.commons.geometry.euclidean.threed.mesh.SimpleTriangleMesh$FaceIterator
org.apache.commons.geometry.euclidean.threed.mesh.SimpleTriangleMesh$FuzzyVectorComparator
org.apache.commons.geometry.euclidean.threed.mesh.SimpleTriangleMesh$SimpleTriangleFace
org.apache.commons.geometry.euclidean.threed.shape
java.lang
java.util
java.util.function
org.apache.commons.geometry.core
org.apache.commons.geometry.euclidean.internal
org.apache.commons.geometry.euclidean.threed
org.apache.commons.numbers.core

org.apache.commons.geometry.euclidean.threed.rotation

Afferent Couplings Efferent Couplings Abstractness Instability Distance
2 5 20.0% 71.0% 9.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.geometry.euclidean.threed.rotation.Rotation3D
org.apache.commons.geometry.euclidean.threed.rotation.AxisAngleSequence
org.apache.commons.geometry.euclidean.threed.rotation.AxisReferenceFrame
org.apache.commons.geometry.euclidean.threed.rotation.AxisSequence
org.apache.commons.geometry.euclidean.threed.rotation.AxisSequenceType
org.apache.commons.geometry.euclidean.threed
org.apache.commons.geometry.euclidean.threed.shape
java.lang
java.util
org.apache.commons.geometry.core
org.apache.commons.geometry.euclidean
org.apache.commons.geometry.euclidean.threed

org.apache.commons.geometry.euclidean.threed.shape

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 10 0.0% 91.0% 9.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.commons.geometry.euclidean.threed.shape.Parallelepiped
org.apache.commons.geometry.euclidean.threed.shape.Parallelepiped$1
org.apache.commons.geometry.euclidean.threed.shape.Parallelepiped$Builder
org.apache.commons.geometry.euclidean.threed.shape.Sphere$SphereMeshApproximationBuilder
org.apache.commons.geometry.euclidean.threed.shape.Sphere$SphereTreeApproximationBuilder
org.apache.commons.geometry.euclidean.threed
java.lang
java.text
java.util
java.util.stream
org.apache.commons.geometry.core
org.apache.commons.geometry.core.partitioning.bsp
org.apache.commons.geometry.euclidean.threed
org.apache.commons.geometry.euclidean.threed.mesh
org.apache.commons.geometry.euclidean.threed.rotation
org.apache.commons.numbers.core

org.apache.commons.geometry.euclidean.twod

Afferent Couplings Efferent Couplings Abstractness Instability Distance
4 15 13.0% 79.0% 8.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.geometry.euclidean.twod.LineConvexSubset
org.apache.commons.geometry.euclidean.twod.LineSubset
org.apache.commons.geometry.euclidean.twod.Linecastable2D
org.apache.commons.geometry.euclidean.twod.BoundaryList2D
org.apache.commons.geometry.euclidean.twod.BoundarySourceBoundsBuilder2D
org.apache.commons.geometry.euclidean.twod.Bounds2D
org.apache.commons.geometry.euclidean.twod.Bounds2D$1
org.apache.commons.geometry.euclidean.twod.Bounds2D$Builder
org.apache.commons.geometry.euclidean.twod.EmbeddedTreeLineSubset
org.apache.commons.geometry.euclidean.twod.Line
org.apache.commons.geometry.euclidean.twod.Line$SubspaceTransform
org.apache.commons.geometry.euclidean.twod.LineSpanningSubset
org.apache.commons.geometry.euclidean.twod.Lines
org.apache.commons.geometry.euclidean.twod.Ray
org.apache.commons.geometry.euclidean.twod.RegionBSPTree2D$1
org.apache.commons.geometry.euclidean.twod.RegionBSPTree2D$BoundaryProjector2D
org.apache.commons.geometry.euclidean.twod.RegionBSPTree2D$LinecastVisitor
org.apache.commons.geometry.euclidean.twod.RegionBSPTree2D$RegionNode2D
org.apache.commons.geometry.euclidean.twod.ReverseRay
org.apache.commons.geometry.euclidean.twod.Segment
org.apache.commons.geometry.euclidean.twod.Vector2D$1
org.apache.commons.geometry.euclidean.twod.Vector2D$Sum
org.apache.commons.geometry.euclidean.twod.Vector2D$Unit
org.apache.commons.geometry.euclidean.threed
org.apache.commons.geometry.euclidean.twod.path
org.apache.commons.geometry.euclidean.twod.rotation
org.apache.commons.geometry.euclidean.twod.shape
java.lang
java.text
java.util
java.util.function
java.util.stream
org.apache.commons.geometry.core
org.apache.commons.geometry.core.internal
org.apache.commons.geometry.core.partitioning
org.apache.commons.geometry.core.partitioning.bsp
org.apache.commons.geometry.euclidean
org.apache.commons.geometry.euclidean.internal
org.apache.commons.geometry.euclidean.oned
org.apache.commons.geometry.euclidean.twod.shape
org.apache.commons.numbers.angle
org.apache.commons.numbers.core

org.apache.commons.geometry.euclidean.twod.path

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 8 25.0% 89.0% 14.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
org.apache.commons.geometry.euclidean.twod.path.AbstractLinePathConnector
org.apache.commons.geometry.euclidean.twod.path.InteriorAngleLinePathConnector
org.apache.commons.geometry.euclidean.twod.path.AbstractLinePathConnector$ConnectableLineSubset
org.apache.commons.geometry.euclidean.twod.path.InteriorAngleLinePathConnector$Maximize
org.apache.commons.geometry.euclidean.twod.path.InteriorAngleLinePathConnector$Minimize
org.apache.commons.geometry.euclidean.twod.path.LinePath$1
org.apache.commons.geometry.euclidean.twod.path.LinePath$Builder
org.apache.commons.geometry.euclidean.twod.path.LinePath$SimplifiedLinePath
org.apache.commons.geometry.euclidean.threed
java.lang
java.text
java.util
java.util.function
org.apache.commons.geometry.euclidean.internal
org.apache.commons.geometry.euclidean.twod
org.apache.commons.numbers.angle
org.apache.commons.numbers.core

org.apache.commons.geometry.euclidean.twod.rotation

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 5 0.0% 83.0% 17.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.commons.geometry.euclidean.twod.rotation.Rotation2D
org.apache.commons.geometry.euclidean.twod.shape
java.lang
org.apache.commons.geometry.core
org.apache.commons.geometry.euclidean
org.apache.commons.geometry.euclidean.internal
org.apache.commons.geometry.euclidean.twod

org.apache.commons.geometry.euclidean.twod.shape

Afferent Couplings Efferent Couplings Abstractness Instability Distance
1 10 0.0% 91.0% 9.0%
Abstract Classes Concrete Classes Used by Packages Uses Packages
None org.apache.commons.geometry.euclidean.twod.shape.Circle$CircleApproximationBuilder
org.apache.commons.geometry.euclidean.twod.shape.Parallelogram
org.apache.commons.geometry.euclidean.twod.shape.Parallelogram$1
org.apache.commons.geometry.euclidean.twod.shape.Parallelogram$Builder
org.apache.commons.geometry.euclidean.twod
java.lang
java.text
java.util
java.util.stream
org.apache.commons.geometry.core
org.apache.commons.geometry.core.partitioning.bsp
org.apache.commons.geometry.euclidean.twod
org.apache.commons.geometry.euclidean.twod.rotation
org.apache.commons.numbers.angle
org.apache.commons.numbers.core

Cycles

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

Package Package Dependencies
org.apache.commons.geometry.euclidean org.apache.commons.geometry.euclidean.oned
org.apache.commons.geometry.euclidean
org.apache.commons.geometry.euclidean.internal org.apache.commons.geometry.euclidean.threed
org.apache.commons.geometry.euclidean.internal
org.apache.commons.geometry.euclidean.oned org.apache.commons.geometry.euclidean
org.apache.commons.geometry.euclidean.oned
org.apache.commons.geometry.euclidean.threed org.apache.commons.geometry.euclidean.internal
org.apache.commons.geometry.euclidean.threed
org.apache.commons.geometry.euclidean.threed.line org.apache.commons.geometry.euclidean.threed
org.apache.commons.geometry.euclidean.internal
org.apache.commons.geometry.euclidean.threed
org.apache.commons.geometry.euclidean.threed.mesh org.apache.commons.geometry.euclidean.threed
org.apache.commons.geometry.euclidean.internal
org.apache.commons.geometry.euclidean.threed
org.apache.commons.geometry.euclidean.threed.rotation org.apache.commons.geometry.euclidean.threed
org.apache.commons.geometry.euclidean.internal
org.apache.commons.geometry.euclidean.threed
org.apache.commons.geometry.euclidean.threed.shape org.apache.commons.geometry.euclidean.threed
org.apache.commons.geometry.euclidean.internal
org.apache.commons.geometry.euclidean.threed
org.apache.commons.geometry.euclidean.twod org.apache.commons.geometry.euclidean
org.apache.commons.geometry.euclidean.oned
org.apache.commons.geometry.euclidean
org.apache.commons.geometry.euclidean.twod.path org.apache.commons.geometry.euclidean.internal
org.apache.commons.geometry.euclidean.threed
org.apache.commons.geometry.euclidean.internal
org.apache.commons.geometry.euclidean.twod.rotation org.apache.commons.geometry.euclidean
org.apache.commons.geometry.euclidean.oned
org.apache.commons.geometry.euclidean
org.apache.commons.geometry.euclidean.twod.shape org.apache.commons.geometry.euclidean.twod.rotation
org.apache.commons.geometry.euclidean
org.apache.commons.geometry.euclidean.oned
org.apache.commons.geometry.euclidean

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.