예제 #1
0
 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;
 }
예제 #3
0
  @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());
  }