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
