Package | TC | CC | AC | Ca | Ce | A | I | D | V |
---|---|---|---|---|---|---|---|---|---|
org.apache.commons.functor | 13 | 0 | 13 | 8 | 1 | 100.0% | 11.0% | 11.0% | 1 |
org.apache.commons.functor.adapter | 36 | 36 | 0 | 4 | 3 | 0.0% | 43.0% | 57.0% | 1 |
org.apache.commons.functor.core | 14 | 14 | 0 | 2 | 4 | 0.0% | 67.0% | 33.0% | 1 |
org.apache.commons.functor.core.algorithm | 19 | 18 | 1 | 0 | 6 | 5.0% | 100.0% | 5.0% | 1 |
org.apache.commons.functor.core.collection | 10 | 10 | 0 | 0 | 8 | 0.0% | 100.0% | 0.0% | 1 |
org.apache.commons.functor.core.comparator | 11 | 11 | 0 | 0 | 5 | 0.0% | 100.0% | 0.0% | 1 |
org.apache.commons.functor.core.composite | 54 | 50 | 4 | 3 | 6 | 7.0% | 67.0% | 26.0% | 1 |
org.apache.commons.functor.generator | 14 | 12 | 2 | 2 | 5 | 14.0% | 71.0% | 14.0% | 1 |
org.apache.commons.functor.generator.util | 5 | 5 | 0 | 1 | 4 | 0.0% | 80.0% | 20.0% | 1 |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
8 | 1 | 100.0% | 11.0% | 11.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.functor.BinaryFunction org.apache.commons.functor.BinaryFunctor org.apache.commons.functor.BinaryPredicate org.apache.commons.functor.BinaryProcedure org.apache.commons.functor.Function org.apache.commons.functor.Functor org.apache.commons.functor.NullaryFunctor org.apache.commons.functor.Predicate org.apache.commons.functor.Procedure org.apache.commons.functor.UnaryFunction org.apache.commons.functor.UnaryFunctor org.apache.commons.functor.UnaryPredicate org.apache.commons.functor.UnaryProcedure | None | org.apache.commons.functor.adapter org.apache.commons.functor.core org.apache.commons.functor.core.algorithm org.apache.commons.functor.core.collection org.apache.commons.functor.core.comparator org.apache.commons.functor.core.composite org.apache.commons.functor.generator org.apache.commons.functor.generator.util | java.lang |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
4 | 3 | 0.0% | 43.0% | 57.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.commons.functor.adapter.BinaryFunctionBinaryPredicate org.apache.commons.functor.adapter.BinaryFunctionBinaryProcedure org.apache.commons.functor.adapter.BinaryFunctionUnaryFunction org.apache.commons.functor.adapter.BinaryPredicateBinaryFunction org.apache.commons.functor.adapter.BinaryPredicateUnaryPredicate org.apache.commons.functor.adapter.BinaryProcedureBinaryFunction org.apache.commons.functor.adapter.BinaryProcedureUnaryProcedure org.apache.commons.functor.adapter.BoundFunction org.apache.commons.functor.adapter.BoundPredicate org.apache.commons.functor.adapter.BoundProcedure org.apache.commons.functor.adapter.FullyBoundFunction org.apache.commons.functor.adapter.FullyBoundPredicate org.apache.commons.functor.adapter.FullyBoundProcedure org.apache.commons.functor.adapter.FunctionPredicate org.apache.commons.functor.adapter.FunctionProcedure org.apache.commons.functor.adapter.FunctionUnaryFunction org.apache.commons.functor.adapter.IgnoreLeftFunction org.apache.commons.functor.adapter.IgnoreLeftPredicate org.apache.commons.functor.adapter.IgnoreLeftProcedure org.apache.commons.functor.adapter.IgnoreRightFunction org.apache.commons.functor.adapter.IgnoreRightPredicate org.apache.commons.functor.adapter.IgnoreRightProcedure org.apache.commons.functor.adapter.LeftBoundFunction org.apache.commons.functor.adapter.LeftBoundPredicate org.apache.commons.functor.adapter.LeftBoundProcedure org.apache.commons.functor.adapter.PredicateFunction org.apache.commons.functor.adapter.PredicateUnaryPredicate org.apache.commons.functor.adapter.ProcedureFunction org.apache.commons.functor.adapter.ProcedureUnaryProcedure org.apache.commons.functor.adapter.RightBoundFunction org.apache.commons.functor.adapter.RightBoundPredicate org.apache.commons.functor.adapter.RightBoundProcedure org.apache.commons.functor.adapter.UnaryFunctionUnaryPredicate org.apache.commons.functor.adapter.UnaryFunctionUnaryProcedure org.apache.commons.functor.adapter.UnaryPredicateUnaryFunction org.apache.commons.functor.adapter.UnaryProcedureUnaryFunction | org.apache.commons.functor.core org.apache.commons.functor.core.collection org.apache.commons.functor.core.comparator org.apache.commons.functor.core.composite | java.io java.lang org.apache.commons.functor |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 4 | 0.0% | 67.0% | 33.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.commons.functor.core.Constant org.apache.commons.functor.core.Identity org.apache.commons.functor.core.IsEqual org.apache.commons.functor.core.IsInstance org.apache.commons.functor.core.IsNotEqual org.apache.commons.functor.core.IsNotNull org.apache.commons.functor.core.IsNotSame org.apache.commons.functor.core.IsNull org.apache.commons.functor.core.IsSame org.apache.commons.functor.core.LeftIdentity org.apache.commons.functor.core.Limit org.apache.commons.functor.core.NoOp org.apache.commons.functor.core.Offset org.apache.commons.functor.core.RightIdentity | org.apache.commons.functor.core.collection org.apache.commons.functor.core.composite | java.io java.lang org.apache.commons.functor org.apache.commons.functor.adapter |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 6 | 5.0% | 100.0% | 5.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.functor.core.algorithm.PredicatedLoop | org.apache.commons.functor.core.algorithm.DoUntil org.apache.commons.functor.core.algorithm.DoWhile org.apache.commons.functor.core.algorithm.FindWithinGenerator org.apache.commons.functor.core.algorithm.FindWithinGenerator$FindProcedure org.apache.commons.functor.core.algorithm.FoldLeft org.apache.commons.functor.core.algorithm.FoldLeft$FoldLeftHelper org.apache.commons.functor.core.algorithm.FoldRight org.apache.commons.functor.core.algorithm.FoldRight$FoldRightHelper org.apache.commons.functor.core.algorithm.GeneratorContains org.apache.commons.functor.core.algorithm.GeneratorContains$ContainsProcedure org.apache.commons.functor.core.algorithm.InPlaceTransform org.apache.commons.functor.core.algorithm.IndexOfInGenerator org.apache.commons.functor.core.algorithm.IndexOfInGenerator$IndexProcedure org.apache.commons.functor.core.algorithm.RecursiveEvaluation org.apache.commons.functor.core.algorithm.RemoveMatching org.apache.commons.functor.core.algorithm.RetainMatching org.apache.commons.functor.core.algorithm.UntilDo org.apache.commons.functor.core.algorithm.WhileDo | None | java.io java.lang java.util org.apache.commons.functor org.apache.commons.functor.core.composite org.apache.commons.functor.generator |
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.functor.core.collection.FilteredIterable org.apache.commons.functor.core.collection.FilteredIterable$1 org.apache.commons.functor.core.collection.FilteredIterable$2 org.apache.commons.functor.core.collection.FilteredIterable$2$1 org.apache.commons.functor.core.collection.FilteredIterable$3 org.apache.commons.functor.core.collection.FilteredIterator org.apache.commons.functor.core.collection.IsElementOf org.apache.commons.functor.core.collection.IsEmpty org.apache.commons.functor.core.collection.Size org.apache.commons.functor.core.collection.TransformedIterator | None | java.io java.lang java.lang.reflect java.util org.apache.commons.functor org.apache.commons.functor.adapter org.apache.commons.functor.core org.apache.commons.functor.core.composite |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
0 | 5 | 0.0% | 100.0% | 0.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.commons.functor.core.comparator.ComparableComparator org.apache.commons.functor.core.comparator.ComparatorFunction org.apache.commons.functor.core.comparator.IsEquivalent org.apache.commons.functor.core.comparator.IsGreaterThan org.apache.commons.functor.core.comparator.IsGreaterThanOrEqual org.apache.commons.functor.core.comparator.IsLessThan org.apache.commons.functor.core.comparator.IsLessThanOrEqual org.apache.commons.functor.core.comparator.IsNotEquivalent org.apache.commons.functor.core.comparator.IsWithinRange org.apache.commons.functor.core.comparator.Max org.apache.commons.functor.core.comparator.Min | None | java.io java.lang java.util org.apache.commons.functor org.apache.commons.functor.adapter |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
3 | 6 | 7.0% | 67.0% | 26.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.functor.core.composite.AbstractLoopProcedure org.apache.commons.functor.core.composite.BaseBinaryPredicateList org.apache.commons.functor.core.composite.BasePredicateList org.apache.commons.functor.core.composite.BaseUnaryPredicateList | org.apache.commons.functor.core.composite.And org.apache.commons.functor.core.composite.BinaryAnd org.apache.commons.functor.core.composite.BinaryCompositeBinaryFunction org.apache.commons.functor.core.composite.BinaryCompositeBinaryFunction$Helper org.apache.commons.functor.core.composite.BinaryNot org.apache.commons.functor.core.composite.BinaryOr org.apache.commons.functor.core.composite.BinarySequence org.apache.commons.functor.core.composite.Composite org.apache.commons.functor.core.composite.CompositeUnaryFunction org.apache.commons.functor.core.composite.CompositeUnaryFunction$Helper org.apache.commons.functor.core.composite.CompositeUnaryPredicate org.apache.commons.functor.core.composite.CompositeUnaryProcedure org.apache.commons.functor.core.composite.Conditional org.apache.commons.functor.core.composite.ConditionalBinaryFunction org.apache.commons.functor.core.composite.ConditionalBinaryPredicate org.apache.commons.functor.core.composite.ConditionalBinaryProcedure org.apache.commons.functor.core.composite.ConditionalFunction org.apache.commons.functor.core.composite.ConditionalPredicate org.apache.commons.functor.core.composite.ConditionalProcedure org.apache.commons.functor.core.composite.ConditionalUnaryFunction org.apache.commons.functor.core.composite.ConditionalUnaryPredicate org.apache.commons.functor.core.composite.ConditionalUnaryProcedure org.apache.commons.functor.core.composite.DoWhileProcedure org.apache.commons.functor.core.composite.Not org.apache.commons.functor.core.composite.Or org.apache.commons.functor.core.composite.Sequence org.apache.commons.functor.core.composite.TransformedBinaryFunction org.apache.commons.functor.core.composite.TransformedBinaryFunction$1 org.apache.commons.functor.core.composite.TransformedBinaryFunction$Helper org.apache.commons.functor.core.composite.TransformedBinaryProcedure org.apache.commons.functor.core.composite.TransformedBinaryProcedure$1 org.apache.commons.functor.core.composite.TransformedBinaryProcedure$Helper org.apache.commons.functor.core.composite.TransformedFunction org.apache.commons.functor.core.composite.TransformedFunction$1 org.apache.commons.functor.core.composite.TransformedFunction$Helper org.apache.commons.functor.core.composite.TransformedProcedure org.apache.commons.functor.core.composite.TransformedProcedure$1 org.apache.commons.functor.core.composite.TransformedProcedure$Helper org.apache.commons.functor.core.composite.TransposedFunction org.apache.commons.functor.core.composite.TransposedPredicate org.apache.commons.functor.core.composite.TransposedProcedure org.apache.commons.functor.core.composite.UnaryAnd org.apache.commons.functor.core.composite.UnaryCompositeBinaryFunction org.apache.commons.functor.core.composite.UnaryCompositeBinaryFunction$Helper org.apache.commons.functor.core.composite.UnaryCompositeBinaryPredicate org.apache.commons.functor.core.composite.UnaryCompositeBinaryPredicate$Helper org.apache.commons.functor.core.composite.UnaryNot org.apache.commons.functor.core.composite.UnaryOr org.apache.commons.functor.core.composite.UnarySequence org.apache.commons.functor.core.composite.WhileDoProcedure | org.apache.commons.functor.core.algorithm org.apache.commons.functor.core.collection org.apache.commons.functor.generator | java.io java.lang java.util org.apache.commons.functor org.apache.commons.functor.adapter org.apache.commons.functor.core |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
2 | 5 | 14.0% | 71.0% | 14.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
org.apache.commons.functor.generator.BaseGenerator org.apache.commons.functor.generator.Generator | org.apache.commons.functor.generator.FilteredGenerator org.apache.commons.functor.generator.GenerateUntil org.apache.commons.functor.generator.GenerateUntil$1 org.apache.commons.functor.generator.GenerateWhile org.apache.commons.functor.generator.GenerateWhile$1 org.apache.commons.functor.generator.IteratorToGeneratorAdapter org.apache.commons.functor.generator.TransformedGenerator org.apache.commons.functor.generator.TransformedGenerator$1 org.apache.commons.functor.generator.UntilGenerate org.apache.commons.functor.generator.UntilGenerate$1 org.apache.commons.functor.generator.WhileGenerate org.apache.commons.functor.generator.WhileGenerate$1 | org.apache.commons.functor.core.algorithm org.apache.commons.functor.generator.util | java.lang java.util org.apache.commons.functor org.apache.commons.functor.core.composite org.apache.commons.functor.generator.util |
Afferent Couplings | Efferent Couplings | Abstractness | Instability | Distance |
---|---|---|---|---|
1 | 4 | 0.0% | 80.0% | 20.0% |
Abstract Classes | Concrete Classes | Used by Packages | Uses Packages |
---|---|---|---|
None | org.apache.commons.functor.generator.util.CollectionTransformer org.apache.commons.functor.generator.util.CollectionTransformer$1 org.apache.commons.functor.generator.util.EachElement org.apache.commons.functor.generator.util.IntegerRange org.apache.commons.functor.generator.util.LongRange | org.apache.commons.functor.generator | java.lang java.util org.apache.commons.functor org.apache.commons.functor.generator |
Package | Package Dependencies |
---|---|
org.apache.commons.functor.core.algorithm | org.apache.commons.functor.generator org.apache.commons.functor.generator.util org.apache.commons.functor.generator |
org.apache.commons.functor.generator | org.apache.commons.functor.generator.util org.apache.commons.functor.generator |
org.apache.commons.functor.generator.util | org.apache.commons.functor.generator org.apache.commons.functor.generator.util |
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. |