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    }