OpenConcerto

Dépôt officiel du code source de l'ERP OpenConcerto
sonarqube

svn://code.openconcerto.org/openconcerto

Rev

Rev 73 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
17 ilm 1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
182 ilm 4
 * Copyright 2011-2019 OpenConcerto, by ILM Informatique. All rights reserved.
17 ilm 5
 *
6
 * The contents of this file are subject to the terms of the GNU General Public License Version 3
7
 * only ("GPL"). You may not use this file except in compliance with the License. You can obtain a
8
 * copy of the License at http://www.gnu.org/licenses/gpl-3.0.html See the License for the specific
9
 * language governing permissions and limitations under the License.
10
 *
11
 * When distributing the software, include this License Header Notice in each file.
12
 */
13
 
14
 package org.openconcerto.sql.view.search;
15
 
16
import java.util.ArrayList;
17
import java.util.List;
18
 
19
public class SearchSpecUtils {
20
 
21
    static public final <T> List<T> filter(final List<T> l, final SearchSpec search) {
22
        final List<T> result;
23
        if (search == null || search.isEmpty())
24
            result = l;
25
        else {
182 ilm 26
            result = new ArrayList<>(l.size());
17 ilm 27
            for (final T item : l) {
28
                if (search.match(item))
29
                    result.add(item);
30
            }
31
        }
32
        return result;
33
    }
34
 
73 ilm 35
    static public final <T> T filterOne(final T obj, final SearchSpec search) {
36
        if (obj == null)
37
            return null;
38
 
39
        final T result;
40
        if (search == null || search.isEmpty() || search.match(obj))
41
            result = obj;
42
        else {
43
            result = null;
44
        }
45
        return result;
46
    }
17 ilm 47
}