code: void init(String path, long projectId, String projectToken, String deviceId, String backendUrl)
          throws ApiException {
          this.path = path;
          this.projectId = projectId;
          this.projectToken = projectToken;
          if (deviceId == null && path != null) {
              deviceId = localDeviceIdCheck();
          }
          setDeviceId(deviceId);
  
          client = new RestClient(backendUrl, Executors.newSingleThreadExecutor());
          File dir = path != null ? new File(path) : null;
          AuthHandler handler = new DefaultAuthHandler(client, projectId, projectToken, dir);
          client.setAuthenticationHandler(handler);
      }
docs: (Re-)initializes the iobeam client.
  
  @param path         Directory where the device ID file, iobeam-device-id, should be written.
  If null, the device ID is <b>not</b> persisted.
  @param projectId    The numeric project ID to associate with.
  @param projectToken The token to use when communicating with iobeam cloud.
  @param deviceId     The device ID that should be used by the iobeam client.
  @param backendUrl   The base URL of API services to talk to
  @throws ApiException Thrown if something goes wrong with initializing the device ID.