package com.revolsys.record;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.NoSuchElementException;
import com.revolsys.record.schema.RecordDefinition;
public class RecordEntrySetIterator
implements Iterator<Entry<String, Object>>, Entry<String, Object> {
private int index = -1;
private final Record record;
private final int size;
private final RecordDefinition recordDefinition;
public RecordEntrySetIterator(final Record record) {
this.record = record;
this.recordDefinition = record.getRecordDefinition();
this.size = this.recordDefinition.getFieldCount();
}
@Override
public String getKey() {
return this.recordDefinition.getFieldName(this.index);
}
@Override
public Object getValue() {
return this.record.getValue(this.index);
}
@Override
public boolean hasNext() {
if (this.index + 1 < this.size) {
return true;
} else {
return false;
}
}
@Override
public Entry<String, Object> next() {
this.index++;
if (this.index < this.size) {
return this;
} else {
throw new NoSuchElementException();
}
}
@Override
public Object setValue(final Object value) {
return this.record.setValue(this.index, value);
}
@Override
public String toString() {
if (this.index < 0 || this.index >= this.size) {
return "Invalid";
} else {
return getKey() + "=" + getValue();
}
}
}