private void jButton2ActionPerformed( java.awt.event.ActionEvent evt) { // GEN-FIRST:event_jButton2ActionPerformed // TODO add your handling code here: PackageData pdata = new PackageData(); pdata.setVisible(true); dispose(); } // GEN-LAST:event_jButton2ActionPerformed
@NotNull public static Collection<FqName> getTopLevelFunctionFqNames( @NotNull Project project, @NotNull GlobalSearchScope scope, boolean shouldBeExtension) { Collection<FqName> result = Sets.newHashSet(); Collection<PsiClass> packageClasses = getClassesByAnnotation(KotlinPackage.class.getSimpleName(), project, scope); for (PsiClass psiClass : packageClasses) { String qualifiedName = psiClass.getQualifiedName(); if (qualifiedName == null) { continue; } FqName packageFqName = new FqName(qualifiedName).parent(); PackageData data = getPackageData(psiClass); if (data == null) { continue; } NameResolver nameResolver = data.getNameResolver(); for (ProtoBuf.Callable callable : data.getPackageProto().getMemberList()) { if (callable.hasReceiverType() == shouldBeExtension) { Name name = nameResolver.getName(callable.getName()); result.add(packageFqName.child(name)); } } } return result; }
@Test public void testMergePackages() { greenProject.addClassData(firstClass); greenProject.addClassData(fourthClass); redProject.addClassData(fifthClass); redProject.addClassData(sixthClass); redProject.addClassData(seventhClass); // merge with null - should not change the greenProject greenProject.merge(null); greenProject.merge(redProject); Iterator subpackages = greenProject.getSubPackages("").iterator(); assertEquals("", ((PackageData) subpackages.next()).getName()); assertEquals("beautiful", ((PackageData) subpackages.next()).getName()); assertEquals("test", ((PackageData) subpackages.next()).getName()); assertEquals("test.me", ((PackageData) subpackages.next()).getName()); assertFalse(subpackages.hasNext()); assertEquals(5, greenProject.getClasses().size()); assertEquals(3, redProject.getClasses().size()); assertNotNull(greenProject.getClassData("test.First")); assertNotNull(greenProject.getClassData("test.me.Fourth")); assertNotNull(greenProject.getClassData("beautiful.Fourth")); assertNotNull(greenProject.getClassData("Fourth")); assertNotNull(greenProject.getClassData("Seventh")); assertNull(redProject.getClassData("test.First")); Iterator packages = greenProject.getPackages().iterator(); PackageData first = (PackageData) packages.next(); assertEquals("", first.getName()); assertEquals(2, first.getNumberOfChildren()); assertNotNull(first.getChild("Fourth")); assertNotNull(first.getChild("Seventh")); PackageData beautiful = (PackageData) packages.next(); assertEquals("beautiful", beautiful.getName()); assertEquals(1, beautiful.getNumberOfChildren()); assertNotNull(beautiful.getChild("Fourth")); PackageData test = (PackageData) packages.next(); assertEquals("test", test.getName()); assertEquals(1, test.getNumberOfChildren()); assertNotNull(test.getChild("First")); assertNull(test.getChild("test/me/First.java")); assertNull(test.getChild("Fourth.java")); PackageData testMe = (PackageData) packages.next(); assertEquals("test.me", testMe.getName()); assertEquals(1, testMe.getNumberOfChildren()); assertNull(testMe.getChild("test/First.java")); assertNotNull(testMe.getChild("Fourth")); assertNull(testMe.getChild("Fourth.java")); assertFalse(packages.hasNext()); }