diff options
Diffstat (limited to 'src/main/java/net/cshift/transit/network/packet')
4 files changed, 113 insertions, 0 deletions
diff --git a/src/main/java/net/cshift/transit/network/packet/DynamicPacket.java b/src/main/java/net/cshift/transit/network/packet/DynamicPacket.java new file mode 100644 index 0000000..beeea97 --- /dev/null +++ b/src/main/java/net/cshift/transit/network/packet/DynamicPacket.java @@ -0,0 +1,43 @@ +package net.cshift.transit.network.packet; + +import net.cshift.transit.type.Type; + +/** + * Simple packet which stores a value which can change. + * + * @param <D> The type parameter of the Type being transported + * @author Kyle Gunger + * + */ +public class DynamicPacket<D> implements IDynamicPacket<D> { + private Object data; + private Type<D> type; + + /** Constructor. Stores the given data and uses the given type. + * + * @param dat The packet's data + * @param t The packet's type + */ + public DynamicPacket(Object dat, Type<D> t) + { + data = dat; + type = t; + } + + @Override + public Object getData() + { + return data; + } + + @Override + public void setData(Object dat) + { + data = dat; + } + + @Override + public Type<D> getType() { + return type; + } +} diff --git a/src/main/java/net/cshift/transit/network/packet/IDynamicPacket.java b/src/main/java/net/cshift/transit/network/packet/IDynamicPacket.java new file mode 100644 index 0000000..fca43e5 --- /dev/null +++ b/src/main/java/net/cshift/transit/network/packet/IDynamicPacket.java @@ -0,0 +1,11 @@ +package net.cshift.transit.network.packet; + +/** Interface describing a packet where the data can change as it's transferred. + * + * @param <D> The type parameter of the Type being transported + * @author Kyle Gunger + */ +public interface IDynamicPacket<D> extends IStaticPacket<D>{ + /** Set the packet's data. */ + public void setData(Object dat); +} diff --git a/src/main/java/net/cshift/transit/network/packet/IStaticPacket.java b/src/main/java/net/cshift/transit/network/packet/IStaticPacket.java new file mode 100644 index 0000000..506a166 --- /dev/null +++ b/src/main/java/net/cshift/transit/network/packet/IStaticPacket.java @@ -0,0 +1,23 @@ +package net.cshift.transit.network.packet; + +import net.cshift.transit.type.*; + +/** Interface describing an unchanging packet. + * + * @param <D> The type parameter of the Type being transported + * @author Kyle Gunger + */ +public interface IStaticPacket<D> +{ + /**Get the packet's data. + * + * @return The packet's data + */ + public Object getData(); + + /**Get the packet's type. + * + * @return IType<?> The type of the packet + */ + public Type<D> getType(); +} diff --git a/src/main/java/net/cshift/transit/network/packet/StaticPacket.java b/src/main/java/net/cshift/transit/network/packet/StaticPacket.java new file mode 100644 index 0000000..3daefb0 --- /dev/null +++ b/src/main/java/net/cshift/transit/network/packet/StaticPacket.java @@ -0,0 +1,36 @@ +package net.cshift.transit.network.packet; + +import net.cshift.transit.type.*; + +/** Simple packet which stores an unchanging value. + * @author Kyle Gunger + * + * @param <D> The data type (Object) that the packet transfers. + */ +public class StaticPacket<D> implements IStaticPacket<D> +{ + private Object data; + private Type<D> type; + + /** Constructor. Stores the given data and uses the given type. + * + * @param dat The packet's data + * @param t The packet's type + */ + public StaticPacket(Object dat, Type<D> t) + { + data = dat; + type = t; + } + + @Override + public Object getData() + { + return data; + } + + @Override + public Type<D> getType() { + return type; + } +} |