code: def exec(self, *command_tokens, command_context=None, **command_env):
  		
  		if self.adapter().match(command_context, **command_env) is False:
  			cmd = WCommandProto.join_tokens(*command_tokens)
  			spec = self.adapter().specification()
  			if spec is not None:
  				spec = [x.context_name() for x in spec]
  				spec.reverse()
  				spec = ','.join(spec)
  			raise RuntimeError('Command mismatch: %s (context: %s)' % (cmd, spec))
  
  		command_tokens = self.adapter().adapt(*command_tokens, command_context=command_context, **command_env)
  		return self.original_command().exec(*command_tokens, command_context=command_context, **command_env)
docs: Execute command
  
  		:param command_tokens: command tokens to execute
  		:param command_context: command context
  		:param command_env: command environment
  		:return: WCommandResultProto