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

org.carrot2.source.UniqueFieldPredicate Maven / Gradle / Ivy

There is a newer version: 4.6.0
Show newest version

/*
 * Carrot2 project.
 *
 * Copyright (C) 2002-2018, 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
{
    private final HashSet unique = new HashSet();

    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);
        }
    }
}