code: public Photos getPublicPhotos(String userId, JinxConstants.SafetyLevel safetyLevel, EnumSet<JinxConstants.PhotoExtras> extras,
                                  int perPage, int page, boolean sign) throws JinxException {
      JinxUtils.validateParams(userId);
      Map<String, String> params = new TreeMap<>();
      params.put("method", "flickr.people.getPublicPhotos");
      params.put("user_id", userId);
      if (safetyLevel != null) {
        params.put("safe_search", Integer.toString(JinxUtils.safetyLevelToFlickrSafteyLevelId(safetyLevel)));
      }
      if (!JinxUtils.isNullOrEmpty(extras)) {
        params.put("extras", JinxUtils.buildCommaDelimitedList(extras));
      }
      if (perPage > 0) {
        params.put("per_page", Integer.toString(perPage));
      }
      if (page > 0) {
        params.put("page", Integer.toString(page));
      }
      return jinx.flickrGet(params, Photos.class, sign);
    }
docs: Get a list of public photos for the given user.
  <br>
  This method does not require authentication.
  
  @param userId      (Required) The userId of the user who's photos to return.
  @param safetyLevel (Optional) safe search level of photos to return. Unsigned calls can only see safe content.
  @param extras      (Optional) extra information to return for each photo.
  @param perPage     Number of photos to return per page. If this argument is less than 1, it defaults to 100. The maximum allowed value is 500.
  @param page        The page of results to return. If this argument is less than 1, it defaults to 1.
  @param sign        if true, the request will be signed.
  @return public photos for the given user.
  @throws JinxException if required parameters are missing, or if there are any errors.
  @see <a href="https://www.flickr.com/services/api/flickr.people.getPublicPhotos.html">flickr.people.getPublicPhotos</a>