package org.quaere.alias;
import java.util.List;
class Selector<T> {
private FieldMapping<T> mapping;
private T instance;
private List<T> list;
private Selector<T> join;
private T currentItem;
Selector(T instance, FieldMapping<T> mapping, List<T> list) {
this.instance = instance;
this.mapping = mapping;
this.list = list;
}
T getInstance() {
return instance;
}
void setJoin(Selector<T> join) {
this.join = join;
}
List<T> getList() {
return list;
}
void iterate(ListVisitor<T> visitor) {
for (T item : list) {
currentItem = item;
if (join == null) {
visitor.visit();
} else {
join.iterate(visitor);
}
}
}
T getCurrentItem() {
return currentItem;
}
FieldMapping<T> getMapping() {
return mapping;
}
}