package net.sourceforge.mayfly.evaluation.from;
import net.sourceforge.mayfly.MayflyInternalException;
import net.sourceforge.mayfly.util.ImmutableList;
import java.util.Iterator;
public class From {
private final ImmutableList<FromElement> fromElements;
public From(FromElement... elements) {
this.fromElements = ImmutableList.fromArray(elements);
}
public From(ImmutableList fromElements) {
this.fromElements = fromElements;
}
public Iterator iterator() {
return fromElements.iterator();
}
public From with(FromElement fromElement) {
return new From(fromElements.with(fromElement));
}
public From without(int index) {
return new From(fromElements.without(index));
}
public From with(int index, FromElement element) {
return new From(fromElements.with(index, element));
}
public FromElement soleElement() {
if (size() != 1) {
throw new MayflyInternalException(
"planner left us " + size() + " elements");
}
return element(0);
}
public int size() {
return fromElements.size();
}
public FromElement element(int index) {
return fromElements.get(index);
}
}