Novell.Directory.Ldap.Rfc2251.RfcFilter.stringFilter C# (CSharp) Method

stringFilter() private static method

Uses a filterIterator to create a string representation of a filter.
private static stringFilter ( System itr, System filter ) : void
itr System Iterator of filter components ///
filter System Buffer to place a string representation of the filter ///
return void
        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(')');
        }