package com.plectix.simulator.simulator.api.steps; import java.util.Set; import com.plectix.simulator.simulator.KappaSystem; import com.plectix.simulator.simulator.api.OperationType; import com.plectix.simulator.staticanalysis.subviews.AllSubViewsOfAllAgentsInterface; public class DeadRuleDetectionOperation extends AbstractOperation<Set<Integer>> { private final KappaSystem kappaSystem; public DeadRuleDetectionOperation(KappaSystem kappaSystem) { super(kappaSystem.getSimulationData(), OperationType.DEAD_RULE_DETECTION); this.kappaSystem = kappaSystem; } /** * Returns a set of dead rules' ids * @param simulator * @return */ protected Set<Integer> performDry() { AllSubViewsOfAllAgentsInterface subViews = kappaSystem.getSubViews(); subViews.initDeadRules(); return subViews.getDeadRules(); } @Override protected boolean noNeedToPerform() { if (kappaSystem.getSubViews() == null) { return false; } return kappaSystem.getSubViews().getDeadRules() != null; } @Override protected Set<Integer> retrievePreparedResult() { return kappaSystem.getSubViews().getDeadRules(); } }