aboutsummaryrefslogtreecommitdiff
path: root/src/com/wilko/jaim/responses/IMTocResponse.java
blob: 93e57af6d4187fc2120e57f8fa930f647b5f801f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/*
 *   (C) 2002 Paul Wilkinson  wilko@users.sourceforge.net
 *
 *   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
 *
 */

/*
 * TocIMResponse.java
 *
 * Created on 4 May 2002, 14:38
 */

package com.wilko.jaim.responses;

import com.wilko.jaim.JaimEventListener;
import com.wilko.jaim.Utils;

/**
 * This response is delivered to a {@link JaimEventListener } when an instant message is received
 *
 * @author paulw
 * @version $Revision: 1.6 $
 */
public class IMTocResponse extends TocResponse implements TocResponseHandler {

    public static final String RESPONSE_TYPE = "IM_IN";
    String from;
    boolean autoResponse;
    String msg;

    /**
     * Creates new TocIMResponse
     */
    public IMTocResponse() {
        from = "";
        msg = "";
        autoResponse = false;
    }

    /**
     * Obtain the name of the buddy who sent this instant message
     *
     * @return The senders name
     */
    public String getFrom() {
        return (from);
    }

    /**
     * Obtain the message
     *
     * @return The message
     * @see Utils#stripHTML
     */
    public String getMsg() {
        return (msg);
    }

    /**
     * Is this response an automatically generated response?
     *
     * @return true if this is an automatically generated response
     */
    public boolean getAutoResponse() {
        return (autoResponse);
    }

    /**
     * Parse an incoming IM response string
     *
     * @param str The string to be parsed
     */
    public TocResponse parseString(java.lang.String str) {
        IMTocResponse tr = new IMTocResponse();
        tr.doParse(str);
        return (tr);
    }

    private void doParse(String str) {
        cmd = str;
        int colonPos = str.indexOf(':');
        if (colonPos != -1) {
            str = str.substring(colonPos + 1);
            colonPos = str.indexOf(':');
            if (colonPos != -1) {
                from = str.substring(0, colonPos);
                str = str.substring(colonPos + 1);
                colonPos = str.indexOf(':');
                if (str.charAt(0) == 'T') {
                    autoResponse = true;
                }
                if (colonPos != -1) {
                    msg = str.substring(colonPos + 1);
                }
            }
        }

    }

    /**
     * Obtain the response type for response dispatching purposes
     *
     * @return The response type
     */
    public String getResponseType() {
        return (RESPONSE_TYPE);
    }

    /**
     * Returns true if this response handler can handle the specified response.
     *
     * @param Response - the response string from TOC.  This is the part of the response before the first ':'
     * @return true if the response can be handled
     */
    public boolean canHandle(String Response) {
        return (Response.equalsIgnoreCase(RESPONSE_TYPE));
    }

}