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

commit 39705a9afb67f5e33b6bdc196e3d2f97a4cc5f78
Author: Laszlo Kishalmi <[email protected]>
AuthorDate: Tue Aug 16 18:46:27 2022 -0700

    Add GradleReports to the GradleBaseProject
---
 .../src/org/netbeans/modules/gradle/GradleProject.java   | 16 ++++++++++------
 .../org/netbeans/modules/gradle/NbGradleProjectImpl.java |  2 ++
 .../netbeans/modules/gradle/api/GradleBaseProject.java   |  5 +++++
 .../org/netbeans/modules/gradle/api/NbGradleProject.java |  8 ++++++++
 .../modules/gradle/editor/GradleHintsProvider.java       | 16 ++++++----------
 .../modules/gradle/problems/ProxyAlertProvider.java      |  6 +++---
 6 files changed, 34 insertions(+), 19 deletions(-)

diff --git a/extide/gradle/src/org/netbeans/modules/gradle/GradleProject.java 
b/extide/gradle/src/org/netbeans/modules/gradle/GradleProject.java
index 33caf0f207..04fda6a7a2 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/GradleProject.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/GradleProject.java
@@ -23,7 +23,6 @@ import java.io.Serializable;
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Objects;
@@ -43,7 +42,6 @@ import org.openide.util.lookup.InstanceContent;
  */
 public final class GradleProject implements Serializable, Lookup.Provider {
 
-    final Set<GradleReport> problems;
     final Quality quality;
     final long evaluationTime = System.currentTimeMillis();
     final Lookup lookup;
@@ -56,14 +54,15 @@ public final class GradleProject implements Serializable, 
Lookup.Provider {
         for (GradleReport prob : problems) {
             if (prob != null) probs.add(prob);
         }
-        this.problems = probs;
         InstanceContent ic = new InstanceContent();
         for (Object i : infos) {
             ic.add(i);
         }
         lookup = new AbstractLookup(ic);
+
         baseProject = lookup.lookup(GradleBaseProject.class);
         assert baseProject != null : "GradleProject always shall have a 
GradleBaseProject in it's lookup!";
+        setProblems(baseProject, probs);
     }
 
     private GradleProject(Quality quality, GradleReport[] problems, 
GradleProject origin) {
@@ -72,10 +71,11 @@ public final class GradleProject implements Serializable, 
Lookup.Provider {
         for (GradleReport prob : problems) {
             if (prob != null) probs.add(prob);
         }
-        this.problems = probs;
         lookup = origin.lookup;
         baseProject = lookup.lookup(GradleBaseProject.class);
         assert baseProject != null : "GradleProject always shall have a 
GradleBaseProject in it's lookup!";
+
+        setProblems(baseProject, probs);
     }
 
     @Override
@@ -83,8 +83,8 @@ public final class GradleProject implements Serializable, 
Lookup.Provider {
         return lookup;
     }
 
-    public Set<GradleReport> getProblems() {
-        return Collections.unmodifiableSet(problems);
+    Set<GradleReport> getProblems() {
+        return baseProject.getProblems();
     }
 
     public Quality getQuality() {
@@ -131,6 +131,10 @@ public final class GradleProject implements Serializable, 
Lookup.Provider {
         return invalidate(reports.toArray(new GradleReport[reports.size()]));
     }
 
+    private static void setProblems(GradleBaseProject baseProject, 
Set<GradleReport> problems) {
+        NbGradleProjectImpl.ACCESSOR.setProblems(baseProject, problems);
+    }
+
     public static GradleReport createGradleReport(String errorClass, String 
location, int line, String message, GradleReport causedBy) {
         return NbGradleProjectImpl.ACCESSOR.createReport(errorClass, location, 
line, message, causedBy);
     }
diff --git 
a/extide/gradle/src/org/netbeans/modules/gradle/NbGradleProjectImpl.java 
b/extide/gradle/src/org/netbeans/modules/gradle/NbGradleProjectImpl.java
index 1d58007254..0633e2b3a4 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/NbGradleProjectImpl.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/NbGradleProjectImpl.java
@@ -135,6 +135,8 @@ public final class NbGradleProjectImpl implements Project {
         public abstract void passivate(NbGradleProject watcher);
 
         public abstract GradleReport createReport(String errorClass, String 
location, int line, String message, GradleReport causedBy);
+
+        public abstract void setProblems(GradleBaseProject baseProject, 
Set<GradleReport> problems);
     }
 
     @java.lang.SuppressWarnings("LeakingThisInConstructor")
diff --git 
a/extide/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProject.java 
b/extide/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProject.java
index 2288f37c8d..c7277f48da 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProject.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProject.java
@@ -76,6 +76,7 @@ public final class GradleBaseProject implements Serializable, 
ModuleSearchSuppor
     Set<File> outputPaths = Collections.emptySet();
     Map<String, String> projectIds = Collections.emptyMap();
     GradleDependency projectDependencyNode;
+    Set<GradleReport> problems = Collections.emptySet();
 
     transient Boolean resolved = null;
 
@@ -170,6 +171,10 @@ public final class GradleBaseProject implements 
Serializable, ModuleSearchSuppor
         return includedBuilds;
     }
 
+    public Set<GradleReport> getProblems() {
+        return problems;
+    }
+    
     /**
      * Returns true if the project directory is the same as the root project's
      * project directory, in short if this project is a root project.
diff --git 
a/extide/gradle/src/org/netbeans/modules/gradle/api/NbGradleProject.java 
b/extide/gradle/src/org/netbeans/modules/gradle/api/NbGradleProject.java
index 76a3bbbfaf..fc592b5e5d 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/api/NbGradleProject.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/api/NbGradleProject.java
@@ -26,6 +26,7 @@ import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeSupport;
 import java.io.File;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
@@ -181,6 +182,13 @@ public final class NbGradleProject {
         public GradleReport createReport(String errorClass, String location, 
int line, String message, GradleReport causedBy) {
             return new GradleReport(errorClass, location, line, message, 
causedBy);
         }
+
+        @Override
+        public void setProblems(GradleBaseProject baseProject, 
Set<GradleReport> problems) {
+            baseProject.problems = (problems == null || problems.isEmpty())
+                    ? Collections.emptySet()
+                    : Collections.unmodifiableSet(problems);
+        }
     }
 
     private NbGradleProject(NbGradleProjectImpl project) {
diff --git 
a/extide/gradle/src/org/netbeans/modules/gradle/editor/GradleHintsProvider.java 
b/extide/gradle/src/org/netbeans/modules/gradle/editor/GradleHintsProvider.java
index 2caaad03a1..e275c81d0c 100644
--- 
a/extide/gradle/src/org/netbeans/modules/gradle/editor/GradleHintsProvider.java
+++ 
b/extide/gradle/src/org/netbeans/modules/gradle/editor/GradleHintsProvider.java
@@ -32,8 +32,7 @@ import java.util.logging.Logger;
 import javax.swing.text.Document;
 import org.netbeans.api.editor.document.LineDocument;
 import org.netbeans.api.project.Project;
-import org.netbeans.modules.gradle.GradleProject;
-import org.netbeans.modules.gradle.NbGradleProjectImpl;
+import org.netbeans.modules.gradle.api.GradleBaseProject;
 import org.netbeans.modules.gradle.api.GradleReport;
 import org.netbeans.modules.gradle.api.NbGradleProject;
 import org.netbeans.spi.editor.hints.ErrorDescription;
@@ -78,18 +77,15 @@ public class GradleHintsProvider {
     }
     
     Map<LineDocument, List<GradleReport>> openReportDocuments(boolean 
reportNonLocations) {
-        NbGradleProjectImpl gpi = 
gradleProject.getLookup().lookup(NbGradleProjectImpl.class);
-        if (gpi == null) {
+        GradleBaseProject gbp = GradleBaseProject.get(gradleProject);
+        if (gbp == null) {
             return null;
         }
-        GradleProject gp = gpi.getGradleProject();
-        if (gp == null) {
-            return null;
-        }
-        Set<GradleReport> reports = gp.getProblems();
+        Set<GradleReport> reports = gbp.getProblems();
         Map<String, LineDocument> openedDocs = new HashMap<>();
         Map<LineDocument, List<GradleReport>> documentReports = new 
HashMap<>();
-        File scriptF = gpi.getGradleFiles().getBuildScript();
+        NbGradleProject gp = NbGradleProject.get(gradleProject);
+        File scriptF = gp.getGradleFiles().getBuildScript();
         for (GradleReport r : reports) {
             String l;
             int line;
diff --git 
a/extide/gradle/src/org/netbeans/modules/gradle/problems/ProxyAlertProvider.java
 
b/extide/gradle/src/org/netbeans/modules/gradle/problems/ProxyAlertProvider.java
index 406a80abcc..63aceaa0c6 100644
--- 
a/extide/gradle/src/org/netbeans/modules/gradle/problems/ProxyAlertProvider.java
+++ 
b/extide/gradle/src/org/netbeans/modules/gradle/problems/ProxyAlertProvider.java
@@ -41,7 +41,7 @@ import java.util.function.Predicate;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import org.netbeans.api.project.Project;
-import org.netbeans.modules.gradle.NbGradleProjectImpl;
+import org.netbeans.modules.gradle.api.GradleBaseProject;
 import org.netbeans.modules.gradle.api.GradleReport;
 import org.netbeans.modules.gradle.api.NbGradleProject;
 import org.netbeans.modules.gradle.spi.GradleFiles;
@@ -133,8 +133,8 @@ public class ProxyAlertProvider implements 
ProjectProblemsProvider, PropertyChan
     }
     
     private Set<GradleReport> reports() {
-        NbGradleProjectImpl gp = (NbGradleProjectImpl)owner;
-        return gp.getGradleProject().getProblems();
+        GradleBaseProject gbp = GradleBaseProject.get(owner);
+        return gbp.getProblems();
     }
     
     private static final String CLASS_UNKNOWN_HOST = 
"java.net.UnknownHostException"; // NOI18N


---------------------------------------------------------------------
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