private static void stringFilter(System.Collections.IEnumerator itr, System.Text.StringBuilder filter)
{
int op = - 1;
filter.Append('(');
while (itr.MoveNext())
{
System.Object filterpart = itr.Current;
if (filterpart is System.Int32)
{
op = ((System.Int32) filterpart);
switch (op)
{
case AND:
filter.Append('&');
break;
case OR:
filter.Append('|');
break;
case NOT:
filter.Append('!');
break;
case EQUALITY_MATCH: {
filter.Append((System.String) itr.Current);
filter.Append('=');
sbyte[] value_Renamed = (sbyte[]) itr.Current;
filter.Append(byteString(value_Renamed));
break;
}
case GREATER_OR_EQUAL: {
filter.Append((System.String) itr.Current);
filter.Append(">=");
sbyte[] value_Renamed = (sbyte[]) itr.Current;
filter.Append(byteString(value_Renamed));
break;
}
case LESS_OR_EQUAL: {
filter.Append((System.String) itr.Current);
filter.Append("<=");
sbyte[] value_Renamed = (sbyte[]) itr.Current;
filter.Append(byteString(value_Renamed));
break;
}
case PRESENT:
filter.Append((System.String) itr.Current);
filter.Append("=*");
break;
case APPROX_MATCH:
filter.Append((System.String) itr.Current);
filter.Append("~=");
sbyte[] value_Renamed2 = (sbyte[]) itr.Current;
filter.Append(byteString(value_Renamed2));
break;
case EXTENSIBLE_MATCH:
System.String oid = (System.String) itr.Current;
filter.Append((System.String) itr.Current);
filter.Append(':');
filter.Append(oid);
filter.Append(":=");
filter.Append((System.String) itr.Current);
break;
case SUBSTRINGS: {
filter.Append((System.String) itr.Current);
filter.Append('=');
bool noStarLast = false;
while (itr.MoveNext())
{
op = ((System.Int32) itr.Current);
switch (op)
{
case INITIAL:
filter.Append((System.String) itr.Current);
filter.Append('*');
noStarLast = false;
break;
case ANY:
if (noStarLast)
filter.Append('*');
filter.Append((System.String) itr.Current);
filter.Append('*');
noStarLast = false;
break;
case FINAL:
if (noStarLast)
filter.Append('*');
filter.Append((System.String) itr.Current);
break;
}
}
break;
}
}
}
else if (filterpart is System.Collections.IEnumerator)
{
stringFilter((System.Collections.IEnumerator) filterpart, filter);
}
}
filter.Append(')');
}