dnet-hadoop/dhp-pace-core/src/main/java/eu/dnetlib/pace/model/ClusteringDef.java

64 lines
1.2 KiB
Java
Raw Normal View History

2023-07-06 10:28:53 +02:00
package eu.dnetlib.pace.model;
2019-12-05 14:14:25 +01:00
2018-10-29 11:13:55 +01:00
import java.io.IOException;
2018-10-11 15:19:20 +02:00
import java.io.Serializable;
import java.util.List;
import java.util.Map;
2023-07-06 10:28:53 +02:00
import com.fasterxml.jackson.databind.ObjectMapper;
import eu.dnetlib.pace.clustering.ClusteringFunction;
import eu.dnetlib.pace.config.PaceConfig;
import eu.dnetlib.pace.util.PaceException;
2018-10-11 15:19:20 +02:00
public class ClusteringDef implements Serializable {
private String name;
private List<String> fields;
private Map<String, Object> params;
2023-07-06 10:28:53 +02:00
public ClusteringDef() {
}
public String getName() {
return name;
}
public void setName(final String name) {
this.name = name;
}
public ClusteringFunction clusteringFunction() {
2019-06-19 10:01:35 +02:00
return PaceConfig.resolver.getClusteringFunction(getName(), params);
}
public List<String> getFields() {
return fields;
}
public void setFields(final List<String> fields) {
this.fields = fields;
}
public Map<String, Object> getParams() {
return params;
}
public void setParams(final Map<String, Object> params) {
this.params = params;
}
@Override
public String toString() {
2018-10-29 11:13:55 +01:00
try {
return new ObjectMapper().writeValueAsString(this);
} catch (IOException e) {
throw new PaceException("unable to serialise " + this.getClass().getName(), e);
2018-10-29 11:13:55 +01:00
}
}
}