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