mimeparser.java

来自「《JAVA与模式》附书中源代码」· Java 代码 · 共 82 行

JAVA
82
字号
package com.javapatterns.builder.message;

import java.awt.Image;

/**
 * This is a class to parse MIME e-mail messages.
 */
class MIMEParser {
    private MIMEMessage msg;        // The message being parsed
    private MessageBuilder builder; // The builder object
    //...

    /**
     * parse a MIME message, calling the builder methods that correspond
     * to the message's header fields and body parts.
     */
    OutboundMessageIF parse(MIMEMessage msg) {
        this.msg = msg;
        builder = MessageBuilder.getInstance(getDestination());
        
        MessagePart hdr = nextHeader();
        while (hdr != null) {
            if (hdr.getName().equalsIgnoreCase("to"))
              builder.to((String)hdr.getValue());
            else if (hdr.getName().equalsIgnoreCase("from"))
              builder.from((String)hdr.getValue());
            //...
            hdr = nextHeader();
        } // while hdr
        
        MessagePart bdy = nextBodyPart();
        while (bdy != null) {
            if (bdy.getName().equals("text/plain"))
              builder.plainText((String)bdy.getValue());
            //...
            else if (bdy.getName().equals("image/jpeg"))
              builder.jpegImage((Image)bdy.getValue());
            //...
            bdy = nextHeader();
        } // while bdy

        return builder.getOutboundMsg();
    } // parse(MIMEMessage)

    private MessagePart nextHeader() {
        MessagePart mp = null;
        //...
        return mp;
    } // nextHeader()

    private MessagePart nextBodyPart() {
        MessagePart mp = null;
        //...
        return mp;
    } // nextBodyPart()

    // return the destination e-mail address for the message
    private String getDestination() {
        String dest = null;
        //...
        return dest;
    } // getDestination()

    private class MessagePart {
        private String name;
        private Object value;

        /**
         * Consructor
         */
        MessagePart(String name, Object value) {
            this.name = name;
            this.value = value;
        } // Consructor(String, String)

        String getName() { return name; }

        Object getValue() { return value; }
    } // class MessagePart
} // class MIMEParser

⌨️ 快捷键说明

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