Restructured register system
[Mograsim.git] / plugins / net.mograsim.machine / src / net / mograsim / machine / registers / SimpleRegisterGroup.java
diff --git a/plugins/net.mograsim.machine/src/net/mograsim/machine/registers/SimpleRegisterGroup.java b/plugins/net.mograsim.machine/src/net/mograsim/machine/registers/SimpleRegisterGroup.java
new file mode 100644 (file)
index 0000000..09e8029
--- /dev/null
@@ -0,0 +1,45 @@
+package net.mograsim.machine.registers;
+
+import java.util.List;
+
+public class SimpleRegisterGroup implements RegisterGroup
+{
+       private final String id;
+       private final List<Register> registers;
+       private final List<RegisterGroup> subgroups;
+
+       protected SimpleRegisterGroup(String id, Register... registers)
+       {
+               this(id, new RegisterGroup[0], registers);
+       }
+
+       protected SimpleRegisterGroup(String id, RegisterGroup... subgroups)
+       {
+               this(id, subgroups, new Register[0]);
+       }
+
+       protected SimpleRegisterGroup(String id, RegisterGroup[] subgroups, Register... registers)
+       {
+               this.id = id;
+               this.registers = List.of(registers);
+               this.subgroups = List.of(subgroups);
+       }
+
+       @Override
+       public String id()
+       {
+               return id;
+       }
+
+       @Override
+       public List<Register> getRegisters()
+       {
+               return registers;
+       }
+
+       @Override
+       public List<RegisterGroup> getSubGroups()
+       {
+               return subgroups;
+       }
+}
\ No newline at end of file