package org.openflexo.foundation.toc;
import org.openflexo.antar.binding.BindingDefinition;
import org.openflexo.antar.binding.BindingDefinition.BindingDefinitionType;
import org.openflexo.antar.binding.BindingModel;
import org.openflexo.foundation.xml.FlexoTOCBuilder;
public class ConditionalSection extends ControlSection {
public ConditionalSection(FlexoTOCBuilder builder) {
this(builder.tocData);
initializeDeserialization(builder);
}
public ConditionalSection(TOCData data) {
super(data);
}
@Override
public boolean isConditional() {
return true;
}
private TOCDataBinding condition;
private BindingDefinition CONDITION = new BindingDefinition("condition", Boolean.class, BindingDefinitionType.GET, false);
public BindingDefinition getConditionBindingDefinition() {
return CONDITION;
}
public TOCDataBinding getCondition() {
if (condition == null) {
condition = new TOCDataBinding(this, ControlSectionBindingAttribute.condition, getConditionBindingDefinition());
}
return condition;
}
public void setCondition(TOCDataBinding condition) {
if (condition != null) {
condition.setOwner(this);
condition.setBindingAttribute(ControlSectionBindingAttribute.condition);
condition.setBindingDefinition(getConditionBindingDefinition());
this.condition = condition;
}
}
@Override
protected BindingModel buildInferedBindingModel() {
BindingModel returned = super.buildInferedBindingModel();
getCondition().finalizeDeserialization();
return returned;
}
@Override
public void finalizeDeserialization(Object builder) {
super.finalizeDeserialization(builder);
getCondition().finalizeDeserialization();
}
}