package edu.uncc.cs.watsonsim.search;
import java.util.List;
import com.google.gson.reflect.TypeToken;
import edu.uncc.cs.watsonsim.Environment;
import edu.uncc.cs.watsonsim.Passage;
public class CachingSearcher extends Searcher {
private final Searcher searcher;
private final String engine_name;
public CachingSearcher(Environment env, Searcher searcher, String engine_name) {
super(env);
this.searcher = searcher;
this.engine_name = engine_name;
}
public List<Passage> query(String query) {
return env.computeIfAbsent(
"search:" + engine_name +":"+ query,
k -> searcher.query(query),
new TypeToken<List<Passage>>(){}.getType()
);
}
}