class ScanService implements SynchronMessageHandler {

    @Override
    @IsRecevingSyncMessage(MessageID.START_SCAN)
    public DomainMessageSynchronousResult receiveSynchronMessage(DomainMessage request) {
        notNull(request, "Request may not be null!");

        if (!request.hasID(MessageID.START_SCAN)) {
            return new DomainMessageSynchronousResult(MessageID.UNSUPPORTED_OPERATION,
                    new UnsupportedOperationException("Can only handle " + MessageID.START_SCAN));
        }
        return startScan(request);
    }

}