class DeviceServiceHandler extends AbstractPlatformService {

   @Override
   protected void handleEvent(PlatformMessage message) throws Exception {
      MessageBody body = message.getValue();
      String type = body.getMessageType();
      switch (type) {
      case DeviceAdvancedCapability.RemovedDeviceEvent.NAME:
         handleRemovedDeviceEvent(message.getValue());
         break;
      case Capability.EVENT_DELETED:
         handleDeletedEvent(message);
         break;
      case HubAdvancedCapability.GetDeviceInfoResponse.NAME:
         addDevice(message.getValue());
         break;
		case com.iris.messages.service.DeviceService.DevicesDegradedEvent.NAME:
		   syncDegradedDevices(message, body);
		   break;
      default:
			super.handleEvent(message);
			break;
      }
   }

   @Inject public  DeviceServiceHandler(
	      PlatformMessageBus platformBus,
	      DriverServiceConfig config,
	      DeviceDAO deviceDao,
	      HubDAO hubDao,
	      IpcdDeviceDao ipcdDeviceDao,
	      PersonDAO personDao,
	      PersonPlaceAssocDAO personPlaceAssocDao,
	      DeviceService service,
	      PlatformDriverService driverService
   );

}