package no.priv.garshol.duke.datasources;
import java.util.ArrayList;
import java.util.Collection;
import java.util.regex.Pattern;
import no.priv.garshol.duke.Cleaner;
public class Column {
private String name;
private String property;
private String prefix;
private Cleaner cleaner;
private Pattern splitter;
public Column(String name, String property, String prefix, Cleaner cleaner) {
this.name = name;
this.property = property;
this.prefix = prefix;
this.cleaner = cleaner;
}
public String getName() {
return name;
}
public String getProperty() {
if (property == null)
return name;
else
return property;
}
public String getPrefix() {
return prefix;
}
public Cleaner getCleaner() {
return cleaner;
}
public void setSplitOn(String spliton) {
this.splitter = Pattern.compile(spliton);
}
/**
* Returns true iff this column needs to be split into multiple values.
*/
public boolean isSplit() {
return splitter != null;
}
/**
* Splits the given string into multiple values.
*/
public Collection<String> split(String value) {
String[] parts = splitter.split(value);
Collection<String> values = new ArrayList(parts.length);
for (int ix = 0; ix < parts.length; ix++)
values.add(parts[ix]);
return values;
}
public String getSplitOn() {
return splitter.toString();
}
}