rath.msnm.msg
Class MimeMessage

java.lang.Object
  |
  +--rath.msnm.msg.MimeMessage
Direct Known Subclasses:
FileTransferMessage

public class MimeMessage
extends Object

MIME 메시지들을 관리하는 클래스이다.

Version:
$Id: MimeMessage.java,v 1.1.1.1 2002/03/03 21:32:36 xrath Exp $, since 2001/11/07
Author:
Jang-Ho Hwang, rath@xrath.com

Field Summary
static int KIND_FILE_TRANSFER
           
static int KIND_MESSAGE
           
static int KIND_PROFILE
           
static int KIND_TYPING_USER
           
static int KIND_UNKNOWN
           
static String STR_FILE_TRANSFER
           
static String STR_MESSAGE
           
static String STR_PROFILE
           
static String STR_TYPING_USER
           
 
Constructor Summary
MimeMessage()
           
MimeMessage(String message)
          주어진 메시지를 가지는 MIME 메시지 인스턴스를 생성한다.
 
Method Summary
protected  boolean addProperty(String line)
          주어진 line을 파싱하여 property를 하나 추가한다.
protected  StringBuffer createMimeHeader(String header)
          특정 Content-Type을 가지는 Mime header로 mime message를 생성해준다.
protected  StringBuffer fillMimeProperties(StringBuffer buf)
          현재 설정된 모든 Properties를 buf에 추가하고, 마지막에 \r\n를 한번 더 붙여주게 된다.
 byte[] getBytes()
          설정된 종류(Kind)에 따라 적절하게 byte변환해준다.
 String getEffectCode()
           
 byte[] getInstantMessageBytes()
          Mime format을 가지는 UTF-8 base에 URL encoded된 byte array로 변형해 준다.
 int getKind()
          이 MimeMessage의 type을 반환해준다.
 String getMessage()
          KIND_MESSAGE 종류일 때 도착한 인스턴트 메시지 내용을 얻어오는데 사용된다.
 Properties getProperties()
          현재 설정되어있는 프로퍼티들을 담고 있는 Properties 객체를 가져온다.
 String getProperty(String key)
          특정 Mime header 값을 가져온다.
 byte[] getTypingMessageBytes()
           
 boolean hasProperty(String key)
          주어진 key가 현재 mime properties에 존재하는지에 대한 여부를 얻어온다.
 void parse(String raw)
          UTF-8로 구성된 raw 형태의 MIME 메시지를 받아 MIME 형식에 맞춰 파싱/분석하여 데이터를 채운다.
 void setEffectCode(String ef)
           
 void setKind(int kind)
           
 void setMessage(String msg)
          전송하고자 하는 메시지를 설정한다.
 void setProperty(String key, String value)
          프로퍼티를 설정한다.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

KIND_PROFILE

public static final int KIND_PROFILE
See Also:
Constant Field Values

KIND_TYPING_USER

public static final int KIND_TYPING_USER
See Also:
Constant Field Values

KIND_MESSAGE

public static final int KIND_MESSAGE
See Also:
Constant Field Values

KIND_FILE_TRANSFER

public static final int KIND_FILE_TRANSFER
See Also:
Constant Field Values

KIND_UNKNOWN

public static final int KIND_UNKNOWN
See Also:
Constant Field Values

STR_PROFILE

public static final String STR_PROFILE
See Also:
Constant Field Values

STR_TYPING_USER

public static final String STR_TYPING_USER
See Also:
Constant Field Values

STR_MESSAGE

public static final String STR_MESSAGE
See Also:
Constant Field Values

STR_FILE_TRANSFER

public static final String STR_FILE_TRANSFER
See Also:
Constant Field Values
Constructor Detail

MimeMessage

public MimeMessage()

MimeMessage

public MimeMessage(String message)
주어진 메시지를 가지는 MIME 메시지 인스턴스를 생성한다.

Method Detail

getKind

public int getKind()
이 MimeMessage의 type을 반환해준다. 현재는 로그인시 받는 profile 정보(KIND_PROFILE), Typing 중에 전송되는 typing 정보(KIND_TYPING_USER), 인스턴트 메시지가 전송될때 사용되는 정보(KIND_MESSAGE) 만으로 구성되어있다. 만약 알 수 이 외의 메시지가 올 경우는 KIND_UNKNOWN이 반환될 것이다.


setKind

public void setKind(int kind)

setMessage

public void setMessage(String msg)
전송하고자 하는 메시지를 설정한다. 다소 어색하지만, 이 메소드는 KIND_MESSAGE를 사용할 경우에만 사용된다.


getMessage

public String getMessage()
KIND_MESSAGE 종류일 때 도착한 인스턴트 메시지 내용을 얻어오는데 사용된다. 만약 KIND_UNKNOWN이였다면, raw 형태의 전체 문자열이 반환될 것이다.


addProperty

protected boolean addProperty(String line)
주어진 line을 파싱하여 property를 하나 추가한다. 만약 파싱할 수 없다면 false를 리턴할 것이고, 정상적인 형식을 가지고 있다면, property에 추가가 된 후 true를 반환할 것이다.


setProperty

public void setProperty(String key,
                        String value)
프로퍼티를 설정한다.

Parameters:
key - 프로퍼티 키.
value - 프로퍼티 값.

getProperties

public Properties getProperties()
현재 설정되어있는 프로퍼티들을 담고 있는 Properties 객체를 가져온다.


getProperty

public String getProperty(String key)
특정 Mime header 값을 가져온다.


hasProperty

public boolean hasProperty(String key)
주어진 key가 현재 mime properties에 존재하는지에 대한 여부를 얻어온다.


parse

public void parse(String raw)
           throws Exception
UTF-8로 구성된 raw 형태의 MIME 메시지를 받아 MIME 형식에 맞춰 파싱/분석하여 데이터를 채운다.

Parameters:
raw - String형태의 MIME 전체 메시지.
Exception

getEffectCode

public String getEffectCode()

setEffectCode

public void setEffectCode(String ef)

getInstantMessageBytes

public byte[] getInstantMessageBytes()
                              throws UnsupportedEncodingException
Mime format을 가지는 UTF-8 base에 URL encoded된 byte array로 변형해 준다.

UnsupportedEncodingException

getTypingMessageBytes

public byte[] getTypingMessageBytes()
                             throws UnsupportedEncodingException
UnsupportedEncodingException

createMimeHeader

protected StringBuffer createMimeHeader(String header)
특정 Content-Type을 가지는 Mime header로 mime message를 생성해준다.


fillMimeProperties

protected StringBuffer fillMimeProperties(StringBuffer buf)
현재 설정된 모든 Properties를 buf에 추가하고, 마지막에 \r\n를 한번 더 붙여주게 된다.


getBytes

public byte[] getBytes()
                throws UnsupportedEncodingException
설정된 종류(Kind)에 따라 적절하게 byte변환해준다.

UnsupportedEncodingException