package edu.gui.components; import edu.gui.Observer; import edu.gui.Subject; import edu.parser.QL.nodes.expression.QLIdentifier; import edu.parser.QL.nodes.question.Question; import java.util.ArrayList; import java.util.List; /** * Created by Steven Kok on 13/03/2015. */ public abstract class AbstractBox implements Subject { private final List<Observer> observers = new ArrayList<>(); private final Question question; public AbstractBox(Question question) { this.question = question; } protected Question getQuestion() { return question; } protected List<Observer> getObservers() { return observers; } @Override public void registerObserver(Observer observer) { observers.add(observer); } protected boolean computedQuestion(Question question) { return question.getExpression().isPresent(); } public QLIdentifier getIdentifier() { return question.getQLIdentifier(); } public abstract void removeEventListeners(); }