package eu.dnetlib.pace.tree.support; import java.io.IOException; import java.io.Serializable; import java.util.Map; import com.fasterxml.jackson.databind.ObjectMapper; import eu.dnetlib.pace.util.PaceException; /** * The class that defines the configuration of each field in the decision tree. * */ public class FieldConf implements Serializable { private String field; // name of the field on which apply the comparator private String comparator; // comparator name private double weight = 1.0; // weight for the field (to be used in the aggregation) private Map params; // parameters private boolean countIfUndefined; public boolean isCountIfUndefined() { return countIfUndefined; } public void setCountIfUndefined(boolean countIfUndefined) { this.countIfUndefined = countIfUndefined; } public FieldConf() { } public FieldConf(String field, String comparator, double weight, Map params, boolean countIfUndefined) { this.field = field; this.comparator = comparator; this.weight = weight; this.params = params; this.countIfUndefined = countIfUndefined; } public String getField() { return field; } public void setField(String field) { this.field = field; } public String getComparator() { return comparator; } public void setComparator(String comparator) { this.comparator = comparator; } public double getWeight() { return weight; } public void setWeight(double weight) { this.weight = weight; } public Map getParams() { return params; } public void setParams(Map params) { this.params = params; } @Override public String toString() { try { return new ObjectMapper().writeValueAsString(this); } catch (IOException e) { throw new PaceException("Impossible to convert to JSON: ", e); } } }