All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.fluentlenium.core.filter.FilterBuilder Maven / Gradle / Ivy

package org.fluentlenium.core.filter;

import org.fluentlenium.core.filter.matcher.ContainsMatcher;
import org.fluentlenium.core.filter.matcher.ContainsWordMatcher;
import org.fluentlenium.core.filter.matcher.EndsWithMatcher;
import org.fluentlenium.core.filter.matcher.EqualMatcher;
import org.fluentlenium.core.filter.matcher.NotContainsMatcher;
import org.fluentlenium.core.filter.matcher.NotEndsWithMatcher;
import org.fluentlenium.core.filter.matcher.NotStartsWithMatcher;
import org.fluentlenium.core.filter.matcher.StartsWithMatcher;

import java.util.regex.Pattern;

/**
 * Builder for search filters
 */
public class FilterBuilder {

    private final String attribute;

    /**
     * Creates a new filter builder, using custom attributes.
     *
     * @param customAttribute custom attributes to use for filters created by this builder
     */
    public FilterBuilder(String customAttribute) {
        attribute = customAttribute;
    }

    /**
     * Builds a filter that match when selection is equal to a given value.
     *
     * @param value value to search
     * @return new filter
     */
    public AttributeFilter equalTo(String value) {
        return new AttributeFilter(attribute, new EqualMatcher(value));
    }

    /**
     * Builds a filter that match when selection contains to a given value.
     *
     * @param value value to search
     * @return new filter
     */
    public AttributeFilter contains(String value) {
        return new AttributeFilter(attribute, new ContainsMatcher(value));
    }

    /**
     * Builds a filter that match when selection contains a given word.
     *
     * @param word value to search
     * @return new filter
     */
    public AttributeFilter containsWord(String word) {
        return new AttributeFilter(attribute, new ContainsWordMatcher(word));
    }

    /**
     * Builds a filter that match when selection contains to a given pattern.
     *
     * @param pattern pattern to match
     * @return new filter
     */
    public AttributeFilter contains(Pattern pattern) {
        return new AttributeFilter(attribute, new ContainsMatcher(pattern));
    }

    /**
     * Builds a filter that match when selection starts with to a given value.
     *
     * @param value value to search
     * @return new filter
     */
    public AttributeFilter startsWith(String value) {
        return new AttributeFilter(attribute, new StartsWithMatcher(value));
    }

    /**
     * Builds a filter that match when selection starts with to a given pattern.
     *
     * @param pattern pattern to match
     * @return new filter
     */
    public AttributeFilter startsWith(Pattern pattern) {
        return new AttributeFilter(attribute, new StartsWithMatcher(pattern));
    }

    /**
     * Builds a filter that match when selection ends with to a given value.
     *
     * @param value value to search
     * @return new filter
     */
    public AttributeFilter endsWith(String value) {
        return new AttributeFilter(attribute, new EndsWithMatcher(value));
    }

    /**
     * Builds a filter that match when selection ends with to a given pattern.
     *
     * @param pattern pattern to match
     * @return new filter
     */
    public AttributeFilter endsWith(Pattern pattern) {
        return new AttributeFilter(attribute, new EndsWithMatcher(pattern));
    }

    /**
     * Builds a filter that match when selection doesn't contain given value.
     *
     * @param value value to search
     * @return new filter
     */
    public AttributeFilter notContains(String value) {
        return new AttributeFilter(attribute, new NotContainsMatcher(value));
    }

    /**
     * Builds a filter that match when selection doesn't contain given pattern.
     *
     * @param pattern pattern to match
     * @return new filter
     */
    public AttributeFilter notContains(Pattern pattern) {
        return new AttributeFilter(attribute, new NotContainsMatcher(pattern));
    }

    /**
     * Builds a filter that match when selection doesn't start with given value.
     *
     * @param value value to search
     * @return new filter
     */
    public AttributeFilter notStartsWith(String value) {
        return new AttributeFilter(attribute, new NotStartsWithMatcher(value));
    }

    /**
     * Builds a filter that match when selection doesn't start with given pattern.
     *
     * @param pattern pattern to match
     * @return new filter
     */
    public AttributeFilter notStartsWith(Pattern pattern) {
        return new AttributeFilter(attribute, new NotStartsWithMatcher(pattern));
    }

    /**
     * Builds a filter that match when selection doesn't end with given value.
     *
     * @param value value to search
     * @return new filter
     */
    public AttributeFilter notEndsWith(String value) {
        return new AttributeFilter(attribute, new NotEndsWithMatcher(value));
    }

    /**
     * Builds a filter that match when selection doesn't end with given pattern.
     *
     * @param pattern pattern to match
     * @return new filter
     */
    public AttributeFilter notEndsWith(Pattern pattern) {
        return new AttributeFilter(attribute, new NotEndsWithMatcher(pattern));
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy