001: /*
002: *
003: *
004: * Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved.
005: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
006: *
007: * This program is free software; you can redistribute it and/or
008: * modify it under the terms of the GNU General Public License version
009: * 2 only, as published by the Free Software Foundation.
010: *
011: * This program is distributed in the hope that it will be useful, but
012: * WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * General Public License version 2 for more details (a copy is
015: * included at /legal/license.txt).
016: *
017: * You should have received a copy of the GNU General Public License
018: * version 2 along with this work; if not, write to the Free Software
019: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
020: * 02110-1301 USA
021: *
022: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
023: * Clara, CA 95054 or visit www.sun.com if you need additional
024: * information or have any questions.
025: */
026:
027: package com.sun.tck.wma.sms;
028:
029: import java.io.IOException;
030:
031: /**
032: * An SMS data packet which is the interface between an application and the data
033: * stream. Methods are included to read/write data from/to the data stream, in
034: * SMS format.
035: */
036: public class SMSPacket extends MessagePacket {
037:
038: /** Length of message */
039: private int msgLength = 0;
040:
041: /**
042: * Constructs a new SMS data packet with no payload (Empty data stream.).
043: */
044: public SMSPacket() {
045: super ();
046: }
047:
048: /**
049: * Constructs a new SMS data packet with a data stream (payload)..
050: *
051: * @param payload The array of bytes representing the SMS data.
052: */
053: public SMSPacket(byte[] payload) {
054: super (payload);
055: }
056:
057: /**
058: * Writes the encoding type to the data stream. The type can be text,
059: * ucs2, binary.
060: *
061: * @param type The encoding type.
062: */
063: public void setEncodingType(int type) throws IOException {
064: putInt(type);
065: }
066:
067: /**
068: * Gets the encoding type from the data stream.
069: *
070: * @return The encoding type.
071: */
072: public int getEncodingType() {
073: return getInt();
074: }
075:
076: /**
077: * Sets the address that is associated with the message.
078: *
079: * @param address The address.
080: */
081: public void setAddress(String address) throws IOException {
082: putString(address);
083: }
084:
085: /**
086: * Sets the phone number that is associated with the message.
087: *
088: * @param phNum The phone number associated with the message.
089: */
090: public void setPhoneNumber(String phNum) throws IOException {
091: putString(phNum);
092: }
093:
094: /**
095: * Gets the address from the data stream.
096: *
097: * @return The address.
098: */
099: public String getAddress() {
100: return getString();
101: }
102:
103: /**
104: * Gets the phone number from the data stream.
105: *
106: * @return The phone number.
107: */
108: public String getPhoneNumber() {
109: return getString();
110: }
111:
112: /**
113: * Sets the port that is associated with the message.
114: *
115: * @param port The port.
116: */
117: public void setPort(int port) throws IOException {
118: putInt(port);
119: }
120:
121: /**
122: * Gets the port from the data stream.
123: *
124: * @return The port.
125: */
126: public int getPort() {
127: return getInt();
128: }
129:
130: /**
131: * Sets the timestamp that is associated with the message.
132: *
133: * @param timeStamp The time stamp.
134: */
135: public void setTimeStamp(long timeStamp) throws IOException {
136: putLong(timeStamp);
137: }
138:
139: /**
140: * Gets the time stamp from the data stream.
141: *
142: * @return The time stamp.
143: */
144: public long getTimeStamp() {
145: return getLong();
146: }
147:
148: /**
149: * Writes the length of the message in the data stream..
150: *
151: * @param msgLen The length, in bytes, of the SMS payload.
152: */
153: public void setMessageLength(int msgLen) throws IOException {
154: msgLength = msgLen;
155: putInt(msgLen);
156: }
157:
158: /**
159: * Gets the length, in bytes, of the message from the data stream.
160: *
161: * @return The length of the message.
162: */
163: public int getMessageLength() {
164: return getInt();
165: }
166:
167: /**
168: * Writes the message bytes to the data stream.
169: *
170: * @param msg The array of bytes to write.
171: */
172: public void setMessage(byte[] msg) throws IOException {
173: putBytes(msg);
174: }
175:
176: /**
177: * Gets the message bytes from the data stream.
178: *
179: * @param len The number of bytes to read from the stream.
180: *
181: * @return The array of bytes read from the data stream.
182: */
183: public byte[] getMessage(int len) {
184: return getBytes(len);
185: }
186: }
|