ValueIterator.java
package com.surrealdb;
import java.util.Iterator;
import java.util.Objects;
/**
* The ValueIterator class provides an iterator for the Value type, allowing iteration
* over a collection of Value objects, typically used within the context of array
* structures that extend the functionality provided by the library.
* <p>
* This class implements the Iterator interface for the
* Value type, enabling standard iteration mechanisms such as hasNext and next methods.
* <p>
* Methods:
* - hasNext(): Checks if there are more elements in the collection to iterate over.
* - next(): Returns the next Value in the iteration.
*/
public class ValueIterator extends Native implements Iterator<Value> {
ValueIterator(long ptr) {
super(ptr);
}
private static native boolean hasNext(long ptr);
private static native long next(long ptr);
@Override
final String toString(long ptr) {
return getClass().getName() + "[ptr=" + ptr + "]";
}
@Override
final int hashCode(long ptr) {
return Objects.hashCode(ptr);
}
@Override
final boolean equals(long ptr1, long ptr2) {
return ptr1 == ptr2;
}
@Override
final native boolean deleteInstance(long ptr);
@Override
public boolean hasNext() {
return hasNext(getPtr());
}
@Override
public Value next() {
return new Value(next(getPtr()));
}
}