Files
PIC-Simu/src/main/java/fabrik/simulator/pic16f84/ExecutionTimeSubject.java

55 lines
1.7 KiB
Java

package fabrik.simulator.pic16f84;
import java.util.HashSet;
import java.util.Set;
import fabrik.simulator.pic16f84.interfaces.ExecutionTimeObserver;
import fabrik.simulator.pic16f84.interfaces.PICComponentInterface;
public abstract class ExecutionTimeSubject extends PICComponent implements PICComponentInterface{
private Set<ExecutionTimeObserver> observers;
public ExecutionTimeSubject(){
super();
this.observers = new HashSet<>();
}
public void registerObserver(ExecutionTimeObserver observer){
observers.add(observer);
}
public void unregisterObserver(ExecutionTimeObserver observer){
observers.remove(observer);
}
protected void notifyObservers(){
observers.forEach(o -> o.executionTimeChanged());
}
public double getTotalExecutionTime(){
throw new UnsupportedOperationException("No class implements ExecutionTimeSubject correctly!");
}
public void addExecutionTime(int i){
throw new UnsupportedOperationException("No class implements ExecutionTimeSubject correctly!");
}
public double getExecutionTimeMultiplier(){
throw new UnsupportedOperationException("No class implements ExecutionTimeSubject correctly!");
}
public void setExecutionTimeMultiplier(String option){
throw new UnsupportedOperationException("No class implements ExecutionTimeSubject correctly!");
}
public void resetTotalExecutionTime(){
throw new UnsupportedOperationException("No class implements ExecutionTimeSubject correctly!");
}
@Override
public void initialize(PICComponentLocator locator) {
super.initialize(locator);
}
}