class ParseRESTUserCommand extends ParseRESTCommand {

  public static ParseRESTUserCommand serviceLogInUserCommand(
      String authType, Map<String, String> authData, boolean revocableSession) {

    // Mimic ParseSetOperation
    JSONObject parameters;
    try {
      JSONObject authenticationData = new JSONObject();
      authenticationData.put(authType, PointerEncoder.get().encode(authData));

      parameters = new JSONObject();
      parameters.put("authData", authenticationData);
    } catch (JSONException e) {
      throw new RuntimeException("could not serialize object to JSON");
    }

    return serviceLogInUserCommand(parameters, null, revocableSession);
  }

  private  ParseRESTUserCommand(
      String httpPath,
      ParseHttpRequest.Method httpMethod,
      Map<String, ?> parameters,
      String sessionToken);
  private  ParseRESTUserCommand(
      String httpPath,
      ParseHttpRequest.Method httpMethod,
      Map<String, ?> parameters,
      String sessionToken, boolean isRevocableSessionEnabled);
  private  ParseRESTUserCommand(
      String httpPath,
      ParseHttpRequest.Method httpMethod,
      JSONObject parameters,
      String sessionToken, boolean isRevocableSessionEnabled);

}