toOdata method
Implementation
String toOdata() {
if (this.isEmpty) return "";
String filter = '';
this.forEach((e) {
if (filter.isNotEmpty) {
if (e.op == Logic.or) {
filter += " OR ";
} else {
filter += " AND ";
}
}
if (e.logicalOperator == Operators.endsWidth) {
filter +=
" endsWidth(${escapeFieldName(e.fieldName)}, '${e.values.first}')";
} else if (e.logicalOperator == Operators.contains) {
filter +=
" contains(${escapeFieldName(e.fieldName)}, '${e.values.first}')";
} else if (e.logicalOperator == Operators.notContains) {
filter +=
" not contains(${escapeFieldName(e.fieldName)}, '${e.values.first}')";
} else if (e.logicalOperator == Operators.startsWith) {
filter +=
" startsWith(${escapeFieldName(e.fieldName)}, '${e.values.first}')";
} else if (e.logicalOperator == Operators.between) {
filter += " ge ${e.values.first} and le ${e.values.last}";
} else {
filter += "${escapeFieldName(e.fieldName)} ";
switch (e.logicalOperator) {
case Operators.equals:
filter += "eq";
break;
case Operators.greaterThan:
filter += "gt";
break;
case Operators.greaterThanOrEqualTo:
filter += "ge";
break;
case Operators.lessThan:
filter += "lt";
break;
case Operators.lessThanOrEqualTo:
filter += "le";
break;
default:
throw UnimplementedError();
}
filter += " ${e.values.first}";
}
});
return filter;
}