private static void processSeparatedAttribute(boolean separated, @NotNull CodeStyleSettings settings) { PackageEntryTable importTable = new PackageEntryTable(); if (settings.IMPORT_LAYOUT_TABLE.getEntryCount() < 1) { // nothing to separate return; } for (PackageEntry entry : settings.IMPORT_LAYOUT_TABLE.getEntries()) { if (entry != PackageEntry.BLANK_LINE_ENTRY) { importTable.addEntry(entry); if (separated) { importTable.addEntry(PackageEntry.BLANK_LINE_ENTRY); } } } // remove blank line at the very end if present if (importTable.getEntryAt(importTable.getEntryCount() - 1) == PackageEntry.BLANK_LINE_ENTRY) { importTable.removeEntryAt(importTable.getEntryCount() - 1); } settings.IMPORT_LAYOUT_TABLE.copyFrom(importTable); }
private static void processGroupsAttribute(@NotNull String[] groups, @NotNull CodeStyleSettings settings) { PackageEntryTable importTable = new PackageEntryTable(); for (String group : groups) { if (group.equals("*")) { importTable.addEntry(PackageEntry.ALL_OTHER_IMPORTS_ENTRY); } else { importTable.addEntry(new PackageEntry(false, group, true)); } } settings.IMPORT_LAYOUT_TABLE.copyFrom(importTable); }
private static void resetAvoidStarImportSettings(CodeStyleSettings settings) { settings.NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND = 1; settings.CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND = 1; settings.PACKAGES_TO_USE_IMPORT_ON_DEMAND.copyFrom(new PackageEntryTable()); }
private static void comparePackageEntries(PackageEntry[] expected, PackageEntryTable actual) { assertEquals(expected.length, actual.getEntryCount()); for (int x = 0; x < expected.length; x++) { assertEquals(expected[x], actual.getEntries()[x]); } }
private PackageEntryTable createCustomImportTable() { PackageEntryTable table = new PackageEntryTable(); Consumer<String> createPackageEntry = p -> table.addEntry(new PackageEntry(false, p, true)); if (customImportOrder != null) { for (ImportGroup group : customImportOrder) { switch (group) { case STATIC: table.addEntry(PackageEntry.ALL_OTHER_STATIC_IMPORTS_ENTRY); break; case THIRD_PARTY_PACKAGE: thirdPartyPackageRegExp.forEach(createPackageEntry); break; case SPECIAL_IMPORTS: specialImportsRegExp.forEach(createPackageEntry); break; case STANDARD_JAVA_PACKAGE: standardPackageRegExp.forEach(createPackageEntry); break; default: // IntelliJ does not support this option or group does not exist break; } addBlankLineBetweenGroups(table); } } table.addEntry(PackageEntry.ALL_OTHER_IMPORTS_ENTRY); return table; }
@Override public void importTo(@NotNull CodeStyleSettings settings) { PackageEntryTable customImportTable = createCustomImportTable(); settings.IMPORT_LAYOUT_TABLE.copyFrom(customImportTable); }
assertEquals(0, codeStyleSettings.PACKAGES_TO_USE_IMPORT_ON_DEMAND.getEntryCount()); assertEquals(0, codeStyleSettings.PACKAGES_TO_USE_IMPORT_ON_DEMAND.getEntryCount()); assertEquals(0, codeStyleSettings.PACKAGES_TO_USE_IMPORT_ON_DEMAND.getEntryCount()); assertEquals(0, codeStyleSettings.PACKAGES_TO_USE_IMPORT_ON_DEMAND.getEntryCount());
private void addBlankLineBetweenGroups(PackageEntryTable table) { if(!separateLineBetweenGroups) { return; } table.addEntry(PackageEntry.BLANK_LINE_ENTRY); }
@Override public void importTo(@NotNull CodeStyleSettings settings) { if (!allowClassStarImports) { settings.CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND = 999; } if (!allowStaticStarImports) { settings.NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND = 999; } PackageEntryTable excludeTable = new PackageEntryTable(); if (excludes != null) { for (String exclude : excludes) { excludeTable.addEntry(new PackageEntry(false, exclude, false)); } } settings.PACKAGES_TO_USE_IMPORT_ON_DEMAND.copyFrom(excludeTable); } }
for (int x = settings.IMPORT_LAYOUT_TABLE.getEntryCount() - 1; x >= 0; x--) { if (settings.IMPORT_LAYOUT_TABLE.getEntryAt(x) == PackageEntry.ALL_OTHER_STATIC_IMPORTS_ENTRY) { settings.IMPORT_LAYOUT_TABLE.removeEntryAt(x); settings.IMPORT_LAYOUT_TABLE.insertEntryAt(PackageEntry.ALL_OTHER_STATIC_IMPORTS_ENTRY, 0); break; case BOTTOM: for (int x = settings.IMPORT_LAYOUT_TABLE.getEntryCount() - 1; x >= 0; x--) { if (settings.IMPORT_LAYOUT_TABLE.getEntryAt(x) == PackageEntry.ALL_OTHER_STATIC_IMPORTS_ENTRY) { settings.IMPORT_LAYOUT_TABLE.removeEntryAt(x); settings.IMPORT_LAYOUT_TABLE.addEntry(PackageEntry.ALL_OTHER_STATIC_IMPORTS_ENTRY); break; case INFLOW: for (int x = settings.IMPORT_LAYOUT_TABLE.getEntryCount() - 1; x >= 0; x--) { if (settings.IMPORT_LAYOUT_TABLE.getEntryAt(x).isStatic()) { settings.IMPORT_LAYOUT_TABLE.removeEntryAt(x); for (PackageEntry entry : settings.IMPORT_LAYOUT_TABLE.getEntries()) { if (!entry.isStatic()) { nonStaticImports.add(entry.getPackageName()); PackageEntryTable importTable = new PackageEntryTable(); for (PackageEntry entry : settings.IMPORT_LAYOUT_TABLE.getEntries()) { importTable.addEntry(entry);