diff options
Diffstat (limited to 'node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/editor/CursorImpl.java')
-rw-r--r-- | node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/editor/CursorImpl.java | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/editor/CursorImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/editor/CursorImpl.java index 35bd6f74aa1..c5f708d908c 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/editor/CursorImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/editor/CursorImpl.java @@ -3,12 +3,14 @@ package com.yahoo.vespa.hosted.node.admin.task.util.editor; import java.util.Arrays; -import java.util.List; import java.util.Optional; import java.util.function.Consumer; import java.util.function.Function; import java.util.regex.Pattern; +import static com.yahoo.vespa.hosted.node.admin.task.util.editor.Comparables.max; +import static com.yahoo.vespa.hosted.node.admin.task.util.editor.Comparables.min; + /** * @author hakon */ @@ -65,13 +67,8 @@ public class CursorImpl implements Cursor { public String getTextTo(Mark mark) { validateMark(mark); - Position start = mark.position(); - Position end = position; - if (start.isAfter(end)) { - Position tmp = start; - start = end; - end = tmp; - } + Position start = min(mark.position(), position); + Position end = max(mark.position(), position); return textBuffer.getSubstring(start, end); } @@ -230,7 +227,7 @@ public class CursorImpl implements Cursor { } @Override - public Cursor writeLines(List<String> lines) { + public Cursor writeLines(Iterable<String> lines) { return writeLine(String.join("\n", lines)); } @@ -299,13 +296,9 @@ public class CursorImpl implements Cursor { @Override public Cursor deleteTo(Mark mark) { - Position start = mark.position(); - Position end = position; - if (start.isAfter(end)) { - Position tmp = start; - start = end; - end = tmp; - } + validateMark(mark); + Position start = min(mark.position(), position); + Position end = max(mark.position(), position); textBuffer.delete(start, end); return this; @@ -318,7 +311,6 @@ public class CursorImpl implements Cursor { return false; } - // position is unaffected by delete since position == match.get().startOfMatch() textBuffer.delete(match.get().startOfMatch(), match.get().endOfMatch()); write(replacer.apply(match.get())); return true; |