int (@NotNull IndentUsageStatistics stats) { int totalIndentSizesDetected = stats.getTotalIndentSizesDetected(); if (totalIndentSizesDetected == 0) return -1; IndentUsageInfo maxUsedIndentInfo = stats.getKMostUsedIndentInfo(0); int maxUsedIndentSize = maxUsedIndentInfo.getIndentSize(); if (maxUsedIndentSize == 0) { if (totalIndentSizesDetected < 2) return -1; maxUsedIndentInfo = stats.getKMostUsedIndentInfo(1); maxUsedIndentSize = maxUsedIndentInfo.getIndentSize(); } if (maxUsedIndentSize <= MAX_INDENT_TO_DETECT) { double usageRate = (double)maxUsedIndentInfo.getTimesUsed() / stats.getTotalLinesWithLeadingSpaces(); if (usageRate > RATE_THRESHOLD) { return maxUsedIndentSize; } } return -1; }