protected void stopDevice() throws DriverException {
final IDEDevice dev = (IDEDevice) getDevice();
// find mounted partitions on this device and unregister them !
try {
DeviceManager devMan = InitialNaming.lookup(DeviceManager.NAME);
Collection<Device> devices = devMan.getDevices();
final ArrayList<IDEDiskPartitionDevice> toStop = new ArrayList<IDEDiskPartitionDevice>();
for (Device device : devices) {
if (device instanceof IDEDiskPartitionDevice) {
IDEDiskPartitionDevice partition = (IDEDiskPartitionDevice) device;
if (partition.getParent() == dev) {
toStop.add(partition);
}
}
}
for (IDEDiskPartitionDevice partition : toStop) {
devMan.unregister(partition);
}
} catch (NameNotFoundException e) {
throw new DriverException("Problem while stopping this IDE device", e);
}