Beispiel #1
0
  private List prepareItemAttachment(ItemDataIfc item, boolean isEditPendingAssessmentFlow) {
    ToolSession session = SessionManager.getCurrentToolSession();
    if (session.getAttribute(FilePickerHelper.FILE_PICKER_ATTACHMENTS) != null) {

      Set attachmentSet = new HashSet();
      if (item != null) {
        attachmentSet = item.getItemAttachmentSet();
      }
      HashMap map = getResourceIdHash(attachmentSet);
      ArrayList newAttachmentList = new ArrayList();

      AssessmentService assessmentService = new AssessmentService();
      String protocol = ContextUtil.getProtocol();

      List refs = (List) session.getAttribute(FilePickerHelper.FILE_PICKER_ATTACHMENTS);
      if (refs != null && refs.size() > 0) {
        Reference ref;

        for (int i = 0; i < refs.size(); i++) {
          ref = (Reference) refs.get(i);
          String resourceId = ref.getId();
          if (map.get(resourceId) == null) {
            // new attachment, add
            log.debug("**** ref.Id=" + ref.getId());
            log.debug(
                "**** ref.name="
                    + ref.getProperties()
                        .getProperty(ref.getProperties().getNamePropDisplayName()));
            ItemAttachmentIfc newAttach =
                assessmentService.createItemAttachment(
                    item,
                    ref.getId(),
                    ref.getProperties().getProperty(ref.getProperties().getNamePropDisplayName()),
                    protocol,
                    isEditPendingAssessmentFlow);
            newAttachmentList.add(newAttach);
          } else {
            // attachment already exist, let's add it to new list and
            // check it off from map
            newAttachmentList.add((ItemAttachmentIfc) map.get(resourceId));
            map.remove(resourceId);
          }
        }
      }

      session.removeAttribute(FilePickerHelper.FILE_PICKER_ATTACHMENTS);
      session.removeAttribute(FilePickerHelper.FILE_PICKER_CANCEL);
      return newAttachmentList;
    } else if (item == null) {
      return new ArrayList();
    } else return item.getItemAttachmentList();
  }