1 package org.simantics.workbench.search;
3 import java.util.HashSet;
6 import org.eclipse.core.runtime.IProgressMonitor;
7 import org.simantics.db.ReadGraph;
8 import org.simantics.db.Resource;
9 import org.simantics.scl.runtime.function.Function5;
11 public class SearchEngine {
15 private Function5<IProgressMonitor, ReadGraph, Resource, SearchQuery, Integer, SearchResult> searchFunction;
16 private Set<String> supportedParams = new HashSet<String>();
17 private boolean enabledByDefault;
19 public SearchEngine(String id, Function5<IProgressMonitor, ReadGraph, Resource, SearchQuery, Integer, SearchResult> searchFunction, boolean enabledByDefault) {
20 this(id, id, searchFunction, enabledByDefault);
23 public SearchEngine(String id, String name, Function5<IProgressMonitor, ReadGraph, Resource, SearchQuery, Integer, SearchResult> searchFunction, boolean enabledByDefault) {
26 this.searchFunction = searchFunction;
27 this.enabledByDefault = enabledByDefault;
30 public String getId() {
34 public String getName() {
38 public Function5<IProgressMonitor, ReadGraph, Resource, SearchQuery, Integer, SearchResult> getSearchFunction() {
39 return searchFunction;
42 public boolean isEnabledByDefault() {
43 return enabledByDefault;
47 public int hashCode() {
51 public void addSupportedParam(String param) {
52 this.supportedParams.add(param);
55 public Set<String> getSupportedParams() {
56 return supportedParams;
60 public boolean equals(Object obj) {
63 if (obj.getClass() != getClass())
65 SearchEngine other = (SearchEngine)obj;
66 return id.equals(other.id);
70 public String toString() {