--- /dev/null
+package org.simantics.workbench.search;\r
+\r
+import java.util.HashSet;\r
+import java.util.Set;\r
+\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.Resource;\r
+import org.simantics.scl.runtime.function.Function5;\r
+\r
+public class SearchEngine {\r
+\r
+ private String id;\r
+ private String name;\r
+ private Function5<IProgressMonitor, ReadGraph, Resource, SearchQuery, Integer, SearchResult> searchFunction;\r
+ private Set<String> supportedParams = new HashSet<String>();\r
+ private boolean enabledByDefault;\r
+ \r
+ public SearchEngine(String id, Function5<IProgressMonitor, ReadGraph, Resource, SearchQuery, Integer, SearchResult> searchFunction, boolean enabledByDefault) {\r
+ this(id, id, searchFunction, enabledByDefault);\r
+ }\r
+ \r
+ public SearchEngine(String id, String name, Function5<IProgressMonitor, ReadGraph, Resource, SearchQuery, Integer, SearchResult> searchFunction, boolean enabledByDefault) {\r
+ this.id = id;\r
+ this.name = name;\r
+ this.searchFunction = searchFunction;\r
+ this.enabledByDefault = enabledByDefault;\r
+ }\r
+ \r
+ public String getId() {\r
+ return id;\r
+ }\r
+ \r
+ public String getName() {\r
+ return name;\r
+ }\r
+ \r
+ public Function5<IProgressMonitor, ReadGraph, Resource, SearchQuery, Integer, SearchResult> getSearchFunction() {\r
+ return searchFunction;\r
+ }\r
+\r
+ public boolean isEnabledByDefault() {\r
+ return enabledByDefault;\r
+ }\r
+\r
+ @Override\r
+ public int hashCode() {\r
+ return id.hashCode();\r
+ }\r
+\r
+ public void addSupportedParam(String param) {\r
+ this.supportedParams.add(param);\r
+ }\r
+ \r
+ public Set<String> getSupportedParams() {\r
+ return supportedParams;\r
+ }\r
+ \r
+ @Override\r
+ public boolean equals(Object obj) {\r
+ if (obj == null)\r
+ return false;\r
+ if (obj.getClass() != getClass())\r
+ return false;\r
+ SearchEngine other = (SearchEngine)obj;\r
+ return id.equals(other.id);\r
+ }\r
+ \r
+ @Override\r
+ public String toString() {\r
+ return name;\r
+ }\r
+}\r