package org.aksw.jena_sparql_api.views; import org.aksw.jena_sparql_api.restriction.RestrictionSetImpl; import org.apache.jena.sparql.expr.Expr; /** * [SPARQL level] * * A restrictedExpr is comprised of * - An SPARQL expression * - restrictions associated with its corresponding value after evaluation (under some interpretation) * * Example: * Some expression can be declared to yield integers in the range [0..4] * or uris with certain prefixes. * * * * @author Claus Stadler <cstadler@informatik.uni-leipzig.de> * */ public class RestrictedExpr { private Expr expr; private RestrictionSetImpl restrictions; public RestrictedExpr(Expr expr) { this(expr, new RestrictionSetImpl()); } public RestrictedExpr(Expr expr, RestrictionSetImpl restrictions) { super(); this.expr = expr; this.restrictions = restrictions; } public static RestrictedExpr create(Expr expr) { return new RestrictedExpr(expr); } public static RestrictedExpr create(Expr expr, RestrictionSetImpl restrictions) { return new RestrictedExpr(expr, restrictions); } public Expr getExpr() { return expr; } public RestrictionSetImpl getRestrictions() { return restrictions; } @Override public String toString() { return "RestrictedExpr [expr=" + expr + ", restrictions=" + restrictions + "]"; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((expr == null) ? 0 : expr.hashCode()); result = prime * result + ((restrictions == null) ? 0 : restrictions.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; RestrictedExpr other = (RestrictedExpr) obj; if (expr == null) { if (other.expr != null) return false; } else if (!expr.equals(other.expr)) return false; if (restrictions == null) { if (other.restrictions != null) return false; } else if (!restrictions.equals(other.restrictions)) return false; return true; } }