1192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta/*
2192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * Copyright (C) 2014 The Android Open Source Project
3192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta *
4192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * Licensed under the Apache License, Version 2.0 (the "License");
5192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * you may not use this file except in compliance with the License.
6192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * You may obtain a copy of the License at
7192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta *
8192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta *      http://www.apache.org/licenses/LICENSE-2.0
9192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta *
10192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * Unless required by applicable law or agreed to in writing, software
11192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * distributed under the License is distributed on an "AS IS" BASIS,
12192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * See the License for the specific language governing permissions and
14192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * limitations under the License.
15192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta */
16192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
17192d793d2586b620027edd5b45ff4c72a86cc7beHemant Guptapackage android.bluetooth.client.map;
18192d793d2586b620027edd5b45ff4c72a86cc7beHemant Guptaimport android.bluetooth.client.map.utils.ObexTime;
19192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
20192d793d2586b620027edd5b45ff4c72a86cc7beHemant Guptaimport org.json.JSONException;
21192d793d2586b620027edd5b45ff4c72a86cc7beHemant Guptaimport org.json.JSONObject;
22192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
23192d793d2586b620027edd5b45ff4c72a86cc7beHemant Guptaimport java.math.BigInteger;
24192d793d2586b620027edd5b45ff4c72a86cc7beHemant Guptaimport java.util.Date;
25192d793d2586b620027edd5b45ff4c72a86cc7beHemant Guptaimport java.util.HashMap;
26192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
27192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta/**
28192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * Object representation of message received in messages listing
29192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * <p>
30192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * This object will be received in
31192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta * {@link BluetoothMasClient#EVENT_GET_MESSAGES_LISTING} callback message.
32192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta */
33192d793d2586b620027edd5b45ff4c72a86cc7beHemant Guptapublic class BluetoothMapMessage {
34192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
35192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final String mHandle;
36192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
37192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final String mSubject;
38192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
39192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final Date mDateTime;
40192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
41192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final String mSenderName;
42192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
43192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final String mSenderAddressing;
44192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
45192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final String mReplytoAddressing;
46192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
47192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final String mRecipientName;
48192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
49192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final String mRecipientAddressing;
50192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
51192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final Type mType;
52192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
53192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final int mSize;
54192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
55192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final boolean mText;
56192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
57192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final ReceptionStatus mReceptionStatus;
58192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
59192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final int mAttachmentSize;
60192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
61192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final boolean mPriority;
62192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
63192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final boolean mRead;
64192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
65192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final boolean mSent;
66192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
67192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private final boolean mProtected;
68192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
69192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public enum Type {
70192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        UNKNOWN, EMAIL, SMS_GSM, SMS_CDMA, MMS
71192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    };
72192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
73192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public enum ReceptionStatus {
74192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        UNKNOWN, COMPLETE, FRACTIONED, NOTIFICATION
75192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
76192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
77192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    BluetoothMapMessage(HashMap<String, String> attrs) throws IllegalArgumentException {
78192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        int size;
79192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
80192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        try {
81192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            /* just to validate */
82192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            new BigInteger(attrs.get("handle"), 16);
83192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
84192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            mHandle = attrs.get("handle");
85192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        } catch (NumberFormatException e) {
86192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            /*
87192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta             * handle MUST have proper value, if it does not then throw
88192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta             * something here
89192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta             */
90192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            throw new IllegalArgumentException(e);
91192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        }
92192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
93192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mSubject = attrs.get("subject");
94192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
95192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mDateTime = (new ObexTime(attrs.get("datetime"))).getTime();
96192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
97192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mSenderName = attrs.get("sender_name");
98192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
99192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mSenderAddressing = attrs.get("sender_addressing");
100192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
101192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mReplytoAddressing = attrs.get("replyto_addressing");
102192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
103192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mRecipientName = attrs.get("recipient_name");
104192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
105192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mRecipientAddressing = attrs.get("recipient_addressing");
106192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
107192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mType = strToType(attrs.get("type"));
108192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
109192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        try {
110192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            size = Integer.parseInt(attrs.get("size"));
111192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        } catch (NumberFormatException e) {
112192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            size = 0;
113192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        }
114192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
115192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mSize = size;
116192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
117192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mText = yesnoToBoolean(attrs.get("text"));
118192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
119192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mReceptionStatus = strToReceptionStatus(attrs.get("reception_status"));
120192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
121192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        try {
122192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            size = Integer.parseInt(attrs.get("attachment_size"));
123192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        } catch (NumberFormatException e) {
124192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            size = 0;
125192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        }
126192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
127192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mAttachmentSize = size;
128192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
129192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mPriority = yesnoToBoolean(attrs.get("priority"));
130192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
131192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mRead = yesnoToBoolean(attrs.get("read"));
132192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
133192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mSent = yesnoToBoolean(attrs.get("sent"));
134192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
135192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        mProtected = yesnoToBoolean(attrs.get("protected"));
136192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
137192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
138192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private boolean yesnoToBoolean(String yesno) {
139192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return "yes".equals(yesno);
140192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
141192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
142192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private Type strToType(String s) {
143192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        if ("EMAIL".equals(s)) {
144192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            return Type.EMAIL;
145192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        } else if ("SMS_GSM".equals(s)) {
146192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            return Type.SMS_GSM;
147192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        } else if ("SMS_CDMA".equals(s)) {
148192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            return Type.SMS_CDMA;
149192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        } else if ("MMS".equals(s)) {
150192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            return Type.MMS;
151192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        }
152192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
153192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return Type.UNKNOWN;
154192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
155192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
156192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    private ReceptionStatus strToReceptionStatus(String s) {
157192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        if ("complete".equals(s)) {
158192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            return ReceptionStatus.COMPLETE;
159192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        } else if ("fractioned".equals(s)) {
160192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            return ReceptionStatus.FRACTIONED;
161192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        } else if ("notification".equals(s)) {
162192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            return ReceptionStatus.NOTIFICATION;
163192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        }
164192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
165192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return ReceptionStatus.UNKNOWN;
166192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
167192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
168192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    @Override
169192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public String toString() {
170192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        JSONObject json = new JSONObject();
171192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
172192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        try {
173192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("handle", mHandle);
174192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("subject", mSubject);
175192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("datetime", mDateTime);
176192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("sender_name", mSenderName);
177192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("sender_addressing", mSenderAddressing);
178192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("replyto_addressing", mReplytoAddressing);
179192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("recipient_name", mRecipientName);
180192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("recipient_addressing", mRecipientAddressing);
181192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("type", mType);
182192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("size", mSize);
183192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("text", mText);
184192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("reception_status", mReceptionStatus);
185192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("attachment_size", mAttachmentSize);
186192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("priority", mPriority);
187192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("read", mRead);
188192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("sent", mSent);
189192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            json.put("protected", mProtected);
190192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        } catch (JSONException e) {
191192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta            // do nothing
192192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        }
193192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
194192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return json.toString();
195192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
196192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
197192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
198192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>handle</code> parameter in MAP
199192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         specification
200192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
201192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public String getHandle() {
202192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mHandle;
203192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
204192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
205192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
206192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>subject</code> parameter in MAP
207192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         specification
208192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
209192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public String getSubject() {
210192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mSubject;
211192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
212192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
213192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
214192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return <code>Date</code> object corresponding to <code>datetime</code>
215192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         parameter in MAP specification
216192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
217192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public Date getDateTime() {
218192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mDateTime;
219192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
220192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
221192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
222192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>sender_name</code> parameter in MAP
223192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         specification
224192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
225192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public String getSenderName() {
226192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mSenderName;
227192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
228192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
229192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
230192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>sender_addressing</code> parameter
231192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         in MAP specification
232192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
233192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public String getSenderAddressing() {
234192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mSenderAddressing;
235192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
236192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
237192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
238192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>replyto_addressing</code> parameter
239192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         in MAP specification
240192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
241192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public String getReplytoAddressing() {
242192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mReplytoAddressing;
243192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
244192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
245192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
246192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>recipient_name</code> parameter in
247192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         MAP specification
248192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
249192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public String getRecipientName() {
250192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mRecipientName;
251192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
252192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
253192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
254192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>recipient_addressing</code>
255192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         parameter in MAP specification
256192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
257192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public String getRecipientAddressing() {
258192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mRecipientAddressing;
259192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
260192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
261192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
262192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return {@link Type} object corresponding to <code>type</code> parameter
263192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         in MAP specification
264192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
265192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public Type getType() {
266192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mType;
267192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
268192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
269192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
270192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>size</code> parameter in MAP
271192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         specification
272192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
273192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public int getSize() {
274192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mSize;
275192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
276192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
277192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
278192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return {@link .ReceptionStatus} object corresponding to
279192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         <code>reception_status</code> parameter in MAP specification
280192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
281192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public ReceptionStatus getReceptionStatus() {
282192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mReceptionStatus;
283192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
284192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
285192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
286192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>attachment_size</code> parameter in
287192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         MAP specification
288192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
289192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public int getAttachmentSize() {
290192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mAttachmentSize;
291192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
292192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
293192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
294192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>text</code> parameter in MAP
295192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         specification
296192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
297192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public boolean isText() {
298192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mText;
299192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
300192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
301192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
302192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>priority</code> parameter in MAP
303192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         specification
304192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
305192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public boolean isPriority() {
306192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mPriority;
307192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
308192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
309192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
310192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>read</code> parameter in MAP
311192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         specification
312192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
313192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public boolean isRead() {
314192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mRead;
315192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
316192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
317192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
318192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>sent</code> parameter in MAP
319192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         specification
320192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
321192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public boolean isSent() {
322192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mSent;
323192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
324192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta
325192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    /**
326192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     * @return value corresponding to <code>protected</code> parameter in MAP
327192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     *         specification
328192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta     */
329192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    public boolean isProtected() {
330192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta        return mProtected;
331192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta    }
332192d793d2586b620027edd5b45ff4c72a86cc7beHemant Gupta}
333