-
Notifications
You must be signed in to change notification settings - Fork 8
/
Filter.java
49 lines (46 loc) · 1.71 KB
/
Filter.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/**
* AnalyzerBeans
* Copyright (C) 2014 Neopost - Customer Information Management
*
* This copyrighted material is made available to anyone wishing to use, modify,
* copy, or redistribute it subject to the terms and conditions of the GNU
* Lesser General Public License, as published by the Free Software Foundation.
*
* This program 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 distribution; if not, write to:
* Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor
* Boston, MA 02110-1301 USA
*/
package org.eobjects.analyzer.beans.api;
import org.eobjects.analyzer.data.InputRow;
/**
* Interface for components that filter/categorize rows.
*
* A filter will process incoming rows and label them with a category. A
* category is defined as a value in an enum. When a row is categorized, this
* category can then be used to set up a requirement for succeeding row
* processing.
*
* A sub-interface of Filter exists, {@link QueryOptimizedFilter}, which allows
* filter functionality to be pushed down to the query in certain circumstances
* where it is desirable to do so.
*
* @param <C>
* an enum type with the available categories
*/
public interface Filter<C extends Enum<C>> {
/**
* Categorizes/filters a single row.
*
* @param inputRow
* the row to categorize.
* @return an enum representing the category applied to the row.
*/
public C categorize(InputRow inputRow);
}