return joinImpl;
}
public <X, K, T, V extends T> MapJoin<X, K, V> treat(MapJoin<X, K, T> join, Class<V> type) {
MapJoinImpl parentJoin = (MapJoinImpl)join;
MapJoin joinImpl = null;
if (join instanceof BasicMapJoinImpl) {
joinImpl = new BasicMapJoinImpl<X, K, V>(parentJoin, this.metamodel, type,
parentJoin.currentNode.treat(type), parentJoin.getModel(), parentJoin.getJoinType());
} else {
joinImpl = new MapJoinImpl<X, K, V>((Path)join, this.metamodel.managedType(type), this.metamodel,