Restructured register system
[Mograsim.git] / plugins / net.mograsim.machine / src / net / mograsim / machine / registers / SimpleRegisterGroup.java
1 package net.mograsim.machine.registers;
2
3 import java.util.List;
4
5 public class SimpleRegisterGroup implements RegisterGroup
6 {
7         private final String id;
8         private final List<Register> registers;
9         private final List<RegisterGroup> subgroups;
10
11         protected SimpleRegisterGroup(String id, Register... registers)
12         {
13                 this(id, new RegisterGroup[0], registers);
14         }
15
16         protected SimpleRegisterGroup(String id, RegisterGroup... subgroups)
17         {
18                 this(id, subgroups, new Register[0]);
19         }
20
21         protected SimpleRegisterGroup(String id, RegisterGroup[] subgroups, Register... registers)
22         {
23                 this.id = id;
24                 this.registers = List.of(registers);
25                 this.subgroups = List.of(subgroups);
26         }
27
28         @Override
29         public String id()
30         {
31                 return id;
32         }
33
34         @Override
35         public List<Register> getRegisters()
36         {
37                 return registers;
38         }
39
40         @Override
41         public List<RegisterGroup> getSubGroups()
42         {
43                 return subgroups;
44         }
45 }