private List<PublicationPK> filterPublicationPKs(
      List<PublicationPK> publicationPKs, int nbPublis) {
    List<PublicationPK> filteredPublicationPKs = new ArrayList<PublicationPK>();
    KmeliaSecurity security = new KmeliaSecurity();

    PublicationPK pk = null;
    for (int p = 0; publicationPKs != null && p < publicationPKs.size(); p++) {
      pk = publicationPKs.get(p);
      if (security.isObjectAvailable(pk.getInstanceId(), userId, pk.getId(), "Publication")) {
        filteredPublicationPKs.add(pk);
      }

      if (nbPublis != -1 && filteredPublicationPKs.size() == nbPublis) {
        return filteredPublicationPKs;
      }
    }

    return filteredPublicationPKs;
  }
  /**
   * return a list of silverContent according to a list of publicationPK
   *
   * @param ids a list of publicationPK
   * @return a list of publicationDetail
   */
  private List<PublicationDetail> getHeaders(
      List<PublicationPK> ids, String componentId, String userId) {
    List<PublicationDetail> headers = new ArrayList<PublicationDetail>();
    try {
      KmeliaSecurity security = new KmeliaSecurity();
      boolean checkRights = security.isRightsOnTopicsEnabled(componentId);

      Collection<PublicationDetail> publicationDetails = getPublicationBm().getPublications(ids);
      for (PublicationDetail pubDetail : publicationDetails) {
        if (!checkRights || security.isPublicationAvailable(pubDetail.getPK(), userId)) {
          pubDetail.setIconUrl("kmeliaSmall.gif");
          headers.add(pubDetail);
        }
      }
    } catch (RemoteException e) {
      // skip unknown and ill formed id.
    }
    return headers;
  }
  private List<PublicationDetail> filterPublications(
      List<PublicationDetail> publications, int nbPublis) {
    List<PublicationDetail> filteredPublications = new ArrayList<PublicationDetail>();
    KmeliaSecurity security = new KmeliaSecurity();

    PublicationDetail pub = null;
    for (int p = 0; publications != null && p < publications.size(); p++) {
      pub = publications.get(p);
      if (security.isObjectAvailable(
          pub.getPK().getInstanceId(), userId, pub.getPK().getId(), "Publication")) {
        filteredPublications.add(pub);
      }

      if (nbPublis != -1 && filteredPublications.size() == nbPublis) {
        return filteredPublications;
      }
    }

    return filteredPublications;
  }