package org.activityinfo.server.endpoint.odk;
import org.activityinfo.model.type.Cardinality;
import org.activityinfo.io.xform.form.*;
import java.util.List;
class SelectBuilder implements OdkFormFieldBuilder {
final private BindingType modelBindType;
final private Cardinality cardinality;
final private List<Item> items;
SelectBuilder(BindingType modelBindType, SelectOptions selectOptions) {
this.modelBindType = modelBindType;
this.cardinality = selectOptions.getCardinality();
this.items = selectOptions.getItems();
}
@Override
public BindingType getModelBindType() {
return modelBindType;
}
@Override
public SelectElement createBodyElement(String ref, String label, String hint) {
SelectElement select;
switch(cardinality) {
case SINGLE:
select = new Select1();
break;
case MULTIPLE:
select = new Select();
break;
default:
throw new IllegalStateException("Cardinality: " + cardinality);
}
select.setRef(ref);
select.setLabel(label);
select.getItems().addAll(items);
select.setHint(hint);
return select;
}
}