diff options
2 files changed, 22 insertions, 0 deletions
diff --git a/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/im/IChat.java b/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/im/IChat.java index 0320ef9ea..3a1af7fa5 100644 --- a/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/im/IChat.java +++ b/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/im/IChat.java @@ -16,6 +16,7 @@ import java.util.Map; import org.eclipse.ecf.core.ContainerCreateException; import org.eclipse.ecf.core.identity.ID; import org.eclipse.ecf.core.util.ECFException; +import org.eclipse.ecf.presence.IPresenceContainerAdapter; import org.eclipse.ecf.presence.chatroom.IChatRoomContainer; /** @@ -71,4 +72,11 @@ public interface IChat { * if chat room container cannot be made. */ public IChatRoomContainer createChatRoom() throws ContainerCreateException; + + /** + * Get presence container adapter for this chat instance. + * @return IPresenceContainerAdapter for this chat instance. Will not + * return <code>null</code>. + */ + public IPresenceContainerAdapter getPresenceContainerAdapter(); } diff --git a/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/im/IChatManager.java b/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/im/IChatManager.java index d09f3b113..5b921eb5a 100644 --- a/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/im/IChatManager.java +++ b/framework/bundles/org.eclipse.ecf.presence/src/org/eclipse/ecf/presence/im/IChatManager.java @@ -11,6 +11,8 @@ package org.eclipse.ecf.presence.im; +import org.eclipse.ecf.core.identity.ID; +import org.eclipse.ecf.core.util.ECFException; import org.eclipse.ecf.presence.IIMMessageListener; import org.eclipse.ecf.presence.history.IHistoryManager; @@ -62,4 +64,16 @@ public interface IChatManager { */ public IHistoryManager getHistoryManager(); + /** + * Create chat instance for given target user. + * + * @param targetUser the targetUser to create chat for. Should not be <code>null</code>. + * If the user container is offline/disconnected. then an {@link ECFException} will + * be thrown. If this chat manager implementation does not support creating such chats, + * then <code>null</code> will be returned. + * + * @return IChat for given <code>targetUser</code>. Will return <code>null</code> if + * the underlying implementation does not support threads/specific chat instances. + */ + public IChat createChat(ID targetUser) throws ECFException; } |