package org.gcube.data.access.storagehub.query.sql2.evaluators.text; import javax.inject.Singleton; import org.gcube.common.storagehub.model.expressions.Expression; import org.gcube.common.storagehub.model.expressions.text.Contains; import org.gcube.data.access.storagehub.query.sql2.evaluators.Evaluator; @Singleton public class ContainsEvaluator extends Evaluator { @Override public String evaluate(Contains expr, Iterable>> evaluators) { return String.format("node.[%s] LIKE '%%%s%%'", expr.getSearchableField().getName(), expr.getValue()); } public Evaluator> getEvaluator(Class type, Iterable>> evaluators){ for (Evaluator> eval: evaluators) { if (eval.getType().equals(type)) return eval; } throw new IllegalStateException("evaluator not found for class "+type.getName()); } @Override public Class getType() { return Contains.class; } }