/**
   * Setzt die Properties einen existierenden DisplayMessage-Objektes aus der uebergebenen
   * javax.mail.Message.
   *
   * @param displayMessage Bereits existierende Display-Message
   * @param content Message, aus der das DisplayMessage-Objekt gebaut werden soll.
   */
  public static DisplayMessageModel refurbishGivenDisplayMessage(
      DisplayMessageModel displayMessage, Message message) throws MessageRetrieveException {

    displayMessage.setOriginMessage(message);

    // Parts aus der Message in eine flache ArrayList (DisplayParts) und
    // eine
    // HashMap (InlineParts) packen. Ausserdem die Parts von
    // Multipart-Objekten
    // in einer Map merken (Key: Multipart-Objekt / Value: List)
    List<Part> displayParts = new ArrayList<Part>();
    Map<String, Part> inlineParts = new HashMap<String, Part>();
    Map<Multipart, List<Integer>> multiparts = new HashMap<Multipart, List<Integer>>();

    try {

      deflateMessageParts(message, displayParts, inlineParts, multiparts);
    } catch (Exception e) {

      try {

        assemblePartsForFaultySourceMessage(
            message, displayMessage, displayParts, inlineParts, multiparts, e);
      } catch (MessagingException me) {

        e.printStackTrace();
        me.printStackTrace();
        throw (new MessageRetrieveException("Konnte Message-Parts nicht beziehen", e));
      }
    }

    displayMessage.setDisplayParts(displayParts);
    displayMessage.setInlineParts(inlineParts);
    displayMessage.setMultiparts(multiparts);

    return (displayMessage);
  }