/*******************************************************************************
Jimm - Mobile Messaging - J2ME ICQ clone
Copyright (C) 2003-05 Jimm Project
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
********************************************************************************
File: src/jimm/comm/PlainMessage.java
Version: ###VERSION### Date: ###DATE###
Author(s): Manuel Linsmayer, Andreas Rossbacher
*******************************************************************************/
package jimm.chat.message;
import jimm.comm.*;
import jimm.util.JLocale;
import protocol.Contact;
import protocol.Protocol;
public final class PlainMessage extends Message {
private String text;
private int messageId;
private boolean offline;
public static final String CMD_WAKEUP = "/wakeup";
public static final String CMD_ME = "/me ";
// unicode message (max len / sizeof char)
public static final int MESSAGE_LIMIT = 1024;
// Constructs an incoming message
public PlainMessage(String contactUin, Protocol protocol, long date, String text, boolean offline) {
super(date, protocol, contactUin, true);
if ('\n' == text.charAt(0)) {
text = text.substring(1);
}
this.text = text;
this.offline = offline;
}
// Constructs an outgoing message
public PlainMessage(Protocol protocol, Contact rcvr, long date, String text) {
super(date, protocol, rcvr, false);
this.text = StringUtils.notNull(text);
this.offline = false;
}
public boolean isOffline() {
return offline;
}
// Returns the message text
public String getText() {
return text;
}
public String getProcessedText() {
String messageText = text;
if (isWakeUp()) {
if (isIncoming()) {
messageText = PlainMessage.CMD_ME + JLocale.getString("wake_you_up");
} else {
messageText = PlainMessage.CMD_ME + JLocale.getString("wake_up");
}
}
return messageText;
}
public boolean isWakeUp() {
return text.startsWith(PlainMessage.CMD_WAKEUP)
&& getRcvr().isSingleUserContact();
}
public void setMessageId(int id) {
messageId = id;
}
public int getMessageId() {
return messageId;
}
}