2018-09-05 18:52:05 +02:00
|
|
|
package com.google.refine.clustering;
|
|
|
|
|
|
|
|
import org.json.JSONObject;
|
|
|
|
|
2018-09-28 11:26:43 +02:00
|
|
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
2018-09-05 18:52:05 +02:00
|
|
|
import com.google.refine.model.Project;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Represents the configuration data for a clusterer.
|
|
|
|
* @author Antonin Delpeuch
|
|
|
|
*
|
|
|
|
*/
|
2018-10-03 22:33:37 +02:00
|
|
|
public abstract class ClustererConfig {
|
2018-09-05 18:52:05 +02:00
|
|
|
|
|
|
|
protected String columnName;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Reads the configuration from a JSON payload (TODO: delete)
|
|
|
|
* @param o
|
|
|
|
*/
|
|
|
|
public void initializeFromJSON(JSONObject o) {
|
|
|
|
columnName = o.getString("column");
|
|
|
|
}
|
|
|
|
|
2018-09-28 11:26:43 +02:00
|
|
|
@JsonProperty("column")
|
2018-09-05 18:52:05 +02:00
|
|
|
public String getColumnName() {
|
|
|
|
return columnName;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Instantiate the configuration on a particular project.
|
|
|
|
* @param project
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public abstract Clusterer apply(Project project);
|
2018-09-28 11:26:43 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Type string used in Json serialization
|
|
|
|
*/
|
|
|
|
@JsonProperty("type")
|
|
|
|
public abstract String getType();
|
2018-09-05 18:52:05 +02:00
|
|
|
}
|