Skip to content

Commit ff43976

Browse files
author
Frederik Boster
committed
[TFW2-1421] Refactor bugfix implementation for automatic violation comment removal.
1 parent 2dc9003 commit ff43976

File tree

2 files changed

+37
-44
lines changed

2 files changed

+37
-44
lines changed

src/main/java/se/bjurr/violations/comments/bitbucketserver/lib/BitbucketServerCommentsProvider.java

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -142,11 +142,9 @@ public void removeComments(final List<Comment> comments) {
142142
commentId = Integer.valueOf(comment.getIdentifier());
143143
commentVersion = Integer.valueOf(comment.getSpecifics().get(0));
144144

145-
BitbucketServerComment bitbucketServerComment = client.pullRequestComment((long) commentId);
146-
removeAllSubCommentsAndTasksOfComment(bitbucketServerComment);
147-
148-
removeAllTasksOfComment(bitbucketServerComment);
149-
client.pullRequestRemoveComment(commentId, commentVersion);
145+
final BitbucketServerComment bitbucketServerComment =
146+
client.pullRequestComment((long) commentId);
147+
removeComment(bitbucketServerComment);
150148
} catch (final Exception e) {
151149
violationsLogger.log(
152150
SEVERE, "Was unable to remove comment " + commentId + " " + commentVersion, e);
@@ -223,33 +221,35 @@ public boolean shouldKeepOldComments() {
223221
return violationCommentsToBitbucketApi.getShouldKeepOldComments();
224222
}
225223

226-
private void removeAllTasksOfComment(final BitbucketServerComment bitbucketServerComment) {
227-
List<BitbucketServerTask> bitbucketServerTasks = bitbucketServerComment.getTasks();
228-
229-
for (BitbucketServerTask bitbucketServerTask : bitbucketServerTasks) {
230-
client.removeTask(bitbucketServerTask);
231-
}
232-
}
233-
234-
private void removeAllSubCommentsAndTasksOfComment(
235-
final BitbucketServerComment bitbucketServerComment) {
224+
private void removeComment(final BitbucketServerComment comment) {
236225
final Deque<BitbucketServerComment> commentStack = new ArrayDeque<>();
237-
Collection<BitbucketServerComment> subComments = bitbucketServerComment.getComments();
226+
commentStack.add(comment);
227+
228+
Collection<BitbucketServerComment> subComments = comment.getComments();
238229
while (subComments != null && !subComments.isEmpty()) {
239230
commentStack.addAll(subComments);
240-
final Collection<BitbucketServerComment> currentSubComments = subComments;
241231

232+
final Collection<BitbucketServerComment> currentSubComments = subComments;
242233
subComments = new ArrayList<>();
243234
for (final BitbucketServerComment subComment : currentSubComments) {
244235
subComments.addAll(subComment.getComments());
245236
}
246237
}
247238

248-
final Iterator<BitbucketServerComment> commentIt = commentStack.descendingIterator();
249-
while (commentIt.hasNext()) {
250-
final BitbucketServerComment comment = commentIt.next();
251-
removeAllTasksOfComment(comment);
252-
client.pullRequestRemoveComment(comment.getId(), comment.getVersion());
239+
final Iterator<BitbucketServerComment> commentStackIt = commentStack.descendingIterator();
240+
while (commentStackIt.hasNext()) {
241+
final BitbucketServerComment stackComment = commentStackIt.next();
242+
243+
removeTasks(stackComment);
244+
client.pullRequestRemoveComment(stackComment.getId(), stackComment.getVersion());
245+
}
246+
}
247+
248+
private void removeTasks(final BitbucketServerComment comment) {
249+
List<BitbucketServerTask> bitbucketServerTasks = comment.getTasks();
250+
251+
for (BitbucketServerTask bitbucketServerTask : bitbucketServerTasks) {
252+
client.removeTask(bitbucketServerTask);
253253
}
254254
}
255255
}

src/main/java/se/bjurr/violations/comments/bitbucketserver/lib/client/BitbucketServerClient.java

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.io.File;
1313
import java.io.UnsupportedEncodingException;
1414
import java.util.ArrayList;
15+
import java.util.Arrays;
1516
import java.util.LinkedHashMap;
1617
import java.util.List;
1718
import net.minidev.json.JSONArray;
@@ -285,35 +286,21 @@ private BitbucketServerComment toBitbucketServerComment(LinkedHashMap<?, ?> pars
285286
final JSONArray jsonArrayTasks = (JSONArray) parsed.get("tasks");
286287
final JSONArray jsonArraySubComments = (JSONArray) parsed.get("comments");
287288

288-
List<LinkedHashMap<?, ?>> tasks = new ArrayList<>();
289-
List<LinkedHashMap<?, ?>> subComments = new ArrayList<>();
290-
291-
for (Object jsonArrayTask : jsonArrayTasks) {
292-
LinkedHashMap<?, ?> linkedHashMap = (LinkedHashMap<?, ?>) jsonArrayTask;
293-
tasks.add(linkedHashMap);
294-
}
295-
296-
for (Object jsonArraySubComment : jsonArraySubComments) {
297-
LinkedHashMap<?, ?> linkedHashMap = (LinkedHashMap<?, ?>) jsonArraySubComment;
298-
subComments.add(linkedHashMap);
299-
}
289+
final List<LinkedHashMap<?, ?>> tasks =
290+
Arrays.asList(jsonArrayTasks.toArray(new LinkedHashMap<?, ?>[0]));
291+
final List<LinkedHashMap<?, ?>> subComments =
292+
Arrays.asList(jsonArraySubComments.toArray(new LinkedHashMap<?, ?>[0]));
300293

301294
final List<BitbucketServerTask> bitbucketServerTasks = toBitbucketServerTasks(tasks);
302295
final List<BitbucketServerComment> bitbucketServerSubComments =
303296
toBitbucketServerComments(subComments);
304297

305-
BitbucketServerComment constructedComment = new BitbucketServerComment(version, text, id);
298+
final BitbucketServerComment comment = new BitbucketServerComment(version, text, id);
306299

307-
constructedComment.setTasks(bitbucketServerTasks);
308-
constructedComment.setComments(bitbucketServerSubComments);
300+
comment.setTasks(bitbucketServerTasks);
301+
comment.setComments(bitbucketServerSubComments);
309302

310-
return constructedComment;
311-
}
312-
313-
private BitbucketServerTask toBitbucketServerTask(LinkedHashMap<?, ?> parsed) {
314-
final Integer id = (Integer) parsed.get("id");
315-
final String text = (String) parsed.get("text");
316-
return new BitbucketServerTask(id, text);
303+
return comment;
317304
}
318305

319306
private List<BitbucketServerTask> toBitbucketServerTasks(List<LinkedHashMap<?, ?>> parsed) {
@@ -325,4 +312,10 @@ private List<BitbucketServerTask> toBitbucketServerTasks(List<LinkedHashMap<?, ?
325312

326313
return bitbucketServerTasks;
327314
}
315+
316+
private BitbucketServerTask toBitbucketServerTask(LinkedHashMap<?, ?> parsed) {
317+
final Integer id = (Integer) parsed.get("id");
318+
final String text = (String) parsed.get("text");
319+
return new BitbucketServerTask(id, text);
320+
}
328321
}

0 commit comments

Comments
 (0)