summaryrefslogtreecommitdiff
path: root/src/main/java/net/cshift/transit/network/packet
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/cshift/transit/network/packet')
-rw-r--r--src/main/java/net/cshift/transit/network/packet/DynamicPacket.java43
-rw-r--r--src/main/java/net/cshift/transit/network/packet/IDynamicPacket.java11
-rw-r--r--src/main/java/net/cshift/transit/network/packet/IStaticPacket.java23
-rw-r--r--src/main/java/net/cshift/transit/network/packet/StaticPacket.java36
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;
+ }
+}