All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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