1 package net.mograsim.machine;
3 import java.util.Collections;
4 import java.util.HashSet;
7 import java.util.stream.Collectors;
9 public class UnionRegisterGroup implements RegisterGroup
11 private final String id;
12 private final Set<RegisterGroup> subGroups;
13 private final Set<Register> subGroupRegisters;
15 public UnionRegisterGroup(String id, RegisterGroup... subGroups)
18 this.subGroups = Collections.unmodifiableSet(new HashSet<>(List.of(subGroups)));
19 this.subGroupRegisters = this.subGroups.stream().flatMap(sg -> sg.getRegisters().stream()).distinct()
20 .collect(Collectors.toUnmodifiableSet());
30 public Set<Register> getRegisters()
32 return subGroupRegisters;
36 public Set<RegisterGroup> getSubGroups()