package Multicast;
import Common.JsonObject;
import Common.Utils;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.nio.charset.Charset;
public abstract class MulticastJsonObject extends JsonObject implements MulticastObject
{
private transient InetSocketAddress sender = null;
protected MulticastJsonObject()
{ }
public abstract void copy(Object object);
@Override
public void loadValue(DatagramPacket packet)
{
fromBytes(packet.getData());
this.sender = (InetSocketAddress) packet.getSocketAddress();
}
@Override
public byte[] toBytes()
{
return this.toJsonString().getBytes(Utils.getDefaultCharset());
}
@Override
public void fromBytes(byte[] bytes)
{
String json = new String(bytes, Utils.getDefaultCharset()).trim();
this.copy(JsonObject.getDefaultGson().fromJson(json, this.getClass()));
}
public InetSocketAddress getSender()
{
return this.sender;
}
protected final boolean isObjectThisClass(Object object)
{
return this.getClass().isAssignableFrom(object.getClass());
}
}