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

com.weaverplatform.sp4rql.model.token.VariableToken Maven / Gradle / Ivy

package com.weaverplatform.sp4rql.model.token;

import com.weaverplatform.sp4rql.model.expression.ExpressionArgument;
import com.weaverplatform.sp4rql.model.solution.SolutionType;
import com.weaverplatform.util.IndentStringBuilder;

public class VariableToken extends Sp4rqlToken implements ExpressionArgument {

  private final String label;

  public VariableToken(String label) {
    this.label = label;
  }

  public String getLabel() {
    return label;
  }

  @Override
  public Integer resolvesTo() {
    return SolutionType.union(SolutionType.NODE, SolutionType.LITERAL, SolutionType.PREDICATE, SolutionType.GRAPH);
  }

  @Override
  public String toString() {
    return String.format("?%s", label);
  }

  @Override
  public void buildString(IndentStringBuilder builder) {
    builder.append("?");
    builder.append(label);
  }

  @Override
  public int hashCode() {
    return label.hashCode();
  }

  @Override
  public boolean equals(Object object) {
    if(! (object instanceof VariableToken)) {
      return false;
    }
    return ((VariableToken) object).getLabel().equals(getLabel());
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy