1 package org.sim0mq.message.federationmanager;
2
3 import org.djutils.serialization.SerializationException;
4 import org.sim0mq.Sim0MQException;
5 import org.sim0mq.message.MessageStatus;
6 import org.sim0mq.message.Sim0MQMessage;
7 import org.sim0mq.message.SimulationMessage;
8
9
10
11
12
13
14
15
16
17 public class FM4SimStartMessage extends Sim0MQMessage
18 {
19
20 private static final String MESSAGETYPE = "FM.4";
21
22
23 private static final long serialVersionUID = 20190712L;
24
25
26
27
28
29
30
31
32
33
34
35
36
37 @SuppressWarnings("checkstyle:parameternumber")
38 public FM4SimStartMessage(final Object simulationRunId, final Object senderId, final Object receiverId,
39 final long messageId) throws Sim0MQException, NullPointerException
40 {
41 super(simulationRunId, senderId, receiverId, MESSAGETYPE, messageId, MessageStatus.NEW);
42 }
43
44
45
46
47 public static final String getMessageType()
48 {
49 return MESSAGETYPE;
50 }
51
52
53 @Override
54 public short getNumberOfPayloadFields()
55 {
56 return 0;
57 }
58
59
60 @Override
61 public Object[] createObjectArray()
62 {
63 return new Object[] {getMagicNumber(), getSimulationRunId(), getSenderId(), getReceiverId(), getMessageTypeId(),
64 getMessageId(), getMessageStatus(), getNumberOfPayloadFields()};
65 }
66
67
68 @Override
69 public byte[] createByteArray() throws Sim0MQException, SerializationException
70 {
71 return SimulationMessage.encodeUTF8(getSimulationRunId(), getSenderId(), getReceiverId(), getMessageTypeId(),
72 getMessageId(), getMessageStatus());
73 }
74
75
76
77
78
79
80
81
82 public static FM4SimStartMessage createMessage(final Object[] fields, final Object intendedReceiverId)
83 throws Sim0MQException
84 {
85 check(fields, 0, MESSAGETYPE, intendedReceiverId);
86 return new FM4SimStartMessage(fields[1], fields[2], fields[3], ((Long) fields[5]).longValue());
87 }
88
89
90
91
92
93
94
95
96
97
98 public static class Builder extends Sim0MQMessage.Builder<FM4SimStartMessage.Builder>
99 {
100
101
102
103 public Builder()
104 {
105
106 }
107
108
109 @Override
110 public FM4SimStartMessage build() throws Sim0MQException, NullPointerException
111 {
112 return new FM4SimStartMessage(this.simulationRunId, this.senderId, this.receiverId, this.messageId);
113 }
114
115 }
116 }