kfmes.natelib
Class NateonMessenger

java.lang.Object
  extended by kfmes.natelib.NateonMessenger

public class NateonMessenger
extends java.lang.Object

네이트 메신저를 구현해놓은 클래스이다.

Version:
$Id: NateonMessenger.java,v 1.79 2007/11/19 17:43:27 kfmes Exp $
Author:
kfmes(KIM Ga-Hyeon, jateon@kfmes.com, http://jateon.kfmes.com )

Field Summary
 NateFileManager filemgr
           
protected  java.lang.String initStatus
           
 boolean is_encodedpasswd
           
static boolean isDebugMode
           
protected static boolean isOffLogin
           
static boolean isSMSmode
           
protected  java.util.ArrayList<NateListener> listeners
           
protected  java.util.ArrayList<PluginListener> plisteners
           
 java.util.ArrayList<SwitchBoardSession> sessionList
           
 java.lang.String ticket
           
static java.lang.String ver
          build date
 
Constructor Summary
NateonMessenger()
           
NateonMessenger(java.lang.String loginname, java.lang.String passwd)
           
 
Method Summary
 void addNateListener(NateListener l)
          서버로부터 발생되는 이벤트나 메시지들을 처리할 MsnListner 인터페이스를 설정한다.
 void addPluginListener(PluginListener l)
          서버로부터 발생되는 이벤트나 메시지들을 처리할 MsnListner 인터페이스를 설정한다.
 SwitchBoardSession findSwitchboardSessionAt(java.lang.String loginName)
          해당 loginName과 1:1로 연결된 세션을 찾아준다.
 void fireBuddyListInit(GroupList grouplist)
           
 void fireBuddyListModified()
           
 void fireBuddyModified(NateFriend friend)
           
 void fireChatMessageReceived(SwitchBoardSession ss, NateFriend friend, MimeMessage mime)
           
 void fireFilePosted(SwitchBoardSession session, FileRecver recv, NateFriend ref, java.util.ArrayList<NateFile> list)
           
 void fireFileRecved(FileRecver recver, NateFile natefile)
           
 void fireFileSend(SwitchBoardSession session, FileSender sender, NateFriend ref, java.util.ArrayList<NateFile> list)
           
 void fireFileSendAccepted(SwitchBoardSession ss, java.lang.String cookie)
           
 void fireFileSended(FileSender sender, NateFile natefile)
           
 void fireFileSendRejected(SwitchBoardSession ss, java.lang.String cookie, java.lang.String reason)
           
 void fireFileTransferAborted(java.lang.String cookie)
           
 void fireInstanceMessageReceived(InstanceMessage imsg)
           
 void fireKilled()
           
 void fireLoginComplete()
          로그인 완료
 void fireLoginError(java.lang.String header)
           
 void fireOwnerStatusUpdated()
           
 void firePluginData(java.lang.String data)
           
 void fireProgressTyping(SwitchBoardSession ss, NateFriend friend, int flag)
           
 void fireSwitchboardSessionEnded(SwitchBoardSession session)
           
 void fireSwitchboardSessionStarted(SwitchBoardSession session)
           
 void fireUserOffline(NateFriend friend)
           
 void fireUserOnline(NateFriend friend)
           
 void fireWhoAddme(NateFriend friend)
           
 GroupList getBuddyGroup()
           
 java.lang.String getInitialStatus()
           
 int getListenerCount()
          현재 등록된 NATEListener의 수를 반환해준다.
 NotificationProcessor getNS()
          NS를 얻어온다
 NateFriend getOwner()
           
 int getPluginListenerCount()
          현재 등록된 pluginListener의 수를 반환해준다.
 java.lang.String getTicket()
           
 boolean isLoggedIn()
          현재 로그인 된 상태인지 확인한다.
 void login()
          로그인을 시작한다.
 void login(java.lang.String username, java.lang.String password)
          주어진 이름과 비밀번호로 로그인을 시작한다.
protected  void loginImpl()
           
 void logout()
          열려있던 모든 Switchboard session과의 연결을 종료하고 NS에 Logout한 후 연결을 종료한다.
static void main(java.lang.String[] args)
           
 void moveGroup(NateFriend friend, java.lang.String newg)
          그룹을 이동한다
 void removeNateListener(NateListener l)
          해당 이벤트리스너를 해제한다.
 void removePluginListener(PluginListener l)
          해당 이벤트리스너를 해제한다.
 void reqAdsb(boolean isAccept, NateFriend friend)
           
 void send(java.lang.String string)
          NS로 메세지를 보낸다.
 void sendIMessage(InstanceMessage msg)
          NS로 메세지를 보낸다.
 void sendMessage(java.lang.String msgtype, java.lang.String msg)
          NS로 메세지를 보낸다.
static void setDebugMode(boolean flag)
           
 void setMyNickName(java.lang.String newName)
          현재 자기 자신의 상태코드값을 얻어온다.
 void setMyStatus(java.lang.String status)
          자신의 상태를 변경한다.
static void setOffLogin(boolean flag)
           
 void setOwner(NateFriend owner)
           
 void setTicket(java.lang.String ticket)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ver

public static final java.lang.String ver
build date

See Also:
Constant Field Values

is_encodedpasswd

public boolean is_encodedpasswd

initStatus

protected java.lang.String initStatus

isDebugMode

public static boolean isDebugMode

isOffLogin

protected static boolean isOffLogin

filemgr

public NateFileManager filemgr

isSMSmode

public static boolean isSMSmode

ticket

public java.lang.String ticket

sessionList

public java.util.ArrayList<SwitchBoardSession> sessionList

listeners

protected java.util.ArrayList<NateListener> listeners

plisteners

protected java.util.ArrayList<PluginListener> plisteners
Constructor Detail

NateonMessenger

public NateonMessenger()

NateonMessenger

public NateonMessenger(java.lang.String loginname,
                       java.lang.String passwd)
Method Detail

setDebugMode

public static void setDebugMode(boolean flag)

setOffLogin

public static void setOffLogin(boolean flag)

loginImpl

protected void loginImpl()

login

public void login(java.lang.String username,
                  java.lang.String password)
주어진 이름과 비밀번호로 로그인을 시작한다. 이럴 경우 생성자에서 받은 이름과 비밀번호는 무시된다.


login

public void login()
로그인을 시작한다.


logout

public void logout()
            throws java.io.IOException
열려있던 모든 Switchboard session과의 연결을 종료하고 NS에 Logout한 후 연결을 종료한다.

Throws:
java.io.IOException

getOwner

public NateFriend getOwner()

setOwner

public void setOwner(NateFriend owner)

setMyStatus

public void setMyStatus(java.lang.String status)
자신의 상태를 변경한다. 상태 문자열은 UserStatus 인터페이스에 정의되어있는 문자열만을 사용하여야만 한다. 로그인이 끝난 직후에는 Default로 온라인 상태가 되어있을 것이다.


setMyNickName

public void setMyNickName(java.lang.String newName)
현재 자기 자신의 상태코드값을 얻어온다. public String getMyStatus() { if( ns==null ) return UserStatus.Offline; return this.ns.getMyStatus(); }


setTicket

public void setTicket(java.lang.String ticket)

getTicket

public java.lang.String getTicket()

isLoggedIn

public boolean isLoggedIn()
현재 로그인 된 상태인지 확인한다.


addNateListener

public void addNateListener(NateListener l)
서버로부터 발생되는 이벤트나 메시지들을 처리할 MsnListner 인터페이스를 설정한다. 원래는 multi-listener를 지원해야하지만, 현재는 단일 Listener 구조를 사용한다. 그러므로 반드시 리스너를 설정해야한다.


getListenerCount

public int getListenerCount()
현재 등록된 NATEListener의 수를 반환해준다.


removeNateListener

public void removeNateListener(NateListener l)
해당 이벤트리스너를 해제한다.


addPluginListener

public void addPluginListener(PluginListener l)
서버로부터 발생되는 이벤트나 메시지들을 처리할 MsnListner 인터페이스를 설정한다. 원래는 multi-listener를 지원해야하지만, 현재는 단일 Listener 구조를 사용한다. 그러므로 반드시 리스너를 설정해야한다.


getPluginListenerCount

public int getPluginListenerCount()
현재 등록된 pluginListener의 수를 반환해준다.


removePluginListener

public void removePluginListener(PluginListener l)
해당 이벤트리스너를 해제한다.


fireLoginError

public void fireLoginError(java.lang.String header)

fireInstanceMessageReceived

public void fireInstanceMessageReceived(InstanceMessage imsg)

send

public void send(java.lang.String string)
          throws java.io.IOException
NS로 메세지를 보낸다.

Parameters:
string -
Throws:
java.io.IOException

sendMessage

public void sendMessage(java.lang.String msgtype,
                        java.lang.String msg)
                 throws java.io.IOException
NS로 메세지를 보낸다.

Throws:
java.io.IOException

sendIMessage

public void sendIMessage(InstanceMessage msg)
                  throws java.io.IOException
NS로 메세지를 보낸다.

Parameters:
msg -
Throws:
java.io.IOException

getNS

public NotificationProcessor getNS()
NS를 얻어온다

Returns:

main

public static void main(java.lang.String[] args)
Parameters:
args -

fireLoginComplete

public void fireLoginComplete()
로그인 완료


fireBuddyListInit

public void fireBuddyListInit(GroupList grouplist)

fireBuddyModified

public void fireBuddyModified(NateFriend friend)

fireKilled

public void fireKilled()

fireSwitchboardSessionStarted

public void fireSwitchboardSessionStarted(SwitchBoardSession session)

findSwitchboardSessionAt

public SwitchBoardSession findSwitchboardSessionAt(java.lang.String loginName)
해당 loginName과 1:1로 연결된 세션을 찾아준다. 만약 세션이 존재하지 않는다면, null을 반환한다.


fireSwitchboardSessionEnded

public void fireSwitchboardSessionEnded(SwitchBoardSession session)

fireChatMessageReceived

public void fireChatMessageReceived(SwitchBoardSession ss,
                                    NateFriend friend,
                                    MimeMessage mime)

fireBuddyListModified

public void fireBuddyListModified()

fireOwnerStatusUpdated

public void fireOwnerStatusUpdated()

fireUserOnline

public void fireUserOnline(NateFriend friend)

fireUserOffline

public void fireUserOffline(NateFriend friend)

fireProgressTyping

public void fireProgressTyping(SwitchBoardSession ss,
                               NateFriend friend,
                               int flag)

fireWhoAddme

public void fireWhoAddme(NateFriend friend)

getInitialStatus

public java.lang.String getInitialStatus()

fireFilePosted

public void fireFilePosted(SwitchBoardSession session,
                           FileRecver recv,
                           NateFriend ref,
                           java.util.ArrayList<NateFile> list)

fireFileSendAccepted

public void fireFileSendAccepted(SwitchBoardSession ss,
                                 java.lang.String cookie)

fireFileRecved

public void fireFileRecved(FileRecver recver,
                           NateFile natefile)

fireFileSend

public void fireFileSend(SwitchBoardSession session,
                         FileSender sender,
                         NateFriend ref,
                         java.util.ArrayList<NateFile> list)

fireFileSended

public void fireFileSended(FileSender sender,
                           NateFile natefile)

fireFileSendRejected

public void fireFileSendRejected(SwitchBoardSession ss,
                                 java.lang.String cookie,
                                 java.lang.String reason)

fireFileTransferAborted

public void fireFileTransferAborted(java.lang.String cookie)

firePluginData

public void firePluginData(java.lang.String data)

getBuddyGroup

public GroupList getBuddyGroup()

reqAdsb

public void reqAdsb(boolean isAccept,
                    NateFriend friend)

moveGroup

public void moveGroup(NateFriend friend,
                      java.lang.String newg)
그룹을 이동한다

Parameters:
friend -
newg -