/** * * @param payload Can be <code>null</code>. * @param statusCode * @param packetId */ public static Collection<ResponsePacket> create(DataPacket payload, StatusCode statusCode, UniqueId packetId) { if (payload instanceof Splittable && payload.isTooBig()) { Collection<? extends DataPacket> dataPackets = ((Splittable)payload).split(); ArrayList<ResponsePacket> responsePackets = new ArrayList<ResponsePacket>(); for (DataPacket dataPacket: dataPackets) responsePackets.add(new ResponsePacket(dataPacket, statusCode, packetId)); return responsePackets; } else return Collections.singleton(new ResponsePacket(payload, statusCode, packetId)); }