package de.mpicbg.knime.knutils;
import org.knime.core.data.*;
import java.util.HashSet;
import java.util.Set;
/**
* An atttribute implementation that allows for an automatic creation of a proper attribute domain.
*
* @author Holger Brandl
*/
public class DomainCacheAttribute extends Attribute {
private Set<DataCell> domain = new HashSet<DataCell>();
public DomainCacheAttribute(String attributeName, DataType type) {
super(attributeName, type);
}
public DataColumnSpec getColumnSpec() {
DataColumnSpecCreator columnSpecCreator = new DataColumnSpecCreator(getName(), getType());
if (!domain.isEmpty()) {
DataColumnDomain dataColumnDomain = new DataColumnDomainCreator(domain).createDomain();
columnSpecCreator.setDomain(dataColumnDomain);
}
return columnSpecCreator.createSpec();
}
@Override
protected DataCell postProcessCreatedCell(DataCell cell) {
domain.add(cell);
return cell;
}
}