package eu.dnetlib.pace.model; import java.io.Serializable; import java.lang.reflect.InvocationTargetException; import java.util.List; import java.util.Map; import com.google.gson.Gson; import eu.dnetlib.pace.clustering.*; public class ClusteringDef implements Serializable { private String name; private List fields; private Map params; private ClusteringResolver clusteringResolver = new ClusteringResolver(); public ClusteringDef() {} public String getName() { return name; } public void setName(final String name) { this.name = name; } public ClusteringFunction getClusteringFunction() { try { ClusteringFunction clusteringFunction = clusteringResolver.resolve(getName()); clusteringFunction.setParams(params); return clusteringFunction; } catch (IllegalAccessException | InstantiationException | NoSuchMethodException | InvocationTargetException e) { e.printStackTrace(); return new RandomClusteringFunction(getParams()); } } public List getFields() { return fields; } public void setFields(final List fields) { this.fields = fields; } public Map getParams() { return params; } public void setParams(final Map params) { this.params = params; } @Override public String toString() { return new Gson().toJson(this); } }