protected static Object readUserPreferencesFromIMAP()

in server/src/main/java/org/apache/hupa/server/preferences/InImapUserPreferencesStorage.java [85:118]


    protected static Object readUserPreferencesFromIMAP(Log logger, User user, IMAPStore iStore, String folderName, String magicType)
              throws MessagingException, IOException, ClassNotFoundException {
        Folder folder = iStore.getFolder(folderName);
        if (folder.exists()) {
            if (!folder.isOpen()) {
                folder.open(Folder.READ_WRITE);
            }
            Message message = null;
            Message[] msgs = folder.getMessages();
            for (Message msg : msgs) {
                if (magicType.equals(msg.getSubject())) {
                    message = msg;
                    break;
                }
            }
            if (message != null) {
                Object con = message.getContent();
                if (con instanceof Multipart) {
                    Multipart mp = (Multipart) con;
                    for(int i=0; i<mp.getCount(); i++) {
                        BodyPart part = mp.getBodyPart(i);
                        if (part.getContentType().toLowerCase().startsWith(HUPA_DATA_MIME_TYPE)) {
                            ObjectInputStream ois = new ObjectInputStream(part.getInputStream());
                            Object o = ois.readObject();
                            ois.close();
                            logger.info("Returning user preferences of type " + magicType + " from imap folder + " + folderName + " for user " + user);
                            return o;
                        }
                    }
                }
            }
        }
        return null;
    }