code: @Override
      public Any command_inout_4(final String commandName, final Any argin, final DevSource source,
                                 final ClntIdent clIdent) throws DevFailed {
          MDC.setContextMap(contextMap);
          xlogger.entry(commandName);
          if (!commandName.equalsIgnoreCase(DeviceImpl.STATE_NAME)
                  && !commandName.equalsIgnoreCase(DeviceImpl.STATUS_NAME)) {
              checkInitialization();
          }
          final long request = deviceMonitoring.startRequest("Operation command_inout_4 (cmd = " + commandName + ")",
                  source, clIdent);
          clientIdentity.set(clIdent);
          Any argout = null;
          if (!name.equalsIgnoreCase(getAdminDeviceName())) {
              clientLocking.checkClientLocking(clIdent, commandName);
          }
          try {
              argout = commandHandler(commandName, argin, source, clIdent);
          } catch (final Exception e) {
              deviceMonitoring.addError();
              if (e instanceof DevFailed) {
                  throw (DevFailed) e;
              } else {
                  // with CORBA, the stack trace is not visible by the client if
                  // not inserted in DevFailed.
                  throw DevFailedUtils.newDevFailed(e);
              }
          } finally {
              deviceMonitoring.endRequest(request);
          }
          xlogger.exit();
          return argout;
      }
docs: Execute a command. IDL 4 version
  
  @param commandName command name
  @param argin       command parameters
  @param source      the device source (CACHE, DEV or CACHE_DEV)
  @param clIdent     client id
  @return command result
  @throws DevFailed