/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package model; import java.util.Observable; import library.Converter; /** * * @author cirstea */ public class Computer extends Observable { // classic (not Observable) // private List listViews = null; // first operand private Integer operand; // second operand and repository for result private Integer result; // operation private int operation; public Computer() { // classic (not Observable) // listViews = new ArrayList(); this.operation = Converter.EQUAL; } public Integer getOperand() { return operand; } public void setOperand(Integer operand) { this.operand = operand; } public Integer getResult() { return result; } public void setResult(Integer result) { this.result = result; } public Integer getOperation() { return this.operation; } // public void addObserver(View view) { // listViews.add(view); // } // public void notifyView() { // for (View view : listViews) { // view.update(); // } // } public void setOperand(int operand) { this.operand = operand; setChanged(); notifyObservers(false); } public void setOperation(int operation) { Integer newResult; if (operand == null) { throw new RuntimeException("No operands"); } else { switch (this.operation) { case Converter.PLUS: newResult = result + operand; break; case Converter.MINUS: newResult = result - operand; break; case Converter.EQUAL: // = or the very first operation newResult = operand; break; default: // never newResult = Integer.MAX_VALUE; } operand = newResult; result = newResult; System.out.println("COMPUTER : " + newResult); this.operation = operation; } setChanged(); notifyObservers(true); } }