
com.weaverplatform.sp4rql.model.restriction.BindRestriction Maven / Gradle / Ivy
package com.weaverplatform.sp4rql.model.restriction;
import com.weaverplatform.sp4rql.model.expression.ExpressionArgument;
import com.weaverplatform.sp4rql.model.scope.Sp4rqlScope;
import com.weaverplatform.sp4rql.model.token.VariableToken;
import com.weaverplatform.util.IndentStringBuilder;
import java.util.HashSet;
public class BindRestriction implements Sp4rqlRestriction {
private VariableToken token;
private ExpressionArgument expression;
private String alias;
private Sp4rqlScope scope;
public BindRestriction(VariableToken token, ExpressionArgument expression) {
this.token = token;
this.expression = expression;
}
@Override
public void setAlias(String alias) {
this.alias = alias;
}
@Override
public String getAlias() {
return alias;
}
@Override
public void setInScope(Sp4rqlScope scope) {
this.scope = scope;
}
@Override
public Sp4rqlScope inScope() {
return scope;
}
@Override
public HashSet getExposedVariables() {
HashSet tokens = new HashSet<>();
tokens.add(token);
return tokens;
}
public ExpressionArgument getExpression() {
return expression;
}
public void buildString(IndentStringBuilder builder) {
builder.append("BIND(");
expression.buildString(builder);
builder.append(" AS ");
token.buildString(builder);
builder.append(")");
builder.append(" # ");
builder.append(getAlias());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy