
package galileo.query;

import java.util.HashSet;
import java.util.Set;

public class PayloadFilter<T> {

    private Set<T> filterItems;
    private boolean excludesItems = false;

    public PayloadFilter() {
        filterItems = new HashSet<>();
    }

    public PayloadFilter(boolean excludesItems) {
        this();
        this.excludesItems = excludesItems;
    }

    public PayloadFilter(Set<T> items) {
        this.filterItems = items;
    }

    public PayloadFilter(boolean excludesItems, Set<T> items) {
        this(items);
        this.excludesItems = excludesItems;
    }

    public void add(T item) {
        filterItems.add(item);
    }

    public Set<T> getItems() {
        return filterItems;
    }

    /**
     * Reports whether this PayloadFilter includes or excludes the items it
     * contains.  If this method returns true, then any matching items in the
     * filter will be removed from query results.  On the other hand, if this
     * returns false, then only items in the filter will be retained in query
     * results.
     */
    public boolean excludesItems() {
        return excludesItems;
    }
}

@@ -1,8 +1,1326 @@
+/*%0ACopyright (c) 2014, Colorado State University%0AAll rights reserved.%0A%0ARedistribution and use in source and binary forms, with or without modification,%0Aare permitted provided that the following conditions are met:%0A%0A1. Redistributions of source code must retain the above copyright notice, this%0A   list of conditions and the following disclaimer.%0A2. Redistributions in binary form must reproduce the above copyright notice,%0A   this list of conditions and the following disclaimer in the documentation%0A   and/or other materials provided with the distribution.%0A%0AThis software is provided by the copyright holders and contributors %22as is%22 and%0Aany express or implied warranties, including, but not limited to, the implied%0Awarranties of merchantability and fitness for a particular purpose are%0Adisclaimed. In no event shall the copyright holder or contributors be liable for%0Aany direct, indirect, incidental, special, exemplary, or consequential damages%0A(including, but not limited to, procurement of substitute goods or services;%0Aloss of use, data, or profits; or business interruption) however caused and on%0Aany theory of liability, whether in contract, strict liability, or tort%0A(including negligence or otherwise) arising in any way out of the use of this%0Asoftware, even if advised of the possibility of such damage.%0A*/%0A
 %0Apackage

Add license