001package org.dllearner.algorithms.qtl.datastructures;
002
003import org.apache.jena.graph.Node;
004import org.apache.jena.graph.NodeVisitor;
005import org.apache.jena.graph.Node_Concrete;
006import org.apache.jena.graph.Node_URI;
007import org.apache.jena.sparql.util.NodeComparator;
008
009/**
010 * @author Lorenz Buehmann
011 */
012public class NodeInv extends Node_Concrete implements Comparable<NodeInv>{
013
014        private final Node node;
015
016        public NodeInv(Node node) {
017                super(node.getURI());
018                this.node = node;
019        }
020
021        public Node getNode() {
022                return node;
023        }
024
025        @Override
026        public Object visitWith(NodeVisitor v) {
027                { return v.visitURI( (Node_URI) node, (String) label ); }
028        }
029
030        @Override
031        public boolean isURI() {
032                return true;
033        }
034
035        @Override
036        public String getURI() {
037                return node.getURI();
038        }
039
040        @Override
041        public boolean equals(Object o) {
042                if (this == o) return true;
043                if (!(o instanceof NodeInv)) return false;
044
045                NodeInv nodeInv = (NodeInv) o;
046
047                return node.equals(nodeInv.node);
048        }
049
050        @Override
051        public int hashCode() {
052                int result = super.hashCode();
053                result = 31 * result + node.hashCode();
054                return result;
055        }
056
057        @Override
058        public int compareTo(NodeInv o) {
059                if(this.getClass().equals(o.getClass())) {
060                        return new NodeComparator().compare(this, o);
061                } else {
062                        return -1;
063                }
064        }
065}