package org.ovirt.engine.core.searchbackend;
import java.util.List;
import org.ovirt.engine.core.common.utils.Pair;
/**
* An interface to be implemented by all Condition fields auto completers
*/
public interface IConditionFieldAutoCompleter extends IAutoCompleter {
boolean validateFieldValue(String fieldName, String fieldValue);
String getDbFieldName(String fieldName);
/**
* @param fieldName UI column identifier
* @return list of 'ORDER BY' elements
*/
List<SyntaxChecker.SortByElement> getSortByElements(String fieldName);
Class<?> getDbFieldType(String fieldName);
IAutoCompleter getFieldRelationshipAutoCompleter(String fieldName);
IConditionValueAutoCompleter getFieldValueAutoCompleter(String fieldName);
String buildFreeTextConditionSql(String tableName, String relations, String value, boolean caseSensitive);
String getMatchingSyntax(String fieldName, boolean positive, boolean caseSensitive);
String getWildcard(String fieldName);
String buildConditionSql(String objName,
String fieldName,
String customizedValue,
String customizedRelation,
String tableName,
boolean caseSensitive);
void formatValue(String fieldName, Pair<String, String> pair, boolean caseSensitive);
}