package de.randi2.jsf.backingBeans; import java.io.Serializable; import java.util.ArrayList; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.SessionScoped; import lombok.Setter; import de.randi2.jsf.controllerBeans.SimulationHandler; import de.randi2.jsf.wrappers.CriterionWrapper; import de.randi2.model.criteria.AbstractCriterion; import de.randi2.model.criteria.constraints.AbstractConstraint; /** * <p> * This class wrapped the subject property configuration's functionality for the simulation process. * </p> * * @author Daniel Schrimpf <ds@randi2.de> * */ @ManagedBean(name="simulationSubjectProperty") @SessionScoped public class SimulationSubjectProperty extends AbstractSubjectProperty{ @ManagedProperty("#{simulationHandler}") @Setter private SimulationHandler simulationHandler; @Override public ArrayList<CriterionWrapper<? extends Serializable>> getCriteria() { simulationHandler.criterionChanged(); if (criteria == null) criteria = new ArrayList<CriterionWrapper<? extends Serializable>>(); if (criteria.isEmpty()) { for (AbstractCriterion<? extends Serializable, ? extends AbstractConstraint<?>> c : simulationHandler .getCurrentObject().getCriteria()) { criteria.add(new CriterionWrapper<Serializable>( (AbstractCriterion<Serializable, ?>) c, loginHandler .getChosenLocale(), this, criterionWrapperId++)); } } return super.getCriteria(); } }