/* * Carrot2 project. * * Copyright (C) 2002-2016, Dawid Weiss, Stanisław Osiński. * All rights reserved. * * Refer to the full license file "carrot2.LICENSE" * in the root folder of the repository checkout or at: * http://www.carrot2.org/carrot2.LICENSE */ package org.carrot2.source; import java.util.HashSet; import org.carrot2.core.Document; import org.carrot2.shaded.guava.common.base.Predicate; /** * This predicate allows one to filter out documents with non-unique * field values. */ final class UniqueFieldPredicate implements Predicate<Document> { private final HashSet<Object> unique = new HashSet<Object>(); private final String fieldName; public UniqueFieldPredicate(String fieldName) { this.fieldName = fieldName; } public boolean apply(Document document) { final Object fieldValue = document.getField(fieldName); if (fieldValue == null) { return false; } else { return unique.add(fieldValue); } } }