aboutsummaryrefslogtreecommitdiffstats
path: root/src/eu/equalparts/cardbase/cardfield/IntegerCardField.java
blob: 85266401738c378fe3e2555eb8bbeedb715dced5 (plain)
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
package eu.equalparts.cardbase.cardfield;
import eu.equalparts.cardbase.filtering.Filter;

public class IntegerCardField extends CardField<Integer> {

	public IntegerCardField(String name, Integer value) {
		super(name, value);
	}

	@Override
	public boolean filter(Filter filter) throws NumberFormatException {
		switch (filter.type) {
		case CONTAINS:
			return get().toString().contains(filter.value);
		case EQUALS:
			return get().toString().equalsIgnoreCase(filter.value);
		case REGEX:
			return get().toString().matches(filter.value);
		case GREATER_THAN:
			return get() > Integer.parseInt(filter.value);
		case SMALLER_THAN:
			return get() < Integer.parseInt(filter.value);
		default:
			return false;
		}
	}
}