return joinImpl;
}
public <X, T, E extends T> ListJoin<X, E> treat(ListJoin<X, T> join, Class<E> type) {
ListJoinImpl parentJoin = (ListJoinImpl)join;
ListJoin joinImpl = null;
if (join instanceof BasicListJoinImpl) {
joinImpl = new BasicListJoinImpl<X, E>(parentJoin, this.metamodel, type,
parentJoin.currentNode.treat(type), parentJoin.getModel(), parentJoin.getJoinType());
} else {
joinImpl = new ListJoinImpl<X, E>((Path)join, this.metamodel.managedType(type), this.metamodel,