diff options
Diffstat (limited to 'src/main/java/net/transit/network/system')
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(); } |