Apache Commons Lang
Conditional Complexity

Intro
  • Conditional complexity (also called cyclomatic complexity) is a term used to measure the complexity of software. The term refers to the number of possible paths through a program function. A higher value ofter means higher maintenance and testing costs (infosecinstitute.com).
  • Conditional complexity is calculated by counting all conditions in the program that can affect the execution path (e.g. if statement, loops, switches, and/or operators, try and catch blocks...).
  • Conditional complexity is measured at the unit level (methods, functions...).
  • Units are classified in four categories based on the measured McCabe index: 1-5 (simple units), 6-10 (medium complex units), 11-25 (complex units), 26+ (very complex units).
Learn more...
Conditional Complexity Overall
  • There are 3,024 units with 22,610 lines of code in units (75.5% of code).
    • 3 very complex units (323 lines of code)
    • 7 complex units (567 lines of code)
    • 51 medium complex units (2,146 lines of code)
    • 202 simple units (4,402 lines of code)
    • 2,761 very simple units (15,172 lines of code)
1% | 2% | 9% | 19% | 67%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
java1% | 2% | 9% | 19% | 67%
Legend:
51+
26-50
11-25
6-10
1-5
Conditional Complexity per Logical Component
primary logical decomposition
lang3/math19% | 0% | 3% | 16% | 60%
lang31% | 3% | 11% | 24% | 60%
lang3/time0% | 9% | 17% | 8% | 64%
lang3/builder0% | 2% | 4% | 20% | 72%
lang3/text0% | 0% | 11% | 20% | 68%
lang3/reflect0% | 0% | 14% | 31% | 53%
lang3/function0% | 0% | 9% | 0% | 90%
lang3/exception0% | 0% | 0% | 30% | 69%
lang3/concurrent0% | 0% | 0% | 2% | 97%
lang3/compare0% | 0% | 0% | 42% | 57%
lang3/mutable0% | 0% | 0% | 0% | 100%
lang3/tuple0% | 0% | 0% | 0% | 100%
lang3/stream0% | 0% | 0% | 0% | 100%
lang3/arch0% | 0% | 0% | 0% | 100%
lang3/event0% | 0% | 0% | 0% | 100%
Legend:
51+
26-50
11-25
6-10
1-5
Most Complex Units
Top 50 most complex units
Unit# linesMcCabe index# params
public static Number createNumber()
in src/main/java/org/apache/commons/lang3/math/NumberUtils.java
145 62 1
public static Boolean toBooleanObject()
in src/main/java/org/apache/commons/lang3/BooleanUtils.java
84 56 1
public static boolean isCreatable()
in src/main/java/org/apache/commons/lang3/math/NumberUtils.java
94 51 1
protected List parsePattern()
in src/main/java/org/apache/commons/lang3/time/FastDatePrinter.java
126 36 0
public static boolean isAssignable()
in src/main/java/org/apache/commons/lang3/ClassUtils.java
69 34 3
private static String replaceEach()
in src/main/java/org/apache/commons/lang3/StringUtils.java
91 33 5
private static void modify()
in src/main/java/org/apache/commons/lang3/time/DateUtils.java
96 32 3
public static char binaryBeMsb0ToHexDigit()
in src/main/java/org/apache/commons/lang3/Conversion.java
33 31 2
public static String random()
in src/main/java/org/apache/commons/lang3/RandomStringUtils.java
67 30 7
protected void appendInternal()
in src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java
85 28 4
private Strategy getStrategy()
in src/main/java/org/apache/commons/lang3/time/FastDateParser.java
51 24 3
public static int hexDigitMsb0ToInt()
in src/main/java/org/apache/commons/lang3/Conversion.java
44 23 1
public static String formatPeriod()
in src/main/java/org/apache/commons/lang3/time/DurationFormatUtils.java
94 23 5
static JavaVersion get()
in src/main/java/org/apache/commons/lang3/JavaVersion.java
50 22 1
private int substitute()
in src/main/java/org/apache/commons/lang3/text/StrSubstitutor.java
115 22 4
public int translate()
in src/main/java/org/apache/commons/lang3/text/translate/NumericEntityUnescaper.java
49 22 3
public static char binaryToHexDigit()
in src/main/java/org/apache/commons/lang3/Conversion.java
27 20 2
public static Method getMatchingAccessibleMethod()
in src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java
44 20 3
public static Iterator iterator()
in src/main/java/org/apache/commons/lang3/time/DateUtils.java
68 19 2
public static char binaryToHexDigitMsb0_4bits()
in src/main/java/org/apache/commons/lang3/Conversion.java
30 18 2
public static int getLevenshteinDistance()
in src/main/java/org/apache/commons/lang3/StringUtils.java
59 18 3
static int lastIndexOf()
in src/main/java/org/apache/commons/lang3/CharSequenceUtils.java
51 18 3
public static char intToHexDigitMsb0()
in src/main/java/org/apache/commons/lang3/Conversion.java
38 17 1
private static int greatestCommonDivisor()
in src/main/java/org/apache/commons/lang3/math/Fraction.java
39 17 2
public EqualsBuilder reflectionAppend()
in src/main/java/org/apache/commons/lang3/builder/EqualsBuilder.java
49 16 2
public static boolean isMixedCase()
in src/main/java/org/apache/commons/lang3/StringUtils.java
18 15 1
private static boolean isAssignable()
in src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java
49 15 4
private static StringBuilder simpleQuote()
in src/main/java/org/apache/commons/lang3/time/FastDateParser.java
26 15 2
private static void appendFullDigits()
in src/main/java/org/apache/commons/lang3/time/FastDatePrinter.java
52 15 3
public DiffBuilder append()
in src/main/java/org/apache/commons/lang3/builder/DiffBuilder.java
58 15 3
public static int indexOfDifference()
in src/main/java/org/apache/commons/lang3/StringUtils.java
43 14 1
private static boolean isAssignable()
in src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java
35 14 2
private static boolean isAssignable()
in src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java
42 14 4
protected String parseToken()
in src/main/java/org/apache/commons/lang3/time/FastDatePrinter.java
40 14 2
public static String wrap()
in src/main/java/org/apache/commons/lang3/text/WordUtils.java
62 14 5
private static boolean isAssignable()
in src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java
36 13 4
private static long getFragment()
in src/main/java/org/apache/commons/lang3/time/DateUtils.java
34 13 3
static boolean regionMatches()
in src/main/java/org/apache/commons/lang3/CharSequenceUtils.java
33 13 6
public static Locale toLocale()
in src/main/java/org/apache/commons/lang3/LocaleUtils.java
37 12 1
private static Locale parseLocale()
in src/main/java/org/apache/commons/lang3/LocaleUtils.java
23 12 1
public static String abbreviate()
in src/main/java/org/apache/commons/lang3/StringUtils.java
32 12 4
private static String replace()
in src/main/java/org/apache/commons/lang3/StringUtils.java
27 12 5
public static void shift()
in src/main/java/org/apache/commons/lang3/ArrayUtils.java
37 12 4
public static void shift()
in src/main/java/org/apache/commons/lang3/ArrayUtils.java
37 12 4
public static void shift()
in src/main/java/org/apache/commons/lang3/ArrayUtils.java
37 12 4
public static void shift()
in src/main/java/org/apache/commons/lang3/ArrayUtils.java
37 12 4
public static void shift()
in src/main/java/org/apache/commons/lang3/ArrayUtils.java
37 12 4
public static void shift()
in src/main/java/org/apache/commons/lang3/ArrayUtils.java
37 12 4
public static void shift()
in src/main/java/org/apache/commons/lang3/ArrayUtils.java
37 12 4
public static void shift()
in src/main/java/org/apache/commons/lang3/ArrayUtils.java
37 12 4