package sushi.application.pages.input.model;
import java.util.ArrayList;
import java.util.List;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import sushi.application.components.table.SushiProvider;
import sushi.event.attribute.SushiAttribute;
/**
* This class is the provider for event attributes.
*/
public class EventAttributeProvider extends SushiProvider<SushiAttribute> {
private static final long serialVersionUID = 1L;
private String timestampName;
/**
* Constructor for providing event attributes.
*/
public EventAttributeProvider(List<SushiAttribute> attributes) {
super(attributes);
this.timestampName = new String();
}
public EventAttributeProvider(List<SushiAttribute> attributes, String timestampName) {
this(attributes);
this.timestampName = timestampName;
}
public EventAttributeProvider(List<SushiAttribute> attributes, List<SushiAttribute> selectedAttributes) {
super(attributes, selectedAttributes);
}
@Override
public void detach() {
// attributes = null;
}
@Override
public IModel<SushiAttribute> model(SushiAttribute attribute) {
return Model.of(attribute);
}
public List<String> getSelectedColumnNames() {
ArrayList<String> selectedColumnNames = new ArrayList<String>();
selectedColumnNames.add(timestampName);
for (SushiAttribute attribute : entities) {
if (selectedEntities.contains(attribute) && !attribute.getName().equals(timestampName)) {
selectedColumnNames.add(attribute.getName());
}
}
return selectedColumnNames;
}
public List<String> getSelectedAttributeExpressions() {
ArrayList<String> selectedAttributeExpressions = new ArrayList<String>();
for (SushiAttribute attribute : selectedEntities) {
selectedAttributeExpressions.add(attribute.getAttributeExpression());
}
return selectedAttributeExpressions;
}
public void setTimestampName(String timestampName) {
this.timestampName = timestampName;
}
}