Project

General

Profile

1
package eu.dnetlib.pace.condition;
2

    
3
import java.util.List;
4

    
5
import eu.dnetlib.pace.config.Cond;
6
import eu.dnetlib.pace.distance.eval.ConditionEval;
7
import eu.dnetlib.pace.model.Field;
8
import eu.dnetlib.pace.model.FieldDef;
9
import org.apache.commons.lang.StringUtils;
10

    
11
/**
12
 * The Class ExactMatch.
13
 *
14
 * @author claudio
15
 */
16
public class ExactMatch extends AbstractCondition {
17

    
18
	public ExactMatch(final Cond cond, final List<FieldDef> fields) {
19
		super(cond, fields);
20
	}
21

    
22
	@Override
23
	protected ConditionEval verify(final FieldDef fd, final Field a, final Field b) {
24

    
25
		final String fa = getValue(a);
26
		final String fb = getValue(b);
27

    
28
		int res;
29

    
30
		if (StringUtils.isBlank(fa) && StringUtils.isBlank(fb)) {
31
			res = 0;
32
		} else {
33
			res = fa.equals(fb) ? 1 : -1;
34
		}
35

    
36
		return new ConditionEval(cond, a, b, res);
37
	}
38

    
39
	protected String getValue(final Field f) {
40
		return getFirstValue(f);
41
	}
42

    
43
}
(5-5/11)