/* * 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; } }