org.zanata.ui.FilterUtil.java Source code

Java tutorial

Introduction

Here is the source code for org.zanata.ui.FilterUtil.java

Source

/*
 *
 *  * Copyright 2014, Red Hat, Inc. and individual contributors as indicated by the
 *  * @author tags. See the copyright.txt file in the distribution for a full
 *  * listing of individual contributors.
 *  *
 *  * This is free software; you can redistribute it and/or modify it under the
 *  * terms of the GNU Lesser General Public License as published by the Free
 *  * Software Foundation; either version 2.1 of the License, or (at your option)
 *  * any later version.
 *  *
 *  * This software is distributed in the hope that it will be useful, but WITHOUT
 *  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 *  * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 *  * details.
 *  *
 *  * You should have received a copy of the GNU Lesser General Public License
 *  * along with this software; if not, write to the Free Software Foundation,
 *  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
 *  * site: http://www.fsf.org.
 */

package org.zanata.ui;

import java.util.Collection;
import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.zanata.model.HLocale;
import org.zanata.model.HPerson;

import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import com.google.common.collect.Lists;

/**
 * @author Alex Eng <a href="mailto:aeng@redhat.com">aeng@redhat.com</a>
 */
public class FilterUtil {

    /**
     * Return filtered list of HPerson from personList which are NOT in
     * allPersonList
     *
     * @param allPersonList
     * @param personList
     * @return
     */
    public static List<HPerson> filterOutPersonList(final List<HPerson> allPersonList, List<HPerson> personList) {
        Collection<HPerson> filtered = Collections2.filter(personList, new Predicate<HPerson>() {
            @Override
            public boolean apply(HPerson input) {
                return !allPersonList.contains(input);
            }
        });

        return Lists.newArrayList(filtered);
    }

    /**
     * Return true if
     *
     * 1) Query is empty 2) hLocale is NOT in localeList and hLocale's display
     * name/localeId matches with query.
     *
     *
     *
     * @param localeList
     * @param hLocale
     * @param query
     * @return
     */
    public static boolean isIncludeLocale(Collection<HLocale> localeList, HLocale hLocale, String query) {
        return !localeList.contains(hLocale)
                && (StringUtils.startsWithIgnoreCase(hLocale.getLocaleId().getId(), query)
                        || StringUtils.containsIgnoreCase(hLocale.retrieveDisplayName(), query));
    }
}