package org.rascalmpl.value.impl.fast;
import org.rascalmpl.value.ISet;
import org.rascalmpl.value.ISetRelation;
public class RelationViewOnSet implements ISetRelation<ISet> {
protected final ISet rel1;
public RelationViewOnSet(ISet rel1) {
this.rel1 = rel1;
}
@Override
public ISet compose(ISetRelation<ISet> rel2) {
return RelationalFunctionsOnSet.compose(rel1, rel2.asSet());
}
@Override
public ISet closure() {
return RelationalFunctionsOnSet.closure(rel1);
}
@Override
public ISet closureStar() {
return RelationalFunctionsOnSet.closureStar(rel1);
}
@Override
public int arity() {
return rel1.getElementType().getArity();
}
@Override
public ISet project(int... fieldIndexes) {
return RelationalFunctionsOnSet.project(rel1, fieldIndexes);
}
@Override
public ISet projectByFieldNames(String... fieldsNames) {
return RelationalFunctionsOnSet.projectByFieldNames(rel1, fieldsNames);
}
@Override
public ISet carrier() {
return RelationalFunctionsOnSet.carrier(rel1);
}
@Override
public ISet domain() {
return RelationalFunctionsOnSet.domain(rel1);
}
@Override
public ISet range() {
return RelationalFunctionsOnSet.range(rel1);
}
@Override
public ISet asSet() {
return rel1;
}
@Override
public String toString() {
return rel1.toString();
}
}