package org.aksw.jena_sparql_api.shape.syntax;
import org.aksw.jena_sparql_api.concepts.Relation;
import org.apache.jena.sparql.path.Path;
import org.apache.jena.sparql.util.NodeIsomorphismMap;
/**
* Path which makes use of an arbitrary SPARQL relation
*
* @author raven
*
*/
public class P_Relation
extends PathBaseEx
{
protected Relation relation;
@Override
public void visit(PathExVisitor visitor) {
visitor.visit(this);
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((relation == null) ? 0 : relation.hashCode());
return result;
}
@Override
public boolean equalTo(Path path2, NodeIsomorphismMap isoMap) {
boolean result;
// TODO We should make use of the isoMap
if(path2 instanceof P_Relation) {
P_Relation p = (P_Relation)path2;
result = relation == null ? p.relation == null : relation.equals(p.relation);
} else {
result = false;
}
return result;
}
}