aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/prelude/hitfield/FieldIterator.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude/hitfield/FieldIterator.java')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/hitfield/FieldIterator.java61
1 files changed, 61 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/hitfield/FieldIterator.java b/container-search/src/main/java/com/yahoo/prelude/hitfield/FieldIterator.java
new file mode 100644
index 00000000000..b1d3abb73a7
--- /dev/null
+++ b/container-search/src/main/java/com/yahoo/prelude/hitfield/FieldIterator.java
@@ -0,0 +1,61 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.prelude.hitfield;
+
+import java.util.List;
+import java.util.ListIterator;
+
+/**
+ * A specialized list iterator to manipulate FieldParts in HitField objects.
+ *
+ * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a>
+ */
+public class FieldIterator implements ListIterator<FieldPart> {
+
+ private final ListIterator<FieldPart> realIterator;
+ private final HitField hitField;
+
+ public FieldIterator(List<FieldPart> fieldList, HitField hitField) {
+ this.hitField = hitField;
+ realIterator = fieldList.listIterator();
+ }
+
+ public void add(FieldPart o) {
+ realIterator.add(o);
+ hitField.markDirty();
+ }
+
+ public boolean hasNext() {
+ return realIterator.hasNext();
+ }
+
+ public boolean hasPrevious() {
+ return realIterator.hasPrevious();
+ }
+
+ public FieldPart next() {
+ return realIterator.next();
+ }
+
+ public int nextIndex() {
+ return realIterator.nextIndex();
+ }
+
+ public FieldPart previous() {
+ return realIterator.previous();
+ }
+
+ public int previousIndex() {
+ return realIterator.previousIndex();
+ }
+
+ public void remove() {
+ realIterator.remove();
+ hitField.markDirty();
+ }
+
+ public void set(FieldPart o) {
+ realIterator.set(o);
+ hitField.markDirty();
+ }
+
+}