package org.aksw.sparqlify.core.algorithms; import java.util.Collection; import org.apache.jena.sdb.core.Generator; import org.apache.jena.sdb.core.Gensym; public class GeneratorBlacklist implements Generator { private Generator generator; private Collection<String> blacklist; public GeneratorBlacklist(Generator generator, Collection<String> blacklist) { this.generator = generator; this.blacklist = blacklist; } @Override public String next() { String result; do { result = generator.next(); } while(blacklist.contains(result)); return result; } @Override public String current() { String result = generator.current(); return result; } public static GeneratorBlacklist create(String base, Collection<String> blacklist) { Generator generator = Gensym.create(base); GeneratorBlacklist result = create(generator, blacklist); return result; } public static GeneratorBlacklist create(Generator generator, Collection<String> blacklist) { GeneratorBlacklist result = new GeneratorBlacklist(generator, blacklist); return result; } @Override public String toString() { return "current: " + generator.current() + ", blacklist: " + blacklist; } }