001 package org.nlp2rdf.core.util;
002
003 import eu.lod2.nlp2rdf.schema.str.IOffsetBasedString;
004 import eu.lod2.nlp2rdf.schema.str.IString;
005 import opennlp.tools.util.Span;
006 import org.nlp2rdf.core.URIGenerator;
007
008 import java.util.Comparator;
009
010 /**
011 */
012 public class URIComparator implements Comparator<IString> {
013
014 final String prefix;
015 final String text;
016 final URIGenerator uriGenerator;
017
018 public URIComparator(String prefix, String text, URIGenerator uriGenerator) {
019 this.prefix = prefix;
020 this.text = text;
021 this.uriGenerator = uriGenerator;
022 }
023
024 @Override
025 public int compare(IString o1, IString o2) {
026 if (o1.getURI().equals(o2)) {
027 return 0;
028 }
029 Span a = uriGenerator.getSpanFor(prefix, o1.getURI(), text, o1.getAnchorOf());
030 Span b = uriGenerator.getSpanFor(prefix, o2.getURI(), text, o1.getAnchorOf());
031 return a.compareTo(b);
032 }
033
034 @Override
035 public boolean equals(Object obj) {
036 return this == obj;
037 }
038 }