diff --git a/src/main/java/com/syncleus/dann/graph/AssignableBidirectedCloud.java b/src/main/java/com/syncleus/dann/graph/AssignableBidirectedHyperedge.java similarity index 81% rename from src/main/java/com/syncleus/dann/graph/AssignableBidirectedCloud.java rename to src/main/java/com/syncleus/dann/graph/AssignableBidirectedHyperedge.java index cbceb2077869a7568e06572a64b12e1511898d6f..f2813a7468adb6208572b10c62a0c7d25ae89e6b 100644 --- a/src/main/java/com/syncleus/dann/graph/AssignableBidirectedCloud.java +++ b/src/main/java/com/syncleus/dann/graph/AssignableBidirectedHyperedge.java @@ -20,11 +20,11 @@ package com.syncleus.dann.graph; import java.util.Map; -public interface AssignableBidirectedCloud< - E extends AssignableBidirectedCloud.Endpoint<?> - > extends AssignableCloud<E>, BidirectedCloud<E> +public interface AssignableBidirectedHyperedge< + E extends AssignableBidirectedHyperedge.Endpoint<?> + > extends AssignableCloud<E>, BidirectedHyperedge<E> { - interface Endpoint<T> extends AssignableCloud.Endpoint<T>, BidirectedCloud.Endpoint<T> + interface Endpoint<T> extends AssignableCloud.Endpoint<T>, BidirectedHyperedge.Endpoint<T> { } @@ -34,5 +34,5 @@ public interface AssignableBidirectedCloud< Endpoint.Direction getDirection(); } - <T, TE extends AssignableBidirectedCloud.Endpoint<? super T>> void reassignDirection(Map<TE,? extends ReassignmentPair<? extends T>> reassignments) throws InvalidGraphException; + <T, TE extends AssignableBidirectedHyperedge.Endpoint<? super T>> void reassignDirection(Map<TE,? extends ReassignmentPair<? extends T>> reassignments) throws InvalidGraphException; } \ No newline at end of file diff --git a/src/main/java/com/syncleus/dann/graph/AssignableMixableBidirectedEdge.java b/src/main/java/com/syncleus/dann/graph/AssignableMixableBidirectedEdge.java index 11606f4ee4900970c8ccd427d8e095b08dec44e9..7f704049bb10ada3a3dbde2cf405dcffb669f714 100644 --- a/src/main/java/com/syncleus/dann/graph/AssignableMixableBidirectedEdge.java +++ b/src/main/java/com/syncleus/dann/graph/AssignableMixableBidirectedEdge.java @@ -22,9 +22,9 @@ public interface AssignableMixableBidirectedEdge< E extends AssignableMixableBidirectedEdge.Endpoint<?>, LE extends E, RE extends E - > extends AssignableMixableEdge<E, LE, RE>, MixableBidirectedEdge<E, LE, RE>, AssignableBidirectedCloud<E> + > extends AssignableMixableEdge<E, LE, RE>, MixableBidirectedEdge<E, LE, RE>, AssignableBidirectedHyperedge<E> { - interface Endpoint<T> extends AssignableMixableEdge.Endpoint<T>, MixableBidirectedEdge.Endpoint<T>, AssignableBidirectedCloud.Endpoint<T> + interface Endpoint<T> extends AssignableMixableEdge.Endpoint<T>, MixableBidirectedEdge.Endpoint<T>, AssignableBidirectedHyperedge.Endpoint<T> { }; diff --git a/src/main/java/com/syncleus/dann/graph/BidirectedGraph.java b/src/main/java/com/syncleus/dann/graph/BidirectedGraph.java index 9e35739446bd09b37c1c74204c2da8d77a66f3c0..b6ba830c6017c8940b98459a1c37039f4a7b3f13 100644 --- a/src/main/java/com/syncleus/dann/graph/BidirectedGraph.java +++ b/src/main/java/com/syncleus/dann/graph/BidirectedGraph.java @@ -18,8 +18,6 @@ ******************************************************************************/ package com.syncleus.dann.graph; -import java.util.Set; - /** * A type of graph where every edge has exactly 2 end points and may have a * directionality at either end point. The two end points at each end do not @@ -41,7 +39,7 @@ public interface BidirectedGraph< interface Endpoint< T > - extends TraversableGraph.Endpoint<T>, BidirectedCloud.Endpoint<T> + extends TraversableGraph.Endpoint<T>, BidirectedHyperedge.Endpoint<T> { }; diff --git a/src/main/java/com/syncleus/dann/graph/BidirectedCloud.java b/src/main/java/com/syncleus/dann/graph/BidirectedHyperedge.java similarity index 88% rename from src/main/java/com/syncleus/dann/graph/BidirectedCloud.java rename to src/main/java/com/syncleus/dann/graph/BidirectedHyperedge.java index 6d93baba1778838fdb2150e864585cd835549651..87332bf735d1b461a81331f9cb697f28c5c802f8 100644 --- a/src/main/java/com/syncleus/dann/graph/BidirectedCloud.java +++ b/src/main/java/com/syncleus/dann/graph/BidirectedHyperedge.java @@ -17,11 +17,11 @@ package com.syncleus.dann.graph; -public interface BidirectedCloud< - E extends BidirectedCloud.Endpoint<?> - > extends TraversableCloud<E> +public interface BidirectedHyperedge< + E extends BidirectedHyperedge.Endpoint<?> + > extends TraversableHyperedge<E> { - interface Endpoint<T> extends TraversableCloud.Endpoint<T> + interface Endpoint<T> extends TraversableHyperedge.Endpoint<T> { enum Direction { diff --git a/src/main/java/com/syncleus/dann/graph/DynamicBidirectedGraph.java b/src/main/java/com/syncleus/dann/graph/DynamicBidirectedGraph.java index 4019a23923dde5b67632beaa7a4a2864df596cdc..e0bef669abb2725758e19b1edbad3a9e1f3373f3 100644 --- a/src/main/java/com/syncleus/dann/graph/DynamicBidirectedGraph.java +++ b/src/main/java/com/syncleus/dann/graph/DynamicBidirectedGraph.java @@ -23,12 +23,12 @@ public interface DynamicBidirectedGraph< NE extends DynamicBidirectedGraph.NodeEndpoint<N>, E extends BidirectedEdge<? extends BidirectedEdge.Endpoint<N>>, EE extends DynamicBidirectedGraph.EdgeEndpoint<E> - > extends BidirectedGraph<NE, EE>, DynamicGraph<N, NE, E, EE>, DynamicBidirectedCloud<N,NE> + > extends BidirectedGraph<NE, EE>, DynamicGraph<N, NE, E, EE>, DynamicBidirectedHyperedge<N,NE> { interface Endpoint< T > - extends BidirectedGraph.Endpoint<T>, DynamicGraph.Endpoint<T>, DynamicBidirectedCloud.Endpoint<T> + extends BidirectedGraph.Endpoint<T>, DynamicGraph.Endpoint<T>, DynamicBidirectedHyperedge.Endpoint<T> { }; diff --git a/src/main/java/com/syncleus/dann/graph/DynamicBidirectedCloud.java b/src/main/java/com/syncleus/dann/graph/DynamicBidirectedHyperedge.java similarity index 88% rename from src/main/java/com/syncleus/dann/graph/DynamicBidirectedCloud.java rename to src/main/java/com/syncleus/dann/graph/DynamicBidirectedHyperedge.java index 5531191f806d459dc1ad3057d8e927818f2710c5..9ccaa0fdd01415ee9ef9c0bf245dfe974a0fbdf9 100644 --- a/src/main/java/com/syncleus/dann/graph/DynamicBidirectedCloud.java +++ b/src/main/java/com/syncleus/dann/graph/DynamicBidirectedHyperedge.java @@ -18,12 +18,12 @@ ******************************************************************************/ package com.syncleus.dann.graph; -public interface DynamicBidirectedCloud< +public interface DynamicBidirectedHyperedge< T, - E extends DynamicBidirectedCloud.Endpoint<T> - > extends DynamicCloud<T,E>, AssignableBidirectedCloud<E> + E extends DynamicBidirectedHyperedge.Endpoint<T> + > extends DynamicCloud<T,E>, AssignableBidirectedHyperedge<E> { - interface Endpoint<T> extends DynamicCloud.Endpoint<T>, AssignableBidirectedCloud.Endpoint<T> + interface Endpoint<T> extends DynamicCloud.Endpoint<T>, AssignableBidirectedHyperedge.Endpoint<T> { } } \ No newline at end of file diff --git a/src/main/java/com/syncleus/dann/graph/MixableBidirectedEdge.java b/src/main/java/com/syncleus/dann/graph/MixableBidirectedEdge.java index 26a53f92002e04acc56cbb7d5848e84fd75980dd..ab231bdfe26e7522feb6b71195171eace79b36ca 100644 --- a/src/main/java/com/syncleus/dann/graph/MixableBidirectedEdge.java +++ b/src/main/java/com/syncleus/dann/graph/MixableBidirectedEdge.java @@ -22,9 +22,9 @@ public interface MixableBidirectedEdge< E extends MixableBidirectedEdge.Endpoint<?>, LE extends E, RE extends E - > extends MixableEdge<E, LE, RE>, BidirectedCloud<E> + > extends MixableEdge<E, LE, RE>, BidirectedHyperedge<E> { - interface Endpoint<T> extends MixableEdge.Endpoint<T>, BidirectedCloud.Endpoint<T> + interface Endpoint<T> extends MixableEdge.Endpoint<T>, BidirectedHyperedge.Endpoint<T> { }; diff --git a/src/main/java/com/syncleus/dann/graph/TraversableHyperedge.java b/src/main/java/com/syncleus/dann/graph/TraversableHyperedge.java new file mode 100644 index 0000000000000000000000000000000000000000..12fa9b50ec66a3ab79a341fb4bfdb47a2c41c406 --- /dev/null +++ b/src/main/java/com/syncleus/dann/graph/TraversableHyperedge.java @@ -0,0 +1,32 @@ +/****************************************************************************** + * * + * Copyright: (c) Syncleus, Inc. * + * * + * You may redistribute and modify this source code under the terms and * + * conditions of the Open Source Community License - Type C version 1.0 * + * or any later version as published by Syncleus, Inc. at www.syncleus.com. * + * There should be a copy of the license included with this file. If a copy * + * of the license is not included you are granted no right to distribute or * + * otherwise use this file except through a legal and valid license. You * + * should also contact Syncleus, Inc. at the information below if you cannot * + * find a license: * + * * + * Syncleus, Inc. * + * 2604 South 12th Street * + * Philadelphia, PA 19148 * + * * + ******************************************************************************/ +package com.syncleus.dann.graph; + +public interface TraversableHyperedge< + E extends TraversableHyperedge.Endpoint<?> + > extends TraversableCloud<E>, Hyperedge<E> +{ + interface Endpoint<T> extends Hyperedge.Endpoint<T> + { + boolean isTraversableFrom(Hyperedge.Endpoint<?> target); + boolean isTraversableTo(Hyperedge.Endpoint<?> target); + boolean isTraversableFrom(); + boolean isTraversableTo(); + } +}