Package org.apache.harmony.jndi.internal.parser

Examples of org.apache.harmony.jndi.internal.parser.AttributeTypeAndValuePair


                    filter.setValue("objectClass");
                } else {
                    if (attributes.size() == 1) {
                        filter = new Filter(Filter.EQUALITY_MATCH_FILTER);
                        Attribute att = attributes.getAll().next();
                        filter.setValue(new AttributeTypeAndValuePair(att
                                .getID(), att.get()));
                    } else {
                        NamingEnumeration<? extends Attribute> attrs = attributes
                                .getAll();
                        filter = new Filter(Filter.AND_FILTER);
                        while (attrs.hasMore()) {
                            Attribute attr = attrs.next();
                            String type = attr.getID();
                            NamingEnumeration<?> enuValues = attr.getAll();
                            while (enuValues.hasMore()) {
                                Object value = enuValues.next();
                                Filter child = new Filter(
                                        Filter.EQUALITY_MATCH_FILTER);
                                child.setValue(new AttributeTypeAndValuePair(
                                        type, value));
                                filter.addChild(child);
                            }
                        }
                    }
View Full Code Here


        List<Filter> filters;

        HashSet<SearchResult> filteredResults = null;
        HashSet<SearchResult> tempResults;
        Iterator<SearchResult> iterator;
        AttributeTypeAndValuePair pair;
        String attributeType;
        Object attributeValue;
        SearchResult searchResult;
        Attribute attr;
        NamingEnumeration<?> valuesEnum;
        Object value;
        boolean hasMatch;

        switch (filter.getType()) {
        case Filter.AND_FILTER:
            filteredResults = currentResults;
            filters = filter.getChildren();
            for (int i = 0; i < filters.size(); i++) {
                filteredResults = doFilter(filteredResults, filters.get(i));
            }
            break;

        case Filter.OR_FILTER:
            filters = filter.getChildren();
            filteredResults = new HashSet<SearchResult>();
            for (int i = 0; i < filters.size(); i++) {
                tempResults = doFilter(currentResults, filters.get(i));
                filteredResults.addAll(tempResults);
            }
            break;

        case Filter.NOT_FILTER:
            filteredResults = new HashSet<SearchResult>();
            Filter tempFilter = (Filter) filter.getValue();
            tempResults = doFilter(currentResults, tempFilter);

            iterator = currentResults.iterator();
            while (iterator.hasNext()) {
                searchResult = iterator.next();
                if (!tempResults.contains(searchResult)) {
                    filteredResults.add(searchResult);
                }
            }
            break;

        case Filter.EQUALITY_MATCH_FILTER:
        case Filter.APPROX_MATCH_FILTER:
            filteredResults = new HashSet<SearchResult>();
            pair = (AttributeTypeAndValuePair) filter.getValue();
            attributeType = pair.getType();
            attributeValue = pair.getValue();

            iterator = currentResults.iterator();
            while (iterator.hasNext()) {
                searchResult = iterator.next();
                attr = searchResult.getAttributes().get(attributeType);
                if (attr != null) {
                    hasMatch = false;
                    valuesEnum = attr.getAll();

                    while (valuesEnum.hasMore()) {
                        value = valuesEnum.next();
                        if (attributeValue.toString().equalsIgnoreCase(
                                value.toString())) {
                            hasMatch = true;
                        }
                    }
                    if (hasMatch) {
                        filteredResults.add(searchResult);
                    }
                }
            }
            break;

        case Filter.SUBSTRINGS_FILTER:
            filteredResults = new HashSet<SearchResult>();
            Filter.SubstringFilter substringFilter = (SubstringFilter) filter
                    .getValue();
            attributeType = substringFilter.getType();
            List<ChosenValue> list = substringFilter.getSubstrings();
            String attributePatternValue = ""; //$NON-NLS-1$
            for (int i = 0; i < list.size(); i++) {
                attributePatternValue += list.get(i).getValue().toString();
            }

            attributePatternValue = attributePatternValue.replaceAll("\\*", //$NON-NLS-1$
                    ".*"); //$NON-NLS-1$
            Pattern pattern = Pattern.compile(attributePatternValue,
                    Pattern.CASE_INSENSITIVE);

            iterator = currentResults.iterator();
            while (iterator.hasNext()) {
                searchResult = iterator.next();
                attr = searchResult.getAttributes().get(attributeType);
                if (attr != null) {
                    hasMatch = false;
                    valuesEnum = attr.getAll();
                    while (valuesEnum.hasMore()) {
                        value = valuesEnum.next();
                        if (pattern.matcher(value.toString()).matches()) {
                            hasMatch = true;
                        }
                    }
                    if (hasMatch) {
                        filteredResults.add(searchResult);
                    }
                }
            }

            break;

        case Filter.GREATER_OR_EQUAL_FILTER:
            filteredResults = new HashSet<SearchResult>();
            pair = (AttributeTypeAndValuePair) filter.getValue();
            attributeType = pair.getType();
            attributeValue = pair.getValue();
            iterator = currentResults.iterator();
            while (iterator.hasNext()) {
                searchResult = iterator.next();
                attr = searchResult.getAttributes().get(attributeType);
                if (attr != null) {
                    hasMatch = false;
                    valuesEnum = attr.getAll();
                    while (valuesEnum.hasMore()) {
                        value = valuesEnum.next();
                        if ((value.toString().compareTo(attributeValue
                                .toString())) >= 0) {
                            hasMatch = true;
                        }
                    }
                    if (hasMatch) {
                        filteredResults.add(searchResult);
                    }
                }
            }
            break;

        case Filter.LESS_OR_EQUAL_FILTER:
            filteredResults = new HashSet<SearchResult>();
            pair = (AttributeTypeAndValuePair) filter.getValue();
            attributeType = pair.getType();
            attributeValue = pair.getValue();
            iterator = currentResults.iterator();
            while (iterator.hasNext()) {
                searchResult = iterator.next();
                attr = searchResult.getAttributes().get(attributeType);
                if (attr != null) {
View Full Code Here

                filter = new Filter(Filter.PRESENT_FILTER);
                filter.setValue(des);
            } else {
                filter = new Filter(Filter.EQUALITY_MATCH_FILTER);
                filter
                        .setValue(new AttributeTypeAndValuePair(des, list
                                .get(0)));
            }
        } else {
            String initial = null;
            String any = "";
View Full Code Here

      des = attrDescr();
      if (jj_2_2(2)) {
        jj_consume_token(APPROX);
        jj_consume_token(EQUAL);
        value = value();
                    filter = new Filter(Filter.APPROX_MATCH_FILTER); filter.setValue(new AttributeTypeAndValuePair(des, value));
      } else {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case GREATER:
          jj_consume_token(GREATER);
          jj_consume_token(EQUAL);
          value = value();
                    filter = new Filter(Filter.GREATER_OR_EQUAL_FILTER);filter.setValue(new AttributeTypeAndValuePair(des, value));
          break;
        case LESS:
          jj_consume_token(LESS);
          jj_consume_token(EQUAL);
          value = value();
                    filter = new Filter(Filter.LESS_OR_EQUAL_FILTER);filter.setValue(new AttributeTypeAndValuePair(des, value));
          break;
        default:
          jj_la1[22] = jj_gen;
          if (jj_2_3(3)) {
            jj_consume_token(EQUAL);
View Full Code Here

                    filter.setValue("objectClass");
                } else {
                    if (attributes.size() == 1) {
                        filter = new Filter(Filter.EQUALITY_MATCH_FILTER);
                        Attribute att = attributes.getAll().next();
                        filter.setValue(new AttributeTypeAndValuePair(att
                                .getID(), att.get()));
                    } else {
                        NamingEnumeration<? extends Attribute> attrs = attributes
                                .getAll();
                        filter = new Filter(Filter.AND_FILTER);
                        while (attrs.hasMore()) {
                            Attribute attr = attrs.next();
                            String type = attr.getID();
                            NamingEnumeration<?> enuValues = attr.getAll();
                            while (enuValues.hasMore()) {
                                Object value = enuValues.next();
                                Filter child = new Filter(
                                        Filter.EQUALITY_MATCH_FILTER);
                                child.setValue(new AttributeTypeAndValuePair(
                                        type, value));
                                filter.addChild(child);
                            }
                        }
                    }
View Full Code Here

        } else {
            // only one attribute type and value pair
            if (attributes.size() == 1 && attributes.getAll().next().size() == 1) {
                filter = new Filter(Filter.EQUALITY_MATCH_FILTER);
                Attribute att = attributes.getAll().next();
                filter.setValue(new AttributeTypeAndValuePair(att.getID(), att
                        .get()));
            } else {
                NamingEnumeration<? extends Attribute> attrs = attributes
                        .getAll();
                filter = new Filter(Filter.AND_FILTER);
                while (attrs.hasMore()) {
                    Attribute attr = attrs.next();
                    String type = attr.getID();
                    NamingEnumeration<?> enuValues = attr.getAll();
                    while (enuValues.hasMore()) {
                        Object value = enuValues.next();
                        Filter child = new Filter(Filter.EQUALITY_MATCH_FILTER);
                        child.setValue(new AttributeTypeAndValuePair(type,
                                value));
                        filter.addChild(child);
                    }
                }
            }
View Full Code Here

TOP

Related Classes of org.apache.harmony.jndi.internal.parser.AttributeTypeAndValuePair

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.