Fix OPENDJ-485: Simplify SDK Filter static factory method names.
| | |
| | | return decodeSubstringsFilter(reader); |
| | | |
| | | case TYPE_FILTER_PRESENCE: |
| | | return Filter.newPresentFilter(reader.readOctetStringAsString(type)); |
| | | return Filter.present(reader.readOctetStringAsString(type)); |
| | | |
| | | case TYPE_FILTER_EXTENSIBLE_MATCH: |
| | | return decodeExtensibleMatchFilter(reader); |
| | | |
| | | default: |
| | | return Filter.newUnrecognizedFilter(type, reader.readOctetString(type)); |
| | | return Filter.unrecognized(type, reader.readOctetString(type)); |
| | | } |
| | | } |
| | | |
| | |
| | | do { |
| | | subFilters.add(decodeFilter(reader)); |
| | | } while (reader.hasNextElement()); |
| | | filter = Filter.newAndFilter(subFilters); |
| | | filter = Filter.and(subFilters); |
| | | } else { |
| | | // No sub-filters - this is an RFC 4526 absolute true filter. |
| | | filter = Filter.getAbsoluteTrueFilter(); |
| | | filter = Filter.alwaysTrue(); |
| | | } |
| | | } finally { |
| | | reader.readEndSequence(); |
| | |
| | | reader.readEndSequence(); |
| | | } |
| | | |
| | | return Filter.newApproxMatchFilter(attributeDescription, assertionValue); |
| | | return Filter.approx(attributeDescription, assertionValue); |
| | | } |
| | | |
| | | // Decodes an equality match filter. |
| | |
| | | reader.readEndSequence(); |
| | | } |
| | | |
| | | return Filter.newEqualityMatchFilter(attributeDescription, assertionValue); |
| | | return Filter.equality(attributeDescription, assertionValue); |
| | | } |
| | | |
| | | // Decodes an extensible match filter. |
| | |
| | | reader.readEndSequence(); |
| | | } |
| | | |
| | | return Filter.newExtensibleMatchFilter(matchingRule, attributeDescription, assertionValue, |
| | | return Filter.extensible(matchingRule, attributeDescription, assertionValue, |
| | | dnAttributes); |
| | | } |
| | | |
| | |
| | | } finally { |
| | | reader.readEndSequence(); |
| | | } |
| | | return Filter.newGreaterOrEqualFilter(attributeDescription, assertionValue); |
| | | return Filter.greaterOrEqual(attributeDescription, assertionValue); |
| | | } |
| | | |
| | | // Decodes a less than or equal filter. |
| | |
| | | reader.readEndSequence(); |
| | | } |
| | | |
| | | return Filter.newLessOrEqualFilter(attributeDescription, assertionValue); |
| | | return Filter.lessOrEqual(attributeDescription, assertionValue); |
| | | } |
| | | |
| | | // Decodes a not filter. |
| | |
| | | reader.readEndSequence(); |
| | | } |
| | | |
| | | return Filter.newNotFilter(subFilter); |
| | | return Filter.not(subFilter); |
| | | } |
| | | |
| | | // Decodes an or filter. |
| | |
| | | do { |
| | | subFilters.add(decodeFilter(reader)); |
| | | } while (reader.hasNextElement()); |
| | | filter = Filter.newOrFilter(subFilters); |
| | | filter = Filter.or(subFilters); |
| | | } else { |
| | | // No sub-filters - this is an RFC 4526 absolute false filter. |
| | | filter = Filter.getAbsoluteFalseFilter(); |
| | | filter = Filter.alwaysFalse(); |
| | | } |
| | | } finally { |
| | | reader.readEndSequence(); |
| | |
| | | anySubstrings = Collections.emptyList(); |
| | | } |
| | | |
| | | return Filter.newSubstringsFilter(attributeDescription, initialSubstring, anySubstrings, |
| | | return Filter.substrings(attributeDescription, initialSubstring, anySubstrings, |
| | | finalSubstring); |
| | | } |
| | | |
| | |
| | | throws ErrorResultException { |
| | | final SearchRequest request = |
| | | Requests.newSearchRequest(baseObject, SearchScope.BASE_OBJECT, Filter |
| | | .getObjectClassPresentFilter(), attributeDescriptions); |
| | | .objectClassPresent(), attributeDescriptions); |
| | | return searchSingleEntry(request); |
| | | } |
| | | |
| | |
| | | final ResultHandler<? super SearchResultEntry> handler) { |
| | | final SearchRequest request = |
| | | Requests.newSearchRequest(name, SearchScope.BASE_OBJECT, Filter |
| | | .getObjectClassPresentFilter()); |
| | | .objectClassPresent()); |
| | | if (attributeDescriptions != null) { |
| | | request.getAttributes().addAll(attributeDescriptions); |
| | | } |
| | |
| | | * The RFC 4515 string representation of a filter can be generated using the |
| | | * {@link #toString} methods and parsed using the {@link #valueOf(String)} |
| | | * factory method. |
| | | * <p> |
| | | * Filters can be constructed using the various factory methods. For example, |
| | | * the following code illustrates how to create a filter having the string |
| | | * representation {code}(&(cn=bjensen)(age>=21)){code}: |
| | | * <pre> |
| | | * import static org.forgerock.opendj.Filter.*; |
| | | * |
| | | * Filter filter = and(equality("cn", "bjensen"), greaterOrEqual("age", 21)); |
| | | * <pre> |
| | | * |
| | | * @see <a href="http://tools.ietf.org/html/rfc4511">RFC 4511 - Lightweight |
| | | * Directory Access Protocol (LDAP): The Protocol </a> |
| | |
| | | * @return The absolute false filter. |
| | | * @see <a href="http://tools.ietf.org/html/rfc4526">RFC 4526</a> |
| | | */ |
| | | public static Filter getAbsoluteFalseFilter() { |
| | | public static Filter alwaysFalse() { |
| | | return FALSE; |
| | | } |
| | | |
| | |
| | | * @return The absolute true filter. |
| | | * @see <a href="http://tools.ietf.org/html/rfc4526">RFC 4526</a> |
| | | */ |
| | | public static Filter getAbsoluteTrueFilter() { |
| | | public static Filter alwaysTrue() { |
| | | return TRUE; |
| | | } |
| | | |
| | | /** |
| | | * Returns the {@code objectClass} presence filter {@code (objectClass=*)}. |
| | | * <p> |
| | | * A call to this method is equivalent to but more efficient than the |
| | | * following code: |
| | | * |
| | | * <pre> |
| | | * Filter.present("objectClass"); |
| | | * </pre> |
| | | * |
| | | * @return The {@code objectClass} presence filter {@code (objectClass=*)}. |
| | | */ |
| | | public static Filter getObjectClassPresentFilter() { |
| | | return OBJECT_CLASS_PRESENT; |
| | | } |
| | | |
| | | /** |
| | | * Creates a new {@code and} filter using the provided list of sub-filters. |
| | | * <p> |
| | | * Creating a new {@code and} filter with a {@code null} or empty list of |
| | | * sub-filters is equivalent to calling {@link #getAbsoluteTrueFilter()}. |
| | | * sub-filters is equivalent to calling {@link #alwaysTrue()}. |
| | | * |
| | | * @param subFilters |
| | | * The list of sub-filters, may be empty or {@code null}. |
| | | * @return The newly created {@code and} filter. |
| | | */ |
| | | public static Filter newAndFilter(final Collection<Filter> subFilters) { |
| | | public static Filter and(final Collection<Filter> subFilters) { |
| | | if (subFilters == null || subFilters.isEmpty()) { |
| | | // RFC 4526 - TRUE filter. |
| | | return getAbsoluteTrueFilter(); |
| | | return alwaysTrue(); |
| | | } else if (subFilters.size() == 1) { |
| | | final Filter subFilter = subFilters.iterator().next(); |
| | | Validator.ensureNotNull(subFilter); |
| | |
| | | * Creates a new {@code and} filter using the provided list of sub-filters. |
| | | * <p> |
| | | * Creating a new {@code and} filter with a {@code null} or empty list of |
| | | * sub-filters is equivalent to calling {@link #getAbsoluteTrueFilter()}. |
| | | * sub-filters is equivalent to calling {@link #alwaysTrue()}. |
| | | * |
| | | * @param subFilters |
| | | * The list of sub-filters, may be empty or {@code null}. |
| | | * @return The newly created {@code and} filter. |
| | | */ |
| | | public static Filter newAndFilter(final Filter... subFilters) { |
| | | public static Filter and(final Filter... subFilters) { |
| | | if ((subFilters == null) || (subFilters.length == 0)) { |
| | | // RFC 4526 - TRUE filter. |
| | | return getAbsoluteTrueFilter(); |
| | | return alwaysTrue(); |
| | | } else if (subFilters.length == 1) { |
| | | Validator.ensureNotNull(subFilters[0]); |
| | | return new Filter(new AndImpl(Collections.singletonList(subFilters[0]))); |
| | |
| | | * The assertion value. |
| | | * @return The newly created {@code approximate match} filter. |
| | | */ |
| | | public static Filter newApproxMatchFilter(final String attributeDescription, |
| | | final ByteString assertionValue) { |
| | | public static Filter approx(final String attributeDescription, final ByteString assertionValue) { |
| | | Validator.ensureNotNull(attributeDescription, assertionValue); |
| | | return new Filter(new ApproxMatchImpl(attributeDescription, assertionValue)); |
| | | } |
| | |
| | | * The assertion value. |
| | | * @return The newly created {@code approximate match} filter. |
| | | */ |
| | | public static Filter newApproxMatchFilter(final String attributeDescription, |
| | | final Object assertionValue) { |
| | | public static Filter approx(final String attributeDescription, final Object assertionValue) { |
| | | Validator.ensureNotNull(attributeDescription, assertionValue); |
| | | return new Filter(new ApproxMatchImpl(attributeDescription, ByteString |
| | | .valueOf(assertionValue))); |
| | |
| | | * The assertion value. |
| | | * @return The newly created {@code equality match} filter. |
| | | */ |
| | | public static Filter newEqualityMatchFilter(final String attributeDescription, |
| | | final ByteString assertionValue) { |
| | | public static Filter equality(final String attributeDescription, final ByteString assertionValue) { |
| | | Validator.ensureNotNull(attributeDescription, assertionValue); |
| | | return new Filter(new EqualityMatchImpl(attributeDescription, assertionValue)); |
| | | } |
| | |
| | | * The assertion value. |
| | | * @return The newly created {@code equality match} filter. |
| | | */ |
| | | public static Filter newEqualityMatchFilter(final String attributeDescription, |
| | | final Object assertionValue) { |
| | | public static Filter equality(final String attributeDescription, final Object assertionValue) { |
| | | Validator.ensureNotNull(attributeDescription, assertionValue); |
| | | return new Filter(new EqualityMatchImpl(attributeDescription, ByteString |
| | | .valueOf(assertionValue))); |
| | |
| | | * Indicates whether DN matching should be performed. |
| | | * @return The newly created {@code extensible match} filter. |
| | | */ |
| | | public static Filter newExtensibleMatchFilter(final String matchingRule, |
| | | final String attributeDescription, final ByteString assertionValue, |
| | | final boolean dnAttributes) { |
| | | public static Filter extensible(final String matchingRule, final String attributeDescription, |
| | | final ByteString assertionValue, final boolean dnAttributes) { |
| | | Validator.ensureTrue((matchingRule != null) || (attributeDescription != null), |
| | | "matchingRule and/or " + "attributeDescription must not be null"); |
| | | Validator.ensureNotNull(assertionValue); |
| | |
| | | * Indicates whether DN matching should be performed. |
| | | * @return The newly created {@code extensible match} filter. |
| | | */ |
| | | public static Filter newExtensibleMatchFilter(final String matchingRule, |
| | | final String attributeDescription, final Object assertionValue, |
| | | final boolean dnAttributes) { |
| | | public static Filter extensible(final String matchingRule, final String attributeDescription, |
| | | final Object assertionValue, final boolean dnAttributes) { |
| | | Validator.ensureTrue((matchingRule != null) || (attributeDescription != null), |
| | | "matchingRule and/or " + "attributeDescription must not be null"); |
| | | Validator.ensureNotNull(assertionValue); |
| | |
| | | * The assertion value. |
| | | * @return The newly created {@code greater or equal} filter. |
| | | */ |
| | | public static Filter newGreaterOrEqualFilter(final String attributeDescription, |
| | | public static Filter greaterOrEqual(final String attributeDescription, |
| | | final ByteString assertionValue) { |
| | | Validator.ensureNotNull(attributeDescription, assertionValue); |
| | | return new Filter(new GreaterOrEqualImpl(attributeDescription, assertionValue)); |
| | |
| | | * The assertion value. |
| | | * @return The newly created {@code greater or equal} filter. |
| | | */ |
| | | public static Filter newGreaterOrEqualFilter(final String attributeDescription, |
| | | public static Filter greaterOrEqual(final String attributeDescription, |
| | | final Object assertionValue) { |
| | | Validator.ensureNotNull(attributeDescription, assertionValue); |
| | | return new Filter(new GreaterOrEqualImpl(attributeDescription, ByteString |
| | |
| | | * The assertion value. |
| | | * @return The newly created {@code less or equal} filter. |
| | | */ |
| | | public static Filter newLessOrEqualFilter(final String attributeDescription, |
| | | public static Filter lessOrEqual(final String attributeDescription, |
| | | final ByteString assertionValue) { |
| | | Validator.ensureNotNull(attributeDescription, assertionValue); |
| | | return new Filter(new LessOrEqualImpl(attributeDescription, assertionValue)); |
| | |
| | | * The assertion value. |
| | | * @return The newly created {@code less or equal} filter. |
| | | */ |
| | | public static Filter newLessOrEqualFilter(final String attributeDescription, |
| | | final Object assertionValue) { |
| | | public static Filter lessOrEqual(final String attributeDescription, final Object assertionValue) { |
| | | Validator.ensureNotNull(attributeDescription, assertionValue); |
| | | return new Filter(new LessOrEqualImpl(attributeDescription, ByteString |
| | | .valueOf(assertionValue))); |
| | |
| | | * The sub-filter. |
| | | * @return The newly created {@code not} filter. |
| | | */ |
| | | public static Filter newNotFilter(final Filter subFilter) { |
| | | public static Filter not(final Filter subFilter) { |
| | | Validator.ensureNotNull(subFilter); |
| | | return new Filter(new NotImpl(subFilter)); |
| | | } |
| | | |
| | | /** |
| | | * Returns the {@code objectClass} presence filter {@code (objectClass=*)}. |
| | | * <p> |
| | | * A call to this method is equivalent to but more efficient than the |
| | | * following code: |
| | | * |
| | | * <pre> |
| | | * Filter.present("objectClass"); |
| | | * </pre> |
| | | * |
| | | * @return The {@code objectClass} presence filter {@code (objectClass=*)}. |
| | | */ |
| | | public static Filter objectClassPresent() { |
| | | return OBJECT_CLASS_PRESENT; |
| | | } |
| | | |
| | | /** |
| | | * Creates a new {@code or} filter using the provided list of sub-filters. |
| | | * <p> |
| | | * Creating a new {@code or} filter with a {@code null} or empty list of |
| | | * sub-filters is equivalent to calling {@link #getAbsoluteFalseFilter()}. |
| | | * sub-filters is equivalent to calling {@link #alwaysFalse()}. |
| | | * |
| | | * @param subFilters |
| | | * The list of sub-filters, may be empty or {@code null}. |
| | | * @return The newly created {@code or} filter. |
| | | */ |
| | | public static Filter newOrFilter(final Collection<Filter> subFilters) { |
| | | public static Filter or(final Collection<Filter> subFilters) { |
| | | if (subFilters == null || subFilters.isEmpty()) { |
| | | // RFC 4526 - FALSE filter. |
| | | return getAbsoluteFalseFilter(); |
| | | return alwaysFalse(); |
| | | } else if (subFilters.size() == 1) { |
| | | final Filter subFilter = subFilters.iterator().next(); |
| | | Validator.ensureNotNull(subFilter); |
| | |
| | | * Creates a new {@code or} filter using the provided list of sub-filters. |
| | | * <p> |
| | | * Creating a new {@code or} filter with a {@code null} or empty list of |
| | | * sub-filters is equivalent to calling {@link #getAbsoluteFalseFilter()}. |
| | | * sub-filters is equivalent to calling {@link #alwaysFalse()}. |
| | | * |
| | | * @param subFilters |
| | | * The list of sub-filters, may be empty or {@code null}. |
| | | * @return The newly created {@code or} filter. |
| | | */ |
| | | public static Filter newOrFilter(final Filter... subFilters) { |
| | | public static Filter or(final Filter... subFilters) { |
| | | if ((subFilters == null) || (subFilters.length == 0)) { |
| | | // RFC 4526 - FALSE filter. |
| | | return getAbsoluteFalseFilter(); |
| | | return alwaysFalse(); |
| | | } else if (subFilters.length == 1) { |
| | | Validator.ensureNotNull(subFilters[0]); |
| | | return new Filter(new OrImpl(Collections.singletonList(subFilters[0]))); |
| | |
| | | * The attribute description. |
| | | * @return The newly created {@code present} filter. |
| | | */ |
| | | public static Filter newPresentFilter(final String attributeDescription) { |
| | | public static Filter present(final String attributeDescription) { |
| | | Validator.ensureNotNull(attributeDescription); |
| | | if (toLowerCase(attributeDescription).equals("objectclass")) { |
| | | return OBJECT_CLASS_PRESENT; |
| | |
| | | * are specified. |
| | | * @return The newly created {@code substrings} filter. |
| | | */ |
| | | public static Filter newSubstringsFilter(final String attributeDescription, |
| | | public static Filter substrings(final String attributeDescription, |
| | | final ByteString initialSubstring, final Collection<ByteString> anySubstrings, |
| | | final ByteString finalSubstring) { |
| | | Validator.ensureNotNull(attributeDescription); |
| | |
| | | * are specified. |
| | | * @return The newly created {@code substrings} filter. |
| | | */ |
| | | public static Filter newSubstringsFilter(final String attributeDescription, |
| | | public static Filter substrings(final String attributeDescription, |
| | | final Object initialSubstring, final Collection<?> anySubstrings, |
| | | final Object finalSubstring) { |
| | | Validator.ensureNotNull(attributeDescription); |
| | |
| | | * The filter content. |
| | | * @return The newly created {@code unrecognized} filter. |
| | | */ |
| | | public static Filter newUnrecognizedFilter(final byte filterTag, final ByteString filterBytes) { |
| | | public static Filter unrecognized(final byte filterTag, final ByteString filterBytes) { |
| | | Validator.ensureNotNull(filterBytes); |
| | | return new Filter(new UnrecognizedImpl(filterTag, filterBytes)); |
| | | } |
| | |
| | | if (c == '&') { |
| | | final List<Filter> subFilters = valueOfFilterList(string, index + 1, endIndex); |
| | | if (subFilters.isEmpty()) { |
| | | return getAbsoluteTrueFilter(); |
| | | return alwaysTrue(); |
| | | } else { |
| | | return new Filter(new AndImpl(subFilters)); |
| | | } |
| | | } else if (c == '|') { |
| | | final List<Filter> subFilters = valueOfFilterList(string, index + 1, endIndex); |
| | | if (subFilters.isEmpty()) { |
| | | return getAbsoluteFalseFilter(); |
| | | return alwaysFalse(); |
| | | } else { |
| | | return new Filter(new OrImpl(subFilters)); |
| | | } |
| | |
| | | return new Filter(new EqualityMatchImpl(attributeDescription, ByteString.empty())); |
| | | } else if ((endIndex - startIndex == 1) && (string.charAt(startIndex) == '*')) { |
| | | // Single asterisk is a present filter. |
| | | return newPresentFilter(attributeDescription); |
| | | return present(attributeDescription); |
| | | } else if (asteriskIdx > 0 && asteriskIdx <= endIndex) { |
| | | // Substring filter. |
| | | return assertionValue2SubstringFilter(string, attributeDescription, startIndex, |
| | |
| | | /** |
| | | * The default filter. |
| | | */ |
| | | private static final Filter DEFAULT_FILTER = Filter.getObjectClassPresentFilter(); |
| | | private static final Filter DEFAULT_FILTER = Filter.objectClassPresent(); |
| | | |
| | | /** |
| | | * The default search scope. |
| | |
| | | .create(CoreSchema.getVendorNameAttributeType()); |
| | | |
| | | private static final SearchRequest SEARCH_REQUEST = Requests.newSearchRequest(DN.rootDN(), |
| | | SearchScope.BASE_OBJECT, Filter.getObjectClassPresentFilter(), ATTR_ALT_SERVER |
| | | SearchScope.BASE_OBJECT, Filter.objectClassPresent(), ATTR_ALT_SERVER |
| | | .toString(), ATTR_NAMING_CONTEXTS.toString(), |
| | | ATTR_SUPPORTED_CONTROL.toString(), ATTR_SUPPORTED_EXTENSION.toString(), |
| | | ATTR_SUPPORTED_FEATURE.toString(), ATTR_SUPPORTED_LDAP_VERSION.toString(), |
| | |
| | | // a valid response. |
| | | final SearchRequest req = |
| | | Requests.newSearchRequest(DN.valueOf("uid=user.1,ou=people,o=test"), |
| | | SearchScope.BASE_OBJECT, Filter.getObjectClassPresentFilter()); |
| | | SearchScope.BASE_OBJECT, Filter.objectClassPresent()); |
| | | final AccountUsabilityRequestControl control = |
| | | AccountUsabilityRequestControl.newControl(false); |
| | | req.addControl(control); |
| | |
| | | // shouldn't be response. |
| | | final SearchRequest req = |
| | | Requests.newSearchRequest(DN.valueOf("uid=user.1,ou=people,o=test"), |
| | | SearchScope.BASE_OBJECT, Filter.getObjectClassPresentFilter()); |
| | | SearchScope.BASE_OBJECT, Filter.objectClassPresent()); |
| | | final Connection con = TestCaseUtils.getInternalConnection(); |
| | | final List<SearchResultEntry> entries = new ArrayList<SearchResultEntry>(); |
| | | con.search(req, entries); |
| | |
| | | // a valid response. |
| | | final SearchRequest req = |
| | | Requests.newSearchRequest(DN.valueOf("uid=user.1,ou=people,o=test"), |
| | | SearchScope.BASE_OBJECT, Filter.getObjectClassPresentFilter()); |
| | | SearchScope.BASE_OBJECT, Filter.objectClassPresent()); |
| | | final AccountUsabilityRequestControl control = |
| | | AccountUsabilityRequestControl.newControl(false); |
| | | req.addControl(control); |
| | |
| | | @DataProvider(name = "filterstrings") |
| | | public Object[][] getFilterStrings() throws Exception { |
| | | final Filter equal = |
| | | Filter.newEqualityMatchFilter("objectClass", ByteString.valueOf("\\test*(Value)")); |
| | | final Filter equal2 = Filter.newEqualityMatchFilter("objectClass", ByteString.valueOf("")); |
| | | Filter.equality("objectClass", ByteString.valueOf("\\test*(Value)")); |
| | | final Filter equal2 = Filter.equality("objectClass", ByteString.valueOf("")); |
| | | final Filter approx = |
| | | Filter.newApproxMatchFilter("sn", ByteString.valueOf("\\test*(Value)")); |
| | | Filter.approx("sn", ByteString.valueOf("\\test*(Value)")); |
| | | final Filter greater = |
| | | Filter.newGreaterOrEqualFilter("employeeNumber", ByteString |
| | | Filter.greaterOrEqual("employeeNumber", ByteString |
| | | .valueOf("\\test*(Value)")); |
| | | final Filter less = |
| | | Filter.newLessOrEqualFilter("dob", ByteString.valueOf("\\test*(Value)")); |
| | | final Filter presense = Filter.newPresentFilter("login"); |
| | | Filter.lessOrEqual("dob", ByteString.valueOf("\\test*(Value)")); |
| | | final Filter presense = Filter.present("login"); |
| | | |
| | | final ArrayList<ByteString> any = new ArrayList<ByteString>(0); |
| | | final ArrayList<ByteString> multiAny = new ArrayList<ByteString>(1); |
| | |
| | | multiAny.add(ByteString.valueOf("*")); |
| | | |
| | | final Filter substring1 = |
| | | Filter.newSubstringsFilter("givenName", ByteString.valueOf("\\Jo*()"), any, |
| | | Filter.substrings("givenName", ByteString.valueOf("\\Jo*()"), any, |
| | | ByteString.valueOf("\\n*()")); |
| | | final Filter substring2 = |
| | | Filter.newSubstringsFilter("givenName", ByteString.valueOf("\\Jo*()"), multiAny, |
| | | Filter.substrings("givenName", ByteString.valueOf("\\Jo*()"), multiAny, |
| | | ByteString.valueOf("\\n*()")); |
| | | final Filter substring3 = |
| | | Filter.newSubstringsFilter("givenName", ByteString.valueOf(""), any, ByteString |
| | | Filter.substrings("givenName", ByteString.valueOf(""), any, ByteString |
| | | .valueOf("\\n*()")); |
| | | final Filter substring4 = |
| | | Filter.newSubstringsFilter("givenName", ByteString.valueOf("\\Jo*()"), any, |
| | | Filter.substrings("givenName", ByteString.valueOf("\\Jo*()"), any, |
| | | ByteString.valueOf("")); |
| | | final Filter substring5 = |
| | | Filter.newSubstringsFilter("givenName", ByteString.valueOf(""), multiAny, |
| | | Filter.substrings("givenName", ByteString.valueOf(""), multiAny, |
| | | ByteString.valueOf("")); |
| | | final Filter extensible1 = |
| | | Filter.newExtensibleMatchFilter("2.4.6.8.19", "cn", ByteString |
| | | Filter.extensible("2.4.6.8.19", "cn", ByteString |
| | | .valueOf("\\John* (Doe)"), false); |
| | | final Filter extensible2 = |
| | | Filter.newExtensibleMatchFilter("2.4.6.8.19", "cn", ByteString |
| | | Filter.extensible("2.4.6.8.19", "cn", ByteString |
| | | .valueOf("\\John* (Doe)"), true); |
| | | final Filter extensible3 = |
| | | Filter.newExtensibleMatchFilter("2.4.6.8.19", null, ByteString |
| | | Filter.extensible("2.4.6.8.19", null, ByteString |
| | | .valueOf("\\John* (Doe)"), true); |
| | | final Filter extensible4 = |
| | | Filter.newExtensibleMatchFilter(null, "cn", ByteString.valueOf("\\John* (Doe)"), |
| | | Filter.extensible(null, "cn", ByteString.valueOf("\\John* (Doe)"), |
| | | true); |
| | | final Filter extensible5 = |
| | | Filter.newExtensibleMatchFilter("2.4.6.8.19", null, ByteString |
| | | Filter.extensible("2.4.6.8.19", null, ByteString |
| | | .valueOf("\\John* (Doe)"), false); |
| | | |
| | | final ArrayList<Filter> list1 = new ArrayList<Filter>(); |
| | | list1.add(equal); |
| | | list1.add(approx); |
| | | |
| | | final Filter and = Filter.newAndFilter(list1); |
| | | final Filter and = Filter.and(list1); |
| | | |
| | | final ArrayList<Filter> list2 = new ArrayList<Filter>(); |
| | | list2.add(substring1); |
| | |
| | | { "(:2.4.6.8.19:=\\5CJohn\\2A \\28Doe\\29)", extensible5 }, |
| | | |
| | | { "(&(objectClass=\\5Ctest\\2A\\28Value\\29)(sn~=\\5Ctest\\2A\\28Value\\29))", |
| | | Filter.newAndFilter(list1) }, |
| | | Filter.and(list1) }, |
| | | |
| | | { "(|(objectClass=\\5Ctest\\2A\\28Value\\29)(sn~=\\5Ctest\\2A\\28Value\\29))", |
| | | Filter.newOrFilter(list1) }, |
| | | Filter.or(list1) }, |
| | | |
| | | { "(!(objectClass=\\5Ctest\\2A\\28Value\\29))", Filter.newNotFilter(equal) }, |
| | | { "(!(objectClass=\\5Ctest\\2A\\28Value\\29))", Filter.not(equal) }, |
| | | |
| | | { |
| | | "(|(givenName=\\5CJo\\2A\\28\\29*\\5Cn\\2A\\28\\29)(cn:2.4.6.8.19:=\\5CJohn\\2A \\28Doe\\29)" |
| | | + "(&(objectClass=\\5Ctest\\2A\\28Value\\29)(sn~=\\5Ctest\\2A\\28Value\\29)))", |
| | | Filter.newOrFilter(list2) } |
| | | Filter.or(list2) } |
| | | |
| | | }; |
| | | } |
| | |
| | | @Test |
| | | public void testMatcher() throws Exception { |
| | | final Filter equal = |
| | | Filter.newEqualityMatchFilter("cn", ByteString.valueOf("\\test*(Value)")); |
| | | Filter.equality("cn", ByteString.valueOf("\\test*(Value)")); |
| | | final LinkedHashMapEntry entry = |
| | | new LinkedHashMapEntry(DN.valueOf("cn=\\test*(Value),dc=org")); |
| | | entry.addAttribute("cn", "\\test*(Value)"); |
| | |
| | | "ldaps://void.central:123/???" }, |
| | | { new LDAPUrl(true, null, null, null, null, null, "cn", "sn"), "ldaps:///?cn,sn??" }, |
| | | { |
| | | new LDAPUrl(true, null, null, null, null, Filter.newEqualityMatchFilter("uid", |
| | | new LDAPUrl(true, null, null, null, null, Filter.equality("uid", |
| | | "abc"), "cn"), "ldaps:///?cn??(uid=abc)" }, |
| | | { |
| | | new LDAPUrl(true, null, null, null, SearchScope.WHOLE_SUBTREE, Filter |
| | | .newEqualityMatchFilter("uid", "abc"), "cn"), "ldaps:///?cn?sub?(uid=abc)" }, |
| | | .equality("uid", "abc"), "cn"), "ldaps:///?cn?sub?(uid=abc)" }, |
| | | { |
| | | new LDAPUrl(true, null, null, DN.valueOf("uid=abc,o=target"), |
| | | SearchScope.WHOLE_SUBTREE, Filter.newEqualityMatchFilter("uid", "abc"), |
| | | SearchScope.WHOLE_SUBTREE, Filter.equality("uid", "abc"), |
| | | "cn"), "ldaps:///uid=abc,o=target?cn?sub?(uid=abc)" }, |
| | | { |
| | | new LDAPUrl(true, "localhost", 1345, DN.valueOf("uid=abc,o=target"), |
| | | SearchScope.WHOLE_SUBTREE, Filter.newEqualityMatchFilter("uid", "abc"), |
| | | SearchScope.WHOLE_SUBTREE, Filter.equality("uid", "abc"), |
| | | "cn"), "ldaps://localhost:1345/uid=abc,o=target?cn?sub?(uid=abc)" }, }; |
| | | } |
| | | |
| | |
| | | { new LDAPUrl(true, null, null, null, null, null, "cn", "sn"), |
| | | LDAPUrl.valueOf("ldaps:///?cn,sn??") }, |
| | | { |
| | | new LDAPUrl(true, null, null, null, null, Filter.newEqualityMatchFilter("uid", |
| | | new LDAPUrl(true, null, null, null, null, Filter.equality("uid", |
| | | "abc"), "cn"), LDAPUrl.valueOf("ldaps:///?cn??(uid=abc)") }, |
| | | { |
| | | new LDAPUrl(true, null, null, null, SearchScope.WHOLE_SUBTREE, Filter |
| | | .newEqualityMatchFilter("uid", "abc"), "cn"), |
| | | .equality("uid", "abc"), "cn"), |
| | | LDAPUrl.valueOf("ldaps:///?cn?sub?(uid=abc)") }, |
| | | { |
| | | new LDAPUrl(true, null, null, DN.valueOf("uid=abc,o=target"), |
| | | SearchScope.WHOLE_SUBTREE, Filter.newEqualityMatchFilter("uid", "abc"), |
| | | SearchScope.WHOLE_SUBTREE, Filter.equality("uid", "abc"), |
| | | "cn"), LDAPUrl.valueOf("ldaps:///uid=abc,o=target?cn?sub?(uid=abc)") }, |
| | | { |
| | | new LDAPUrl(true, "localhost", 1345, DN.valueOf("uid=abc,o=target"), |
| | | SearchScope.WHOLE_SUBTREE, Filter.newEqualityMatchFilter("uid", "abc"), |
| | | SearchScope.WHOLE_SUBTREE, Filter.equality("uid", "abc"), |
| | | "cn"), |
| | | LDAPUrl.valueOf("ldaps://localhost:1345/uid=abc,o=target?cn?sub?(uid=abc)") }, }; |
| | | } |