/*
* Jitsi, the OpenSource Java VoIP and Instant Messaging client.
*
* Copyright @ 2015 Atlassian Pty Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.java.sip.communicator.impl.gui.main.chat;
import java.util.*;
/**
* The <tt>ChatMessage</tt> class encapsulates message information in order to
* provide a single object containing all data needed to display a chat message.
*
* @author Yana Stamcheva
*/
public class ChatMessage
{
/**
* The name of the contact sending the message.
*/
private final String contactName;
/**
* The display name of the contact sending the message.
*/
private String contactDisplayName;
/**
* The date and time of the message.
*/
private final Date date;
/**
* The type of the message.
*/
private final String messageType;
/**
* The title of the message. This property is optional and could be used
* to show a title for error messages.
*/
private String messageTitle;
/**
* The content of the message.
*/
private String message;
/**
* The content type of the message.
*/
private final String contentType;
/**
* A unique identifier for this message.
*/
private String messageUID;
/**
* The unique identifier of the message that this message should replace,
* or <tt>null</tt> if this is a new message.
*/
private String correctedMessageUID;
/**
* Creates a <tt>ChatMessage</tt> by specifying all parameters of the
* message.
* @param contactName the name of the contact
* @param date the date and time
* @param messageType the type (INCOMING or OUTGOING)
* @param message the content
* @param contentType the content type (e.g. "text", "text/html", etc.)
*/
public ChatMessage( String contactName,
Date date,
String messageType,
String message,
String contentType)
{
this(contactName, null, date, messageType,
null, message, contentType, null, null);
}
/**
* Creates a <tt>ChatMessage</tt> by specifying all parameters of the
* message.
* @param contactName the name of the contact
* @param contactDisplayName the contact display name
* @param date the date and time
* @param messageType the type (INCOMING or OUTGOING)
* @param message the content
* @param contentType the content type (e.g. "text", "text/html", etc.)
*/
public ChatMessage( String contactName,
Date date,
String messageType,
String messageTitle,
String message,
String contentType)
{
this(contactName, null, date, messageType,
messageTitle, message, contentType, null, null);
}
/**
* Creates a <tt>ChatMessage</tt> by specifying all parameters of the
* message.
* @param contactName the name of the contact
* @param contactDisplayName the contact display name
* @param date the date and time
* @param messageType the type (INCOMING or OUTGOING)
* @param message the content
* @param contentType the content type (e.g. "text", "text/html", etc.)
*/
public ChatMessage( String contactName,
String contactDisplayName,
Date date,
String messageType,
String message,
String contentType)
{
this(contactName, contactDisplayName, date, messageType,
null, message, contentType, null, null);
}
/**
* Creates a <tt>ChatMessage</tt> by specifying all parameters of the
* message.
* @param contactName the name of the contact
* @param contactDisplayName the contact display name
* @param date the date and time
* @param messageType the type (INCOMING or OUTGOING)
* @param message the content
* @param contentType the content type (e.g. "text", "text/html", etc.)
* @param messageUID The ID of the message.
* @param correctedMessageUID The ID of the message being replaced.
*/
public ChatMessage( String contactName,
String contactDisplayName,
Date date,
String messageType,
String messageTitle,
String message,
String contentType,
String messageUID,
String correctedMessageUID)
{
this.contactName = contactName;
this.contactDisplayName = contactDisplayName;
this.date = date;
this.messageType = messageType;
this.messageTitle = messageTitle;
this.message = message;
this.contentType = contentType;
this.messageUID = messageUID;
this.correctedMessageUID = correctedMessageUID;
}
/**
* Returns the name of the contact sending the message.
*
* @return the name of the contact sending the message.
*/
public String getContactName()
{
return contactName;
}
/**
* Returns the display name of the contact sending the message.
*
* @return the display name of the contact sending the message
*/
public String getContactDisplayName()
{
return contactDisplayName;
}
/**
* Returns the date and time of the message.
*
* @return the date and time of the message.
*/
public Date getDate()
{
return date;
}
/**
* Returns the type of the message.
*
* @return the type of the message.
*/
public String getMessageType()
{
return messageType;
}
/**
* Returns the title of the message.
*
* @return the title of the message.
*/
public String getMessageTitle()
{
return messageTitle;
}
/**
* Returns the content of the message.
*
* @return the content of the message.
*/
public String getMessage()
{
return message;
}
/**
* Sets the content of the message.
*
* @param message the new content
*/
public void setMessage(String message)
{
this.message = message;
}
/**
* Returns the content type (e.g. "text", "text/html", etc.).
*
* @return the content type
*/
public String getContentType()
{
return contentType;
}
/**
* Returns the UID of this message.
*
* @return the UID of this message.
*/
public String getMessageUID()
{
return messageUID;
}
/**
* Returns the UID of the message that this message replaces, or
* <tt>null</tt> if this is a new message.
*
* @return the UID of the message that this message replaces, or
* <tt>null</tt> if this is a new message.
*/
public String getCorrectedMessageUID()
{
return correctedMessageUID;
}
}