1 package net.mograsim.plugin.launch;
4 import java.util.stream.Collectors;
6 import org.eclipse.core.runtime.PlatformObject;
7 import org.eclipse.debug.core.DebugException;
8 import org.eclipse.debug.core.ILaunch;
9 import org.eclipse.debug.core.model.IDebugTarget;
10 import org.eclipse.debug.core.model.IRegister;
11 import org.eclipse.debug.core.model.IRegisterGroup;
13 import net.mograsim.machine.Machine;
14 import net.mograsim.machine.registers.Register;
15 import net.mograsim.plugin.MograsimActivator;
17 public class MachineRegisterGroup extends PlatformObject implements IRegisterGroup
19 private final MachineStackFrame stackFrame;
20 private final String name;
21 private final List<MachineRegister> registers;
23 public MachineRegisterGroup(MachineStackFrame stackFrame, String name, List<Register> registers)
25 this.stackFrame = stackFrame;
27 this.registers = registers.stream().map(r -> new MachineRegister(this, r)).collect(Collectors.toUnmodifiableList());
31 public String getModelIdentifier()
33 return MograsimActivator.PLUGIN_ID;
36 public Machine getMachine()
38 return stackFrame.getMachine();
42 public IDebugTarget getDebugTarget()
44 return stackFrame.getDebugTarget();
48 public ILaunch getLaunch()
50 return stackFrame.getLaunch();
54 public String getName() throws DebugException
60 public IRegister[] getRegisters() throws DebugException
62 return registers.toArray(IRegister[]::new);
66 public boolean hasRegisters() throws DebugException
68 return hasRegistersSafe();
71 public boolean hasRegistersSafe()
73 return registers.size() > 0;