This is an automated email from the ASF dual-hosted git repository.

lkishalmi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new b49dcee  [NETBEANS-4975] Every Groovy SG is a Java SG, but not every 
Java SG is a Groovy SG
b49dcee is described below

commit b49dceeab86f41aba5d82e470aafbb7a91ed6f8e
Author: Laszlo Kishalmi <[email protected]>
AuthorDate: Sat Oct 31 13:45:49 2020 -0700

    [NETBEANS-4975] Every Groovy SG is a Java SG, but not every Java SG is a 
Groovy SG
---
 .../modules/groovy/support/api/GroovySources.java  |  2 --
 .../gradle/java/classpath/GradleSourcesImpl.java   | 28 +++++++++++-----------
 .../gradle/java/nodes/SourcesNodeFactory.java      |  2 +-
 3 files changed, 15 insertions(+), 17 deletions(-)

diff --git 
a/groovy/groovy.support/src/org/netbeans/modules/groovy/support/api/GroovySources.java
 
b/groovy/groovy.support/src/org/netbeans/modules/groovy/support/api/GroovySources.java
index dee1865..c25953d 100644
--- 
a/groovy/groovy.support/src/org/netbeans/modules/groovy/support/api/GroovySources.java
+++ 
b/groovy/groovy.support/src/org/netbeans/modules/groovy/support/api/GroovySources.java
@@ -22,7 +22,6 @@ package org.netbeans.modules.groovy.support.api;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import org.netbeans.api.java.project.JavaProjectConstants;
 import org.netbeans.api.project.SourceGroup;
 import org.netbeans.api.project.Sources;
 
@@ -61,7 +60,6 @@ public class GroovySources {
     public static List<SourceGroup> getGroovySourceGroups(Sources sources) {
         List<SourceGroup> result = new ArrayList<SourceGroup>();
         
result.addAll(Arrays.asList(sources.getSourceGroups(GroovySources.SOURCES_TYPE_GROOVY)));
-        
result.addAll(Arrays.asList(sources.getSourceGroups(JavaProjectConstants.SOURCES_TYPE_JAVA)));
         
result.addAll(Arrays.asList(sources.getSourceGroups(GroovySources.SOURCES_TYPE_GRAILS)));
         
result.addAll(Arrays.asList(sources.getSourceGroups(GroovySources.SOURCES_TYPE_GRAILS_UNKNOWN)));
         return result;
diff --git 
a/java/gradle.java/src/org/netbeans/modules/gradle/java/classpath/GradleSourcesImpl.java
 
b/java/gradle.java/src/org/netbeans/modules/gradle/java/classpath/GradleSourcesImpl.java
index a6be472..d1a4301 100644
--- 
a/java/gradle.java/src/org/netbeans/modules/gradle/java/classpath/GradleSourcesImpl.java
+++ 
b/java/gradle.java/src/org/netbeans/modules/gradle/java/classpath/GradleSourcesImpl.java
@@ -34,6 +34,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
@@ -152,24 +153,23 @@ public class GradleSourcesImpl implements Sources, 
SourceGroupModifierImplementa
     @Override
     public synchronized SourceGroup[] getSourceGroups(String type) {
         checkChanges(false);
-        SourceType stype = soureType2SourceType(type);
-        if (stype != null) {
-            ArrayList<SourceGroup> ret = new ArrayList<>();
+        ArrayList<SourceGroup> ret = new ArrayList<>();
+        Set<SourceType> stype = soureType2SourceType(type);
+        for (SourceType st : stype) {
             Set<File> processed = new HashSet();
             for (String group : gradleSources.keySet()) {
-                Set<File> dirs = gradleSources.get(group).getSourceDirs(stype);
+                Set<File> dirs = gradleSources.get(group).getSourceDirs(st);
                 boolean unique = dirs.size() == 1;
                 for (File dir : dirs) {
                     if (!processed.contains(dir) && dir.isDirectory()) {
                         processed.add(dir);
-                        ret.add(createSourceGroup(unique, group, dir, stype));
+                        ret.add(createSourceGroup(unique, group, dir, st));
                     }
                 }
             }
-            Collections.sort(ret, Comparator.comparing(SourceGroup::getName));
-            return ret.toArray(new SourceGroup[ret.size()]);
         }
-        return new SourceGroup[0];
+        Collections.sort(ret, Comparator.comparing(SourceGroup::getName));
+        return ret.toArray(new SourceGroup[ret.size()]);
     }
 
     SourceGroup createSourceGroup(boolean unique, String group, File dir,
@@ -331,14 +331,14 @@ public class GradleSourcesImpl implements Sources, 
SourceGroupModifierImplementa
         return ret && gp.getSourceSets().containsKey(hint);
     }
 
-    private static SourceType soureType2SourceType(String type) {
+    private static Set<SourceType> soureType2SourceType(String type) {
         switch (type) {
-            case JavaProjectConstants.SOURCES_TYPE_JAVA: return 
SourceType.JAVA;
-            case JavaProjectConstants.SOURCES_TYPE_RESOURCES: return 
SourceType.RESOURCES;
-            case SOURCE_TYPE_GENERATED: return SourceType.GENERATED;
-            case SOURCE_TYPE_GROOVY: return SourceType.GROOVY; // Should be in 
the Groovy support module theoretically
+            case JavaProjectConstants.SOURCES_TYPE_JAVA: return 
EnumSet.of(SourceType.JAVA, SourceType.GROOVY);
+            case JavaProjectConstants.SOURCES_TYPE_RESOURCES: return 
EnumSet.of(SourceType.RESOURCES);
+            case SOURCE_TYPE_GENERATED: return 
EnumSet.of(SourceType.GENERATED);
+            case SOURCE_TYPE_GROOVY: return EnumSet.of(SourceType.GROOVY); // 
Should be in the Groovy support module theoretically
         }
-        return null;
+        return Collections.emptySet();
     }
 
     private final class GradleSourceGroup implements SourceGroup {
diff --git 
a/java/gradle.java/src/org/netbeans/modules/gradle/java/nodes/SourcesNodeFactory.java
 
b/java/gradle.java/src/org/netbeans/modules/gradle/java/nodes/SourcesNodeFactory.java
index ee5ffdd..16dce49 100644
--- 
a/java/gradle.java/src/org/netbeans/modules/gradle/java/nodes/SourcesNodeFactory.java
+++ 
b/java/gradle.java/src/org/netbeans/modules/gradle/java/nodes/SourcesNodeFactory.java
@@ -72,10 +72,10 @@ public final class SourcesNodeFactory implements 
NodeFactory {
         public List<SourceGroup> keys() {
             Sources srcs = ProjectUtils.getSources(project);
             List<SourceGroup> ret = new ArrayList<>();
+            // Every Groovy SourceGroup is a Java SourceGroup as well
             
ret.addAll(Arrays.asList(srcs.getSourceGroups(JavaProjectConstants.SOURCES_TYPE_JAVA)));
             
ret.addAll(Arrays.asList(srcs.getSourceGroups(JavaProjectConstants.SOURCES_TYPE_RESOURCES)));
             
ret.addAll(Arrays.asList(srcs.getSourceGroups(GradleSourcesImpl.SOURCE_TYPE_GENERATED)));
-            
ret.addAll(Arrays.asList(srcs.getSourceGroups(GradleSourcesImpl.SOURCE_TYPE_GROOVY)));
             ret.sort(Comparator.comparing(SourceGroup::getName));
             return ret;
         }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to