@Override
  public Response handleRequest(Request request)
      throws TcpClientWriteException, TcpClientReadException, TcpClientConnectException {
    long methodId = request.getMethodId();
    ListTestService listTestImpl = (AbstractListTestService) service;
    if (methodId == 4202985802L) {
      List<Argument> args = request.getArgs();
      Argument arg0 = args.get(0);
      byte[] serializedNames = arg0.getData();
      SerializableStringList serializableStringList = new SerializableStringList();
      serializableStringList.deserialize(serializedNames);
      List<String> names = serializableStringList.getStringList();
      Response response = new Response();
      listTestImpl.addNames(names);
      response.setStatusCode((byte) 0);
      response.setData(new byte[] {0});
      response.setLength(0);
      return response;
    }
    if (methodId == 2800820226L) {
      List<Argument> args = request.getArgs();
      SerializableStringList serializableStringList = new SerializableStringList();
      Response response = new Response();
      List<String> stringList = listTestImpl.getNames();
      byte[] serializedStringList;
      if (stringList == null) {
        serializedStringList = new byte[0];
      } else {
        serializableStringList.setStringList(stringList);
        serializedStringList = serializableStringList.serialize();
      }
      response.setStatusCode((byte) 0);
      response.setData(serializedStringList);
      response.setLength(serializedStringList.length + 1);
      return response;
    }
    if (methodId == 284127249L) {
      List<Argument> args = request.getArgs();
      SerializableMessageBoxList serializableMessageBoxList = new SerializableMessageBoxList();
      Response response = new Response();
      List<MessageBox> messageboxList = listTestImpl.getMessages();
      byte[] serializedMessageBoxList;
      if (messageboxList == null) {
        serializedMessageBoxList = new byte[0];
      } else {
        serializableMessageBoxList.setMessageBoxList(messageboxList);
        serializedMessageBoxList = serializableMessageBoxList.serialize();
      }
      response.setStatusCode((byte) 0);
      response.setData(serializedMessageBoxList);
      response.setLength(serializedMessageBoxList.length + 1);
      return response;
    }
    if (methodId == 2086091320L) {
      List<Argument> args = request.getArgs();
      Argument arg0 = args.get(0);
      byte[] serializedMessage = arg0.getData();
      MessageBox message = new MessageBox();
      message.deserialize(serializedMessage);
      Response response = new Response();
      listTestImpl.addMessage(message);
      response.setStatusCode((byte) 0);
      response.setData(new byte[] {0});
      response.setLength(0);
      return response;
    }
    if (methodId == 1406341711L) {
      List<Argument> args = request.getArgs();
      Argument arg0 = args.get(0);
      byte[] serializedNumbers = arg0.getData();
      SerializableUint16List serializableUint16List = new SerializableUint16List();
      serializableUint16List.deserialize(serializedNumbers);
      List<Short> numbers = serializableUint16List.getUint16List();
      Response response = new Response();
      listTestImpl.addShortNumbers(numbers);
      response.setStatusCode((byte) 0);
      response.setData(new byte[] {0});
      response.setLength(0);
      return response;
    }
    if (methodId == 4053376767L) {
      List<Argument> args = request.getArgs();
      Argument arg0 = args.get(0);
      byte[] serializedNumbers = arg0.getData();
      SerializableUint8List serializableUint8List = new SerializableUint8List();
      serializableUint8List.deserialize(serializedNumbers);
      List<Byte> numbers = serializableUint8List.getUint8List();
      Response response = new Response();
      listTestImpl.addByteNumbers(numbers);
      response.setStatusCode((byte) 0);
      response.setData(new byte[] {0});
      response.setLength(0);
      return response;
    }

    Response response = new Response();
    response.setStatusCode((byte) 255);
    response.setData(new byte[] {0});
    response.setLength(2);
    if (Config.isVerboseMode) {
      System.out.println("WARN : method id is incorrect");
    }
    return response;
  }