int (PackageEntry @NotNull [] entries, @NotNull GrImportStatement statement) { final GrCodeReferenceElement reference = statement.getImportReference(); if (reference == null) return -1; final String packageName = StringUtil.getPackageName(reference.getCanonicalText()); final boolean isStatic = statement.isStatic(); int best = -1; int allOtherStatic = -1; int allOther = -1; PackageEntry bestEntry = null; for (int i = 0, length = entries.length; i < length; i++) { PackageEntry entry = entries[i]; if (entry.isBetterMatchForPackageThan(bestEntry, packageName, isStatic)) { best = i; bestEntry = entry; } else if (entry == PackageEntry.ALL_OTHER_STATIC_IMPORTS_ENTRY) { allOtherStatic = i; } else if (entry == PackageEntry.ALL_OTHER_IMPORTS_ENTRY) { allOther = i; } } if (best >= 0) return best; if (isStatic && allOtherStatic != -1) return allOtherStatic; return allOther; }