package org.quaere;
import org.quaere.expressions.Identifier;
import org.quaere.expressions.Expression;
import java.util.Iterator;
import java.util.List;
import java.util.Arrays;
public class QueryableArray<T> implements Queryable<T> {
private final List<T> innerList;
public QueryableArray(T[] array) {
this.innerList = Arrays.asList(array);
}
public QueryEngine createQueryEngine() {
return new QueryableArrayQueryEngine(this);
}
public Identifier getSourceIdentifier(Identifier identifier) {
return new Identifier("__quare_quaere_quaere_" + identifier.name);
}
public Iterator<T> iterator() {
return innerList.iterator();
}
public class QueryableArrayQueryEngine implements QueryEngine {
private QueryableArray<T> source;
public QueryableArrayQueryEngine(QueryableArray<T> queryableArray) {
this.source = queryableArray;
}
public void addSource(Identifier identifer, Queryable<?> source) {
}
public <T> T evaluate(Expression query) {
return (T) this.source.innerList;
}
}
}