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

📄 headerfieldassembler.java

📁 用Java写的彩信的程序。包括wsp/mime/mms几部分。
💻 JAVA
字号:
/* 
 * JVending - J2ME MMS Client
 *
 * Distributed under Apache style software license included with the source code.
 */

package org.jvending.messaging.mms;

import java.util.Calendar;

import org.jvending.messaging.wsp.tokens.*;

/**
 * @author Shane Isbell
 * @version 1.0.0a
 * @created 04/03/27
 */


public class HeaderFieldAssembler {

    private WspTokenizer tokenizer;

    public void setTokenizer(WspTokenizer tokenizer) {
        this.tokenizer = tokenizer;
    }
 
    private String getVersion(int i) {
        int majorVersion = i >> 4;
        int minorVersion = (i & 0x0F);
        return String.valueOf(majorVersion +"." + minorVersion);
    }


    public Field getField(int value) {
            Field field = null;
            Token token = null;
            String headerStringValue = null;
            int headerIntValue = 0;
            long headerLongValue = 0L;
            int[] headerIntValues = null;
            int length = 0;
            System.out.println("FIELD VALUE:" + value);
            switch(value) {
                case -1: //end of input stream
                    return null;
                case 0:
                    return new Field("DUMMY", "DUMMY");

                case MessageField.X_MMS_MESSAGE_TYPE:
                    token = (Token) tokenizer.nextElement();
                    headerIntValue = token.getIntValue();
                    field = new Field("X_MMS_MESSAGE_TYPE", MessageType.lookupMessageType(headerIntValue));
                    return field;

                case MessageField.BCC:
                    token = (Token) tokenizer.nextElement();
                    headerStringValue = token.getStringValue();
                    field = new Field("BCC", headerStringValue);
                    return field;

                case MessageField.CC:
                    token = (Token) tokenizer.nextElement();
                    headerStringValue = token.getStringValue();
                    field = new Field("CC", headerStringValue);
                    return field;

                case MessageField.X_MMS_CONTENT_LOCATION:
                    token = (Token) tokenizer.nextElement();
                    headerStringValue = token.getStringValue();
                    field = new Field("X_MMS_CONTENT_LOCATION", headerStringValue);
                    return field;

                case MessageField.MESSAGE_ID:
                    token = (Token) tokenizer.nextElement();
                    headerStringValue = token.getStringValue();
                    field = new Field("MESSAGE_ID", headerStringValue);
                    return field;

                case MessageField.SUBJECT:
                    token = (Token) tokenizer.nextElement();
                    headerStringValue = token.getStringValue();
                    field = new Field("SUBJECT", headerStringValue);
                    return field;

                case MessageField.TO:
                    token = (Token) tokenizer.nextElement();
                    headerStringValue = token.getStringValue();
                    field = new Field("TO", headerStringValue);
                    return field;

                case MessageField.X_MMS_TRANSACTION_ID:
                    token = (Token) tokenizer.nextElement();
                    headerStringValue = token.getStringValue();
                    field = new Field("X_MMS_TRANSACTION_ID", headerStringValue);
                    return field;

                case MessageField.X_MMS_REPLY_CHARGING_ID:
                    token = (Token) tokenizer.nextElement();
                    headerStringValue = token.getStringValue();
                    field = new Field("X_MMS_REPLY_CHARGING_ID", headerStringValue);
                    return field;

                case MessageField.X_MMS_RETRIEVE_TEXT:
                    token = (Token) tokenizer.nextElement();
                    headerStringValue = token.getStringValue();
                    field = new Field("X_MMS_RETRIEVE_TEXT", headerStringValue);
                    return field;

                case MessageField.X_MMS_RESPONSE_TEXT:
                    token = (Token) tokenizer.nextElement();
                    headerStringValue = token.getStringValue();
                    field = new Field("X_MMS_RESPONSE_TEXT", headerStringValue);
                    return field;

                case MessageField.CONTENT_TYPE:
                    token = (Token) tokenizer.nextElement();
                    if(token.isExtensionMedia()) {
                        headerStringValue = token.getStringValue();       
                    } else if(token.isShortInteger()) {
                        headerStringValue = ContentType.lookupContentType(token.getIntValue());
                    }   
                    field = new Field("CONTENT_TYPE", headerStringValue);
                    return field;                

                case MessageField.DATE:
                    tokenizer.nextElement();//length: toss it
                    token = (Token) tokenizer.nextElement();
               
                    headerLongValue = token.getLongValue();
                    field = new Field("DATE", String.valueOf(headerLongValue));
                    return field;       

                case MessageField.X_MMS_REPLY_CHARGING_SIZE:
                    break;

                case MessageField.X_MMS_MESSAGE_SIZE:  
                    tokenizer.nextElement();//length: toss it
                    token = (Token) tokenizer.nextElement();
               
                    headerLongValue = token.getLongValue();
                    field = new Field("DATE", String.valueOf(headerLongValue));
                    return field;                   

                case MessageField.X_MMS_READ_REPORT:
                    System.out.println("X_MMS_READ_REPORT");
                    token = (Token) tokenizer.nextElement();
                    headerIntValue = token.getIntValue();
                    if(headerIntValue == 0) headerStringValue = "Yes";
                    else headerStringValue = "No";
                    field = new Field("X_MMS_READ_REPORT", headerStringValue);
                    return field;


                case MessageField.X_MMS_REPORT_ALLOWED:
                    break;

                case MessageField.X_MMS_DELIVERY_REPORT:
                    token = (Token) tokenizer.nextElement();
                    headerIntValue = token.getIntValue();
                    if(headerIntValue == 0) headerStringValue = "Yes";
                    else headerStringValue = "No";
                    field = new Field("X_MMS_DELIVERY_REPORT", headerStringValue);
                    return field;
                    
/*
                case MessageField.X_MMS_DELIVERY_TIME:
                    return new DeliveryTime();
*/
                case MessageField.X_MMS_EXPIRY:
                    
/*
                case MessageField.X_MMS_REPLY_CHARGING_DEADLINE:
                    return new ReplyChargingDeadline();
*/

                case MessageField.FROM:
                    tokenizer.nextElement();//toss value length
                    token = (Token) tokenizer.nextElement();
                    headerIntValue = token.getIntValue();
                    headerLongValue = token.getLongValue();
                    headerStringValue = token.getStringValue();
    
                    if(headerIntValue == 0) {
                        token = (Token) tokenizer.nextElement();
                        headerStringValue = token.getStringValue();                       
                    } else
                        headerStringValue = "INSERT_ADDRESS_TOKEN";
                    field = new Field("FROM", headerStringValue);
                    return field;                    

                case MessageField.X_MMS_MESSAGE_CLASS:
                    token = (Token) tokenizer.nextElement();
                    if(token.isShortInteger()) headerStringValue = MessageClass.lookupMessageClass(token.getIntValue());
                    else headerStringValue = token.getStringValue();   
                    field = new Field("X_MMS_MESSAGE_CLASS", headerStringValue);
                    return field;                

                case MessageField.X_MMS_MMS_VERSION:
                    token = (Token) tokenizer.nextElement();
                    headerIntValue = token.getIntValue();//String.valueOf(headerIntValue)
                    field = new Field("X_MMS_MMS_VERSION", getVersion(headerIntValue) );
                    return field;

                case MessageField.X_MMS_PRIORITY:
                    token = (Token) tokenizer.nextElement();
                    headerIntValue = token.getIntValue();
                    headerStringValue = Priority.lookup(headerIntValue);
                    field = new Field("X_MMS_PRIORITY", headerStringValue);
                    return field;
   /*                 
                case MessageField.X_MMS_RESPONSE_STATUS:
                    return new ResponseStatus();
                case MessageField.X_MMS_SENDER_VISIBILITY:
                    return new SenderVisibility();
                case MessageField.X_MMS_STATUS:
                    return new Status();
                case MessageField.X_MMS_RETRIEVE_STATUS:
                    return new RetrieveStatus();
                case MessageField.X_MMS_READ_STATUS:
                    return new ReadStatus();
                case MessageField.X_MMS_REPLY_CHARGING:
                    return new ReplyCharging();
*/
                case MessageField.X_MMS_PREVIOUSLY_SENT_BY:
                    tokenizer.nextElement(); //toss value length    
                    token = (Token) tokenizer.nextElement();
                    if(token.isShortInteger()) {
                        headerStringValue = String.valueOf(token.getIntValue());
                    } else {
                        tokenizer.nextElement(); //toss value length
                        token = (Token) tokenizer.nextElement();  
                        headerStringValue = String.valueOf(token.getLongValue());
                    }
                    token = (Token) tokenizer.nextElement();
                    headerStringValue = headerStringValue + ";" + token.getStringValue();
                    field = new Field("X_MMS_PREVIOUSLY_SENT_BY", headerStringValue);
                    return field;

                case MessageField.X_MMS_PREVIOUSLY_SENT_DATE:
                    System.out.println("X_MMS_PREVIOUSLY_SENT_DATE");
                    break;

                default:

            }
return null;
        }
}

⌨️ 快捷键说明

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