be.ugent.rml.store.Quad Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rmlmapper Show documentation
Show all versions of rmlmapper Show documentation
The RMLMapper executes RML rules to generate high quality Linked Data from multiple originally (semi-)structured data sources.
The newest version!
package be.ugent.rml.store;
import be.ugent.rml.term.Term;
public class Quad implements Comparable {
private Term subject, predicate, object, graph;
public Quad(Term subject, Term predicate, Term object, Term graph) {
this.subject = subject;
this.predicate = predicate;
this.object = object;
this.graph = graph;
}
public Quad(Term subject, Term predicate, Term object) {
this(subject, predicate, object, null);
}
public Term getSubject() {
return subject;
}
public Term getPredicate() {
return predicate;
}
public Term getObject() {
return object;
}
public Term getGraph() {
return graph;
}
@Override
public int compareTo(Quad o) {
int comparison;
if (this.graph == null || o.getGraph() == null) {
comparison = 0;
} else {
if (this.graph == null) {
comparison = -1;
} else if (o.getGraph() == null) {
comparison = 1;
} else {
comparison = this.graph.toString().compareTo(o.getGraph().toString());
}
}
if (comparison == 0) {
comparison = compareTerms(this.subject, o.getSubject());
if (comparison == 0) {
comparison = compareTerms(this.predicate, o.getPredicate());
if (comparison == 0) {
return compareTerms(this.object, o.getObject());
} else {
return comparison;
}
} else {
return comparison;
}
} else {
return comparison;
}
}
private int compareTerms(Term t1, Term t2) {
if (t1 == null || t2 == null) {
return 0;
} else {
return t1.toString().compareTo(t2.toString());
}
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy