diff options
author | Lars Vogel | 2021-02-12 07:12:36 +0000 |
---|---|---|
committer | Lars Vogel | 2021-02-12 11:41:20 +0000 |
commit | 54cbcecbcecbf6440267f83b8db07bdcbce457a9 (patch) | |
tree | bc28435ee5a982dff307d29f13eb35ad7fbcdb95 | |
parent | 74705dc54fc01a1266ed3025119c915f880a3fd1 (diff) | |
download | eclipse.jdt.core-54cbcecbcecbf6440267f83b8db07bdcbce457a9.tar.gz eclipse.jdt.core-54cbcecbcecbf6440267f83b8db07bdcbce457a9.tar.xz eclipse.jdt.core-54cbcecbcecbf6440267f83b8db07bdcbce457a9.zip |
Bug 571017 - Use atomic marker creation API in
RequestorWrapper
The new marker API from Bug 570914 allows to create markers with
attributes and therefore avoids sending out resource change events for
every attribute change.
Also removes one commented line of code
JDT core dependencies have already increased the minimum required
resource API version in a previous commit.
Change-Id: I8683054f8b77722f40eaba0e61cdc99c3d967171
Signed-off-by: Lars Vogel <Lars.Vogel@vogella.com>
-rw-r--r-- | org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/eval/RequestorWrapper.java | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/eval/RequestorWrapper.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/eval/RequestorWrapper.java index 338b44e67e..1c4487c304 100644 --- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/eval/RequestorWrapper.java +++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/eval/RequestorWrapper.java @@ -13,6 +13,9 @@ *******************************************************************************/ package org.eclipse.jdt.internal.core.eval; +import java.util.HashMap; +import java.util.Map; + import org.eclipse.core.resources.IMarker; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; @@ -57,15 +60,16 @@ public boolean acceptClassFiles(ClassFile[] classFiles, char[] codeSnippetClassN @Override public void acceptProblem(CategorizedProblem problem, char[] fragmentSource, int fragmentKind) { try { - IMarker marker = ResourcesPlugin.getWorkspace().getRoot().createMarker(IJavaModelMarker.TRANSIENT_PROBLEM); - marker.setAttribute(IJavaModelMarker.ID, problem.getID()); - marker.setAttribute(IMarker.CHAR_START, problem.getSourceStart()); - marker.setAttribute(IMarker.CHAR_END, problem.getSourceEnd() + 1); - marker.setAttribute(IMarker.LINE_NUMBER, problem.getSourceLineNumber()); - //marker.setAttribute(IMarker.LOCATION, "#" + problem.getSourceLineNumber()); - marker.setAttribute(IMarker.MESSAGE, problem.getMessage()); - marker.setAttribute(IMarker.SEVERITY, (problem.isError() ? IMarker.SEVERITY_ERROR : problem.isWarning() ? IMarker.SEVERITY_WARNING : IMarker.SEVERITY_INFO)); - marker.setAttribute(IMarker.SOURCE_ID, JavaBuilder.SOURCE_ID); + Map<String, Object> attributes = new HashMap<>(); + attributes.put(IJavaModelMarker.ID, problem.getID()); + attributes.put(IMarker.CHAR_START, problem.getSourceStart()); + attributes.put(IMarker.CHAR_END, problem.getSourceEnd() + 1); + attributes.put(IMarker.LINE_NUMBER, problem.getSourceLineNumber()); + attributes.put(IMarker.MESSAGE, problem.getMessage()); + attributes.put(IMarker.SEVERITY, (problem.isError() ? IMarker.SEVERITY_ERROR : problem.isWarning() ? IMarker.SEVERITY_WARNING : IMarker.SEVERITY_INFO)); + attributes.put(IMarker.SOURCE_ID, JavaBuilder.SOURCE_ID); + + IMarker marker = ResourcesPlugin.getWorkspace().getRoot().createMarker(IJavaModelMarker.TRANSIENT_PROBLEM, attributes); this.requestor.acceptProblem(marker, new String(fragmentSource), fragmentKind); } catch (CoreException e) { e.printStackTrace(); |