⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jnimailbridge.java

📁 < Professional Java,JDK 5 Edition> 经典例程源代码。
💻 JAVA
字号:
import java.util.*;

class MailMessage {
    public String fromAddress;
    public String subject;
    public String body;

    public MailMessage(String from, String subj, String b)
    {
        fromAddress = from;
        subject = subj;
        body = b;
    }

    public String toString()
    {
        return("FROM: " + fromAddress + "  SUBJECT: " + subject);
    }
}

class MailFolder {
    String folderName="";
    ArrayList<MailMessage> messageList;

    public MailFolder(String name)
    {
        setFolderName(name);
        messageList = new ArrayList<MailMessage>();
    }

    public String getFolderName()
    {
        return(folderName);
    }

    public void setFolderName(String name)
    {
        folderName = name;
    }

    public int getMessageCount()
    {
        return(messageList.size());
    }

    public MailMessage getMessage(int index)
    {
        if(index < 0 || index >= messageList.size()) {
            return(null);
        }

        return((MailMessage)messageList.get(index));
    }

    public void addMessage(MailMessage msg)
    {
        messageList.add(msg);
    }

    public void clearMessages()
    {
        messageList = new ArrayList<MailMessage>();
    }

    public String toString()
    {
        return(folderName);
    }
}

public class JNIMailBridge {
    ArrayList<MailFolder> mailFolders;

    public native void sendMail(String profile, String to, String subject, String body);
    public native void getFolderContents(String profile, String topFolderName, String folderName);
    public native void getFolderList(String profile, String topFolderName);

    static {
        System.loadLibrary("MailLibrary");
    }

    public void clearFolderList()
    {
        mailFolders = new ArrayList<MailFolder>();
    }

    public void addFolder(String folderName)
    {
        mailFolders.add(new MailFolder(folderName));
    }

    public int getFolderCount()
    {
        return(mailFolders.size());
    }

    public MailFolder getFolder(int index)
    {
        if(index < 0 || index >= mailFolders.size()) {
            return(null);
        }

        return(mailFolders.get(index));
    }

    public MailFolder findFolder(String folderName)
    {
        int index;
        MailFolder folder;

        for(index=0; index<mailFolders.size(); index++) {
            folder = mailFolders.get(index);

            if(folder.getFolderName().equals(folderName)) {
                return(folder);
            }
        }

        return(null);
    }

    public void clearMessageList(String folderName)
    {
        MailFolder folder;

        folder = findFolder(folderName);

        if(folder != null) {
            folder.clearMessages();
        }
    }

    public void addMessage(String folderName, String from, String subj, String body)
    {
        MailFolder folder;
        MailMessage msg;

        folder = findFolder(folderName);

        if(folder != null) {
            msg = new MailMessage(from, subj, body);
            folder.addMessage(msg);
        }
    }

    public static void main(String args[])
    {
        try {
            JNIMailBridge bridge = new JNIMailBridge();

            bridge.getFolderList("Outlook", "Top of Personal Folders");

            System.out.println("List of folders inside Personal Folders collection");
            for(int i=0; i<bridge.mailFolders.size(); i++) {
                System.out.println("  " + i + ": " + bridge.mailFolders.get(i));
            }

            bridge.getFolderContents("Outlook", "Top of Personal Folders", "Example");

            MailFolder folder;

            folder = bridge.findFolder("Example");

            System.out.println("\n\nList of messages inside folder 'Example'");
            for(int i=0; i<folder.getMessageCount(); i++) {
                System.out.println("  " + i + ": " + folder.getMessage(i));
            }
        } catch(Exception e) {
            System.out.println("Exception: " + e);
            e.printStackTrace();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -