// Path: src/main/java/com/kasirgalabs/etumulator/processor/APSR.java
// @Singleton
// public class APSR implements Observable {
//     private boolean negative;
//     private boolean zero;
//     private boolean carry;
//     private boolean overflow;
//     private final Dispatcher dispatcher;
// 
//     /**
//      * Construct an APSR with {@link BaseDispatcher}.
//      *
//      * @see BaseDispatcher
//      */
//     public APSR() {
//         this.dispatcher = new BaseDispatcher();
//     }
// 
//     /**
//      * Construct an APSR with the given dispatcher as parameter.
//      *
//      * @param dispatcher The dispatcher which will be used to notify observers.
//      *
//      * @see Dispatcher
//      */
//     @Inject
//     public APSR(Dispatcher dispatcher) {
//         this.dispatcher = dispatcher;
//     }
// 
//     /**
//      * Adds an observer to the list of observers for this object.
//      *
//      * @param observer The observer to be deleted.
//      *
//      * @see Observer
//      */
//     @Override
//     public void addObserver(Observer observer) {
//         dispatcher.addObserver(observer);
//     }
// 
//     /**
//      * @return The negative.
//      */
//     public boolean isNegative() {
//         return negative;
//     }
// 
//     /**
//      * @param negative The negative to set.
//      */
//     public void setNegative(boolean negative) {
//         this.negative = negative;
//         dispatcher.notifyObservers(APSR.class);
//     }
// 
//     /**
//      * @return The zero.
//      */
//     public boolean isZero() {
//         return zero;
//     }
// 
//     /**
//      * @param zero The zero to set.
//      */
//     public void setZero(boolean zero) {
//         this.zero = zero;
//         dispatcher.notifyObservers(APSR.class);
//     }
// 
//     /**
//      * @return The carry.
//      */
//     public boolean isCarry() {
//         return carry;
//     }
// 
//     /**
//      * @param carry The carry to set.
//      */
//     public void setCarry(boolean carry) {
//         this.carry = carry;
//         dispatcher.notifyObservers(APSR.class);
//     }
// 
//     /**
//      * @return The overflow.
//      */
//     public boolean isOverflow() {
//         return overflow;
//     }
// 
//     /**
//      * @param overflow The overflow to set.
//      */
//     public void setOverflow(boolean overflow) {
//         this.overflow = overflow;
//         dispatcher.notifyObservers(APSR.class);
//     }
// 
//     /**
//      * Updates negative and zero flag depending on the given value as parameter.
//      *
//      * @param value The value used to update negative and zero flag.
//      *
//      * @return The returns the given value.
//      */
//     public int updateNZ(int value) {
//         negative = value < 0;
//         zero = value == 0;
//         dispatcher.notifyObservers(APSR.class);
//         return value;
//     }
// 
//     /**
//      * Sets all the flags to false.
//      */
//     public void reset() {
//         negative = false;
//         zero = false;
//         carry = false;
//         overflow = false;
//         dispatcher.notifyObservers(APSR.class);
//     }
// }
// 
// Path: src/main/java/com/kasirgalabs/etumulator/util/Observer.java
// public interface Observer {
//     void update(Class<?> clazz, Object arg);
// }


import com.google.inject.Inject;
import com.kasirgalabs.etumulator.processor.APSR;
import com.kasirgalabs.etumulator.util.Observer;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
package com.kasirgalabs.etumulator.navigator;


public class APSRStatus implements Initializable, Observer {
    @FXML
    private Label negative;
    @FXML
    private Label zero;
    @FXML
    private Label carry;
    @FXML
    private Label overflow;
// Path: src/main/java/com/kasirgalabs/etumulator/processor/APSR.java
// @Singleton
// public class APSR implements Observable {
//     private boolean negative;
//     private boolean zero;
//     private boolean carry;
//     private boolean overflow;
//     private final Dispatcher dispatcher;
// 
//     /**
//      * Construct an APSR with {@link BaseDispatcher}.
//      *
//      * @see BaseDispatcher
//      */
//     public APSR() {
//         this.dispatcher = new BaseDispatcher();
//     }
// 
//     /**
//      * Construct an APSR with the given dispatcher as parameter.
//      *
//      * @param dispatcher The dispatcher which will be used to notify observers.
//      *
//      * @see Dispatcher
//      */
//     @Inject
//     public APSR(Dispatcher dispatcher) {
//         this.dispatcher = dispatcher;
//     }
// 
//     /**
//      * Adds an observer to the list of observers for this object.
//      *
//      * @param observer The observer to be deleted.
//      *
//      * @see Observer
//      */
//     @Override
//     public void addObserver(Observer observer) {
//         dispatcher.addObserver(observer);
//     }
// 
//     /**
//      * @return The negative.
//      */
//     public boolean isNegative() {
//         return negative;
//     }
// 
//     /**
//      * @param negative The negative to set.
//      */
//     public void setNegative(boolean negative) {
//         this.negative = negative;
//         dispatcher.notifyObservers(APSR.class);
//     }
// 
//     /**
//      * @return The zero.
//      */
//     public boolean isZero() {
//         return zero;
//     }
// 
//     /**
//      * @param zero The zero to set.
//      */
//     public void setZero(boolean zero) {
//         this.zero = zero;
//         dispatcher.notifyObservers(APSR.class);
//     }
// 
//     /**
//      * @return The carry.
//      */
//     public boolean isCarry() {
//         return carry;
//     }
// 
//     /**
//      * @param carry The carry to set.
//      */
//     public void setCarry(boolean carry) {
//         this.carry = carry;
//         dispatcher.notifyObservers(APSR.class);
//     }
// 
//     /**
//      * @return The overflow.
//      */
//     public boolean isOverflow() {
//         return overflow;
//     }
// 
//     /**
//      * @param overflow The overflow to set.
//      */
//     public void setOverflow(boolean overflow) {
//         this.overflow = overflow;
//         dispatcher.notifyObservers(APSR.class);
//     }
// 
//     /**
//      * Updates negative and zero flag depending on the given value as parameter.
//      *
//      * @param value The value used to update negative and zero flag.
//      *
//      * @return The returns the given value.
//      */
//     public int updateNZ(int value) {
//         negative = value < 0;
//         zero = value == 0;
//         dispatcher.notifyObservers(APSR.class);
//         return value;
//     }
// 
//     /**
//      * Sets all the flags to false.
//      */
//     public void reset() {
//         negative = false;
//         zero = false;
//         carry = false;
//         overflow = false;
//         dispatcher.notifyObservers(APSR.class);
//     }
// }
// 
// Path: src/main/java/com/kasirgalabs/etumulator/util/Observer.java
// public interface Observer {
//     void update(Class<?> clazz, Object arg);
// }


// Path: src/main/java/com/kasirgalabs/etumulator/navigator/APSRStatus.java
import com.google.inject.Inject;
import com.kasirgalabs.etumulator.processor.APSR;
import com.kasirgalabs.etumulator.util.Observer;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;

package com.kasirgalabs.etumulator.navigator;


public class APSRStatus implements Initializable, Observer {
    @FXML
    private Label negative;
    @FXML
    private Label zero;
    @FXML
    private Label carry;
    @FXML
    private Label overflow;
    private final APSR apsr;