Completely changed the structure and switched to Eclipse Plugin.
[Mograsim.git] / net.mograsim.plugin.core / src / net / mograsim / plugin / AsmOps.java
1 package net.mograsim.plugin;\r
2 \r
3 import java.util.Collection;\r
4 import java.util.HashSet;\r
5 import java.util.Set;\r
6 import java.util.function.Consumer;\r
7 \r
8 public class AsmOps\r
9 {\r
10         public static Set<String> ops = new HashSet<>();\r
11         public static Set<Consumer<Set<String>>> listeners = new HashSet<>();\r
12 \r
13         static\r
14         {\r
15                 ops.add("add");\r
16                 ops.add("mul");\r
17                 ops.add("mov");\r
18                 ops.add("inc");\r
19         }\r
20 \r
21         public static void setWords(Collection<String> s)\r
22         {\r
23                 if (ops.size() == s.size() && ops.containsAll(s))\r
24                         return;\r
25                 ops.clear();\r
26                 ops.addAll(s);\r
27                 update();\r
28         }\r
29 \r
30         public static void addListener(Consumer<Set<String>> con)\r
31         {\r
32                 listeners.add(con);\r
33                 con.accept(ops);\r
34         }\r
35 \r
36         public static void removeListener(Consumer<Set<String>> con)\r
37         {\r
38                 listeners.remove(con);\r
39         }\r
40 \r
41         public static void update()\r
42         {\r
43                 listeners.forEach(c -> c.accept(ops));\r
44         }\r
45 }\r