package gov.nasa.jpl.mbee.mdk.generator; import com.nomagic.magicdraw.core.GUILog; import com.nomagic.uml2.ext.magicdraw.activities.mdfundamentalactivities.ActivityNode; import java.util.List; import java.util.Stack; /** * <p> * A more OO way to pass around targets, current node, and whatever other * variables might be added to track generation in DocumentGenerator, which has * been refactored to be more modular. * </p> * * @author bcompane */ public class GenerationContext { private Stack<List<Object>> targets; private ActivityNode current; private DocumentValidator validator; private GUILog log; public GenerationContext(Stack<List<Object>> t, ActivityNode a, DocumentValidator dv, GUILog l) { targets = t; current = a; validator = dv; log = l; } public GenerationContext(Stack<List<Object>> t, ActivityNode a, GUILog l) { targets = t; current = a; validator = null; log = l; } public void pushTargets(List<Object> t) { targets.push(t); } public List<Object> peekTargets() { return targets.peek(); } public List<Object> popTargets() { return targets.pop(); } public boolean targetsEmpty() { return targets.isEmpty(); } public Stack<List<Object>> getTargets() { return targets; } public void setCurrentNode(ActivityNode a) { current = a; } public ActivityNode getCurrentNode() { return current; } public DocumentValidator getValidator() { return validator; } public void setValidator(DocumentValidator validator) { this.validator = validator; } public void log(String msg) { log.log(msg); } }