docs: public Collection<Contact> getPublicList(String userId) throws FlickrException {
          List<Contact> contacts = new ArrayList<Contact>();
  
          Map<String, Object> parameters = new HashMap<String, Object>();
          parameters.put("method", METHOD_GET_PUBLIC_LIST);
          parameters.put("user_id", userId);
  
          Response response = transportAPI.get(transportAPI.getPath(), parameters, apiKey, sharedSecret);
          if (response.isError()) {
              throw new FlickrException(response.getErrorCode(), response.getErrorMessage());
          }
  
          Element contactsElement = response.getPayload();
          NodeList contactNodes = contactsElement.getElementsByTagName("contact");
          for (int i = 0; i < contactNodes.getLength(); i++) {
              Element contactElement = (Element) contactNodes.item(i);
              Contact contact = new Contact();
              contact.setId(contactElement.getAttribute("nsid"));
              contact.setUsername(contactElement.getAttribute("username"));
              contact.setIgnored("1".equals(contactElement.getAttribute("ignored")));
              contact.setOnline(OnlineStatus.fromType(contactElement.getAttribute("online")));
              contact.setIconFarm(contactElement.getAttribute("iconfarm"));
              contact.setIconServer(contactElement.getAttribute("iconserver"));
              if (contact.getOnline() == OnlineStatus.AWAY) {
                  contactElement.normalize();
                  contact.setAwayMessage(XMLUtilities.getValue(contactElement));
              }
              contacts.add(contact);
          }
          return contacts;
      }