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<SearchParam> supportedParams = new HashSet<>();
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 name) {
52 addSupportedParam(name, name);
55 public void addSupportedParam(String name, String label) {
56 this.supportedParams.add(new SearchParam(name, label));
59 public Set<SearchParam> getSupportedParams() {
60 return supportedParams;
64 public boolean equals(Object obj) {
67 if (obj.getClass() != getClass())
69 SearchEngine other = (SearchEngine)obj;
70 return id.equals(other.id);
74 public String toString() {