package org.ovirt.engine.core.searchbackend;
import org.ovirt.engine.core.compat.DateTime;
import org.ovirt.engine.core.compat.DayOfWeek;
import org.ovirt.engine.core.compat.EnumCompat;
import org.ovirt.engine.core.compat.StringHelper;
public class DateEnumValueAutoCompleter extends BaseAutoCompleter implements IConditionValueAutoCompleter {
private java.util.HashMap<String, Integer> mEnumValues = new java.util.HashMap<String, Integer>();
public DateEnumValueAutoCompleter(Class enumerationType) {
super();
for (int val : EnumCompat.GetIntValues(enumerationType)) {
String ValName = EnumCompat.GetName(enumerationType, val).toUpperCase();
mEnumValues.put(ValName, val);
mVerbs.put(ValName, ValName);
}
AddDaysOfWeek();
buildCompletions();
}
private void AddDaysOfWeek() {
String day;
int dayIndex = 3;
for (int i = -2; i > -8; i--) {
day = DateTime.getNow().AddDays(i).getDayOfWeek().toString();
mEnumValues.put(day, dayIndex);
mVerbs.put(day, day);
dayIndex++;
}
}
public String convertFieldEnumValueToActualValue(String fieldValue) {
if (DateUtils.parse(fieldValue) != null) {
return fieldValue;
}
// check enum values
if (mEnumValues.containsKey(fieldValue.toUpperCase())) {
return mEnumValues.get(fieldValue.toUpperCase()).toString();
}
// check for rest of the week
for (DayOfWeek day : DayOfWeek.values()) {
if (StringHelper.EqOp(fieldValue.toUpperCase(), day.toString().toUpperCase())) {
return day.toString();
}
}
return "";
}
}