1 package net.mograsim.plugin;
3 import java.util.HashSet;
4 import java.util.Optional;
7 import net.mograsim.machine.Machine;
8 import net.mograsim.machine.MachineRegistry;
9 import net.mograsim.plugin.nature.ProjectMachineContext;
12 * @deprecated use the {@link ProjectMachineContext} instead to make the context project dependent.
14 @Deprecated(forRemoval = true)
15 public class MachineContext
17 private Machine machine;
18 private Set<ContextObserver> observers;
19 private static MachineContext instance;
21 private MachineContext()
23 observers = new HashSet<>();
26 public static MachineContext getInstance()
30 instance = new MachineContext();
31 // TODO don't hardcode the Am2900
32 instance.setMachine(MachineRegistry.getMachine("Am2900").createNew());
37 public Machine getMachine()
42 public void setMachine(Machine machine)
44 this.machine = machine;
45 notifyObservers(machine);
48 public void registerObserver(ContextObserver ob)
51 ob.setMachine(Optional.ofNullable(machine));
54 public void deregisterObserver(ContextObserver ob)
59 private void notifyObservers(Machine machine)
61 observers.forEach(ob -> ob.setMachine(Optional.ofNullable(machine)));
65 public static interface ContextObserver
67 void setMachine(Optional<Machine> machine);