Jitsi: the OpenSource Java VoIP and Instant Messaging client.

net.java.sip.communicator.impl.protocol.jabber
Class OperationSetBasicInstantMessagingJabberImpl

java.lang.Object
  extended by net.java.sip.communicator.service.protocol.AbstractOperationSetBasicInstantMessaging
      extended by net.java.sip.communicator.impl.protocol.jabber.OperationSetBasicInstantMessagingJabberImpl
All Implemented Interfaces:
OperationSet, OperationSetBasicInstantMessaging

public class OperationSetBasicInstantMessagingJabberImpl
extends AbstractOperationSetBasicInstantMessaging

A straightforward implementation of the basic instant messaging operation set.

Author:
Damian Minkov, Matthieu Helleringer, Alain Knaebel, Emil Ivov

Field Summary
 
Fields inherited from interface net.java.sip.communicator.service.protocol.OperationSetBasicInstantMessaging
DEFAULT_MIME_ENCODING, DEFAULT_MIME_TYPE, HTML_MIME_TYPE
 
Constructor Summary
OperationSetBasicInstantMessagingJabberImpl(ProtocolProviderServiceJabberImpl provider)
          Creates an instance of this operation set.
 
Method Summary
 Message createMessage(String content, String contentType)
          Create a Message instance for sending arbitrary MIME-encoding content.
 Message createMessage(String content, String contentType, String encoding, String subject)
          Create a Message instance for sending arbitrary MIME-encoding content.
 boolean isContentTypeSupported(String contentType)
          Determines wheter the protocol supports the supplied content type
 boolean isContentTypeSupported(String contentType, Contact contact)
          Determines whether the protocol supports the supplied content type for the given contact.
 boolean isOfflineMessagingSupported()
          Determines wheter the protocol provider (or the protocol itself) support sending and receiving offline messages.
 org.jivesoftware.smack.Chat obtainChatInstance(String jid)
          Returns a reference to an open chat with the specified jid if one exists or creates a new one otherwise.
 void sendInstantMessage(Contact to, Message message)
          Sends the message to the destination indicated by the to contact.
 
Methods inherited from class net.java.sip.communicator.service.protocol.AbstractOperationSetBasicInstantMessaging
addMessageListener, createMessage, createMessage, fireMessageDelivered, fireMessageDeliveryFailed, fireMessageEvent, fireMessageReceived, messageDeliveryPendingTransform, removeMessageListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OperationSetBasicInstantMessagingJabberImpl

OperationSetBasicInstantMessagingJabberImpl(ProtocolProviderServiceJabberImpl provider)
Creates an instance of this operation set.

Parameters:
provider - a reference to the ProtocolProviderServiceImpl that created us and that we'll use for retrieving the underlying aim connection.
Method Detail

createMessage

public Message createMessage(String content,
                             String contentType)
Create a Message instance for sending arbitrary MIME-encoding content.

Parameters:
content - content value
contentType - the MIME-type for content
Returns:
the newly created message.

createMessage

public Message createMessage(String content,
                             String contentType,
                             String encoding,
                             String subject)
Create a Message instance for sending arbitrary MIME-encoding content.

Specified by:
createMessage in interface OperationSetBasicInstantMessaging
Specified by:
createMessage in class AbstractOperationSetBasicInstantMessaging
Parameters:
content - content value
contentType - the MIME-type for content
subject - the Subject of the message that we'd like to create.
encoding - the enconding of the message that we will be sending.
Returns:
the newly created message.

isOfflineMessagingSupported

public boolean isOfflineMessagingSupported()
Determines wheter the protocol provider (or the protocol itself) support sending and receiving offline messages. Most often this method would return true for protocols that support offline messages and false for those that don't. It is however possible for a protocol to support these messages and yet have a particular account that does not (i.e. feature not enabled on the protocol server). In cases like this it is possible for this method to return true even when offline messaging is not supported, and then have the sendMessage method throw an OperationFailedException with code - OFFLINE_MESSAGES_NOT_SUPPORTED.

Returns:
true if the protocol supports offline messages and false otherwise.

isContentTypeSupported

public boolean isContentTypeSupported(String contentType)
Determines wheter the protocol supports the supplied content type

Parameters:
contentType - the type we want to check
Returns:
true if the protocol supports it and false otherwise.

isContentTypeSupported

public boolean isContentTypeSupported(String contentType,
                                      Contact contact)
Determines whether the protocol supports the supplied content type for the given contact.

Specified by:
isContentTypeSupported in interface OperationSetBasicInstantMessaging
Overrides:
isContentTypeSupported in class AbstractOperationSetBasicInstantMessaging
Parameters:
contentType - the type we want to check
contact - contact which is checked for supported contentType
Returns:
true if the contact supports it and false otherwise.

obtainChatInstance

public org.jivesoftware.smack.Chat obtainChatInstance(String jid)
Returns a reference to an open chat with the specified jid if one exists or creates a new one otherwise.

Parameters:
jid - the Jabber ID that we'd like to obtain a chat instance for.
Returns:
a reference to an open chat with the specified jid if one exists or creates a new one otherwise.

sendInstantMessage

public void sendInstantMessage(Contact to,
                               Message message)
                        throws IllegalStateException,
                               IllegalArgumentException
Sends the message to the destination indicated by the to contact.

Parameters:
to - the Contact to send message to
message - the Message to send.
Throws:
IllegalStateException - if the underlying stack is not registered and initialized.
IllegalArgumentException - if to is not an instance of ContactImpl.

Jitsi: the OpenSource Java VoIP and Instant Messaging client.

Jitsi, the OpenSource Java VoIP and Instant Messaging client.
Distributable under LGPL license.