summaryrefslogtreecommitdiff
path: root/src/main/java/net/transit/network/system
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/transit/network/system')
-rw-r--r--src/main/java/net/transit/network/system/INode.java45
-rw-r--r--src/main/java/net/transit/network/system/ISystem.java17
-rw-r--r--src/main/java/net/transit/network/system/swap/AcceptorNode.java14
-rw-r--r--src/main/java/net/transit/network/system/swap/ProviderNode.java10
4 files changed, 74 insertions, 12 deletions
diff --git a/src/main/java/net/transit/network/system/INode.java b/src/main/java/net/transit/network/system/INode.java
new file mode 100644
index 0000000..9c42bf1
--- /dev/null
+++ b/src/main/java/net/transit/network/system/INode.java
@@ -0,0 +1,45 @@
+package net.transit.network.system;
+
+/**
+ * @author Kyle Gunger
+ * @apiNote A node inside or outside a system. Provides acceptors and providers to other nodes.
+ */
+public interface INode
+{
+
+ /**Returns the groupIDs of groups the node interacts with
+ *
+ * @return String[]
+ */
+ public String[] groupsProvided();
+
+
+ /**Get the system managing the node or {@code null} if there isn't one
+ *
+ * @return System
+ */
+ public System getSystem();
+
+
+ /** Get the data of one of the TypeGroups the Node supports
+ *
+ * @param groupID
+ * @return
+ */
+ public Object getData(String groupID);
+
+
+ /** Set the group data for the node
+ *
+ * @param dat
+ * @param groupID
+ */
+ public void setData(Object dat, String groupID);
+
+
+ /** Get the nodes that this node is connected to
+ *
+ * @return Node[]
+ */
+ public INode[] getConnections();
+}
diff --git a/src/main/java/net/transit/network/system/ISystem.java b/src/main/java/net/transit/network/system/ISystem.java
new file mode 100644
index 0000000..fd2fa51
--- /dev/null
+++ b/src/main/java/net/transit/network/system/ISystem.java
@@ -0,0 +1,17 @@
+package net.transit.network.system;
+
+
+/**ISystem - a group of nodes optimized for performance
+ *
+ * A node can exist without a system, but a system can not exist without at least one root node.
+ *
+ * @param T The object type stored in the system.
+ */
+public interface ISystem
+{
+ /**The nodes stored by the system
+ *
+ * @return INode[]
+ */
+ public INode[] getNodes();
+}
diff --git a/src/main/java/net/transit/network/system/swap/AcceptorNode.java b/src/main/java/net/transit/network/system/swap/AcceptorNode.java
index 2dfd7a5..14c672d 100644
--- a/src/main/java/net/transit/network/system/swap/AcceptorNode.java
+++ b/src/main/java/net/transit/network/system/swap/AcceptorNode.java
@@ -1,9 +1,9 @@
package net.transit.network.system.swap;
-import net.transit.network.packet.Packet;
-import net.transit.network.system.Node;
+import net.transit.network.packet.IStaticPacket;
+import net.transit.network.system.INode;
-public interface AcceptorNode extends Node
+public interface AcceptorNode extends INode
{
/** Link another node as a provider
@@ -12,7 +12,7 @@ public interface AcceptorNode extends Node
* @param group
* @return
*/
- public boolean linkProvider(Node requester, String group);
+ public boolean linkProvider(INode requester, String group);
/** Unlink a provider from the acceptor
@@ -20,13 +20,13 @@ public interface AcceptorNode extends Node
* @param toUnlink
* @return
*/
- public boolean unlinkProvider(Node toUnlink);
+ public boolean unlinkProvider(INode toUnlink);
/**
* @return Node[]
*/
- public Node[] getProviders();
+ public INode[] getProviders();
/** Accept a packet from a provider
@@ -35,5 +35,5 @@ public interface AcceptorNode extends Node
* @param group
* @return
*/
- public boolean accept(Packet<?> packet, String group);
+ public boolean accept(IStaticPacket<?> packet, String group);
}
diff --git a/src/main/java/net/transit/network/system/swap/ProviderNode.java b/src/main/java/net/transit/network/system/swap/ProviderNode.java
index 1ba1ef3..831c87f 100644
--- a/src/main/java/net/transit/network/system/swap/ProviderNode.java
+++ b/src/main/java/net/transit/network/system/swap/ProviderNode.java
@@ -1,8 +1,8 @@
package net.transit.network.system.swap;
-import net.transit.network.system.Node;
+import net.transit.network.system.INode;
-public interface ProviderNode extends Node{
+public interface ProviderNode extends INode{
/** Link another node as an acceptor
*
@@ -10,7 +10,7 @@ public interface ProviderNode extends Node{
* @param group
* @return boolean
*/
- public boolean linkAcceptor(Node requester, String group);
+ public boolean linkAcceptor(INode requester, String group);
/** Unlink a provider from the acceptor
@@ -18,12 +18,12 @@ public interface ProviderNode extends Node{
* @param toUnlink
* @return
*/
- public boolean unlinkAcceptor(Node toUnlink);
+ public boolean unlinkAcceptor(INode toUnlink);
/**
* @return Node[]
*/
- public Node[] getAcceptors();
+ public INode[] getAcceptors();
}