aboutsummaryrefslogtreecommitdiffstats
path: root/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/editor/CursorImpl.java
diff options
context:
space:
mode:
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.java26
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;