ActiveInstructionChangedListener moved to Machine and updated
[Mograsim.git] / plugins / net.mograsim.machine / src / net / mograsim / machine / mi / StandardMicroInstructionMemory.java
index 519c9b3..c8866fd 100644 (file)
@@ -2,14 +2,13 @@ package net.mograsim.machine.mi;
 
 import java.util.HashSet;
 
-import net.mograsim.machine.MemoryObserver;
 import net.mograsim.machine.standard.memory.MemoryException;
 
 public class StandardMicroInstructionMemory implements MicroInstructionMemory
 {
        private MicroInstruction[] data;
        private MicroInstructionMemoryDefinition definition;
-       private HashSet<MemoryObserver> observers = new HashSet<>();
+       private HashSet<MemoryCellModifiedListener> observers = new HashSet<>();
 
        public StandardMicroInstructionMemory(MicroInstructionMemoryDefinition definition)
        {
@@ -30,8 +29,7 @@ public class StandardMicroInstructionMemory implements MicroInstructionMemory
                int translatedAddress = translate(address);
                MicroInstruction actual = data[translatedAddress];
                if (actual == null)
-                       actual = data[translatedAddress] = definition.getMicroInstructionDefinition()
-                                       .createDefaultInstruction(() -> notifyObservers(address));
+                       actual = data[translatedAddress] = definition.getMicroInstructionDefinition().createDefaultInstruction();
                return actual;
        }
 
@@ -39,23 +37,22 @@ public class StandardMicroInstructionMemory implements MicroInstructionMemory
        public void setCell(long address, MicroInstruction data)
        {
                this.data[translate(address)] = data;
-               notifyObservers(address);
+               notifyMemoryChanged(address);
        }
 
        @Override
-       public void registerObserver(MemoryObserver ob)
+       public void registerCellModifiedListener(MemoryCellModifiedListener ob)
        {
                observers.add(ob);
        }
 
        @Override
-       public void deregisterObserver(MemoryObserver ob)
+       public void deregisterCellModifiedListener(MemoryCellModifiedListener ob)
        {
                observers.remove(ob);
        }
 
-       @Override
-       public void notifyObservers(long address)
+       private void notifyMemoryChanged(long address)
        {
                observers.forEach(ob -> ob.update(address));
        }
@@ -65,5 +62,4 @@ public class StandardMicroInstructionMemory implements MicroInstructionMemory
        {
                return definition;
        }
-
 }