1 /*
2 * $HeadURL: /cvsroot/insight/Insight/remote-protocol/src/com/mindtree/insight/remoteprotocol/PacketDataSizeOverLimitsException.java,v $
3 * $Date: 2005/08/09 18:39:17 $
4 * $Revision: 1.1 $
5 * $Author: m1001025 $
6 *
7 * Copyright (c) 2005 MindTree Consulting Ltd.
8 *
9 * This file is part of Insight Remote Protocol Library.
10 *
11 * Insight Remote Protocol Library is free software: you can redistribute it
12 * and/or modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation, either version 3 of the License,
14 * or (at your option) any later version.
15 *
16 * Insight Remote Protocol Library is distributed in the hope that it will be
17 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
19 * Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License along with
22 * Insight Remote Protocol Library. If not, see <http://www.gnu.org/licenses/>.
23 */
24
25 package com.mindtree.techworks.insight.remoteprotocol.spi;
26
27 import com.mindtree.techworks.insight.remoteprotocol.RemoteProtocolException;
28
29
30 /**
31 * This is the data content for packets where all the information is carried in
32 * the Header itself. One example of such a packet is the
33 * {@link com.mindtree.techworks.insight.remoteprotocol.spi.MessageType#SHUTDOWN_MESSAGE Shutdown Message}.
34 *
35 * @see com.mindtree.techworks.insight.remoteprotocol.spi.PacketDataContent
36 * @author <a href="mailto:bindul_bhowmik@mindtree.com">Bindul Bhowmik</a>
37 * @version $Revision: 1.1 $ $Date: 2005/08/03 14:39:18 $
38 */
39 public class NullMessageDataContent extends PacketDataContent {
40
41 // -------------------------------------------------------------------------
42 // Class Variables
43 // -------------------------------------------------------------------------
44
45 /**
46 * The serial version UID for the serialized version.
47 */
48 private static final long serialVersionUID = 4983089049003555547L;
49
50 // -------------------------------------------------------------------------
51 // Constructors
52 // -------------------------------------------------------------------------
53
54 /**
55 * Creates a new instance of NullMessageDataContent
56 *
57 * @see PacketDataContent#PacketDataContent()
58 */
59 public NullMessageDataContent () {
60
61 super();
62
63 }
64
65 /**
66 * Creates a new instance of NullMessageDataContent
67 *
68 * @see PacketDataContent#PacketDataContent(byte[], PacketHeader)
69 * @param completePacketData The data for the complete packet.
70 * @param packetHeader The header for the packet
71 * @throws RemoteProtocolException If the length of the data in the packet
72 * is greater than 0.
73 */
74 public NullMessageDataContent (byte [] completePacketData,
75 PacketHeader packetHeader) throws RemoteProtocolException {
76
77 super(completePacketData, packetHeader);
78 if (this.getLength() != 0) {
79 throw new RemoteProtocolException(
80 "Incompatible message type: NullMessageDataContent "
81 + "cannot have any content.");
82 }
83 }
84
85 // -------------------------------------------------------------------------
86 // Overridden methods from PacketDataContent
87 // -------------------------------------------------------------------------
88
89 /**
90 * Overrides the superclasses setPacketData method. NullMessageDataContent
91 * is not supposed to have any data.
92 *
93 * @see com.mindtree.techworks.insight.remoteprotocol.spi.PacketDataContent#setPacketData(byte[])
94 * @throws RemoteProtocolException if the <code>packetData</code> passed
95 * in is not null.
96 */
97 public void setPacketData (byte [] packetData)
98 throws RemoteProtocolException {
99
100 if (null != packetData) {
101 throw new RemoteProtocolException(
102 "Incompatible message type: NullMessageDataContent "
103 + "cannot have any content.");
104 }
105 }
106
107
108 }