From e39504af40601ca23e1fd3f1bbe944f9f3b9a109 Mon Sep 17 00:00:00 2001 From: Jeffrey Phillips Freeman <jeffrey.freeman@syncleus.com> Date: Tue, 13 Sep 2011 22:48:40 -0400 Subject: [PATCH] CHECKPOINT: simplified the interface definitions slightly. --- .../dann/graph/AbstractAdjacencyGraph.java | 109 ++++++++---------- .../syncleus/dann/graph/AssignableGraph.java | 7 +- .../java/com/syncleus/dann/graph/Graph.java | 83 +++---------- .../dann/graph/MutableAdjacencyGraph.java | 9 +- 4 files changed, 76 insertions(+), 132 deletions(-) diff --git a/src/main/java/com/syncleus/dann/graph/AbstractAdjacencyGraph.java b/src/main/java/com/syncleus/dann/graph/AbstractAdjacencyGraph.java index a9e9515f..71983f67 100644 --- a/src/main/java/com/syncleus/dann/graph/AbstractAdjacencyGraph.java +++ b/src/main/java/com/syncleus/dann/graph/AbstractAdjacencyGraph.java @@ -25,7 +25,6 @@ import com.syncleus.dann.xml.NamedValueXml; import com.syncleus.dann.xml.Namer; import com.syncleus.dann.xml.XmlSerializable; import org.apache.log4j.Logger; -import javax.jnlp.ExtendedService; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import java.util.*; @@ -46,9 +45,9 @@ public abstract class AbstractAdjacencyGraph< PA, N extends PA, E extends Edge<N,? extends Edge.Endpoint<N>>, - NEP extends Graph.NodeEndpoint<PA, N, E>, - EEP extends Graph.EdgeEndpoint<PA, N, E> - > extends AbstractEdge<PA,Graph.Endpoint<PA,N,E,PA>> implements Graph<PA, N, E, NEP, EEP> + NEP extends Graph.NodeEndpoint<N, E>, + EEP extends Graph.EdgeEndpoint<N, E> + > extends AbstractEdge<PA,Graph.Endpoint<N,E,PA>> implements Graph<PA, N, E, NEP, EEP> { private static final Logger LOGGER = Logger.getLogger(AbstractAdjacencyGraph.class); // private Set<E> edges; @@ -538,7 +537,7 @@ public abstract class AbstractAdjacencyGraph< } */ - protected abstract Set<Graph.EdgeEndpoint<PA, N, E>> getAdjacentEdgeEndPoint(Graph.NodeEndpoint<PA, N, E> nodeEndPoint); + protected abstract Set<Graph.EdgeEndpoint<N, E>> getAdjacentEdgeEndPoint(Graph.NodeEndpoint<N, E> nodeEndPoint); protected PathFinder<N,E> getPathFinder() { @@ -564,9 +563,9 @@ public abstract class AbstractAdjacencyGraph< } @Override - public Set<Graph.Endpoint<PA,N,E,PA>> getEndPoints() + public Set<Graph.Endpoint<N,E,PA>> getEndPoints() { - final Set<Graph.Endpoint<PA,N,E,PA>> endpoints = new HashSet<Graph.Endpoint<PA,N,E,PA>>(); + final Set<Graph.Endpoint<N,E,PA>> endpoints = new HashSet<Graph.Endpoint<N,E,PA>>(); endpoints.addAll(this.getNodeEndpoints()); endpoints.addAll(this.getEdgeEndpoints()); return Collections.unmodifiableSet(endpoints); @@ -604,8 +603,8 @@ public abstract class AbstractAdjacencyGraph< final Set<N> sourceNodes = new HashSet<N>(); for(NEP destinationEndpoint : this.getNodeEndpoints(node) ) - for(Graph.EdgeEndpoint<PA, N, E> sourceEndpoint : destinationEndpoint.getAdjacentEdges()) - for(Graph.NodeEndpoint<PA, N, E> nodeEndpoint : sourceEndpoint.getAdjacentNodes()) + for(Graph.EdgeEndpoint<N, E> sourceEndpoint : destinationEndpoint.getAdjacentEdges()) + for(Graph.NodeEndpoint<N, E> nodeEndpoint : sourceEndpoint.getAdjacentNodes()) sourceNodes.add(nodeEndpoint.getTarget()); return Collections.unmodifiableSet(sourceNodes); @@ -617,7 +616,7 @@ public abstract class AbstractAdjacencyGraph< final Set<E> sourceEdges = new HashSet<E>(); for(NEP destinationEndpoint : this.getNodeEndpoints(node) ) - for(Graph.EdgeEndpoint<PA, N, E> sourceEndpoint : destinationEndpoint.getAdjacentEdges()) + for(Graph.EdgeEndpoint<N, E> sourceEndpoint : destinationEndpoint.getAdjacentEdges()) sourceEdges.add(sourceEndpoint.getTarget()); return Collections.unmodifiableSet(sourceEdges); @@ -790,7 +789,7 @@ public abstract class AbstractAdjacencyGraph< final Set<E> destinationEdges = new HashSet<E>(); for(NEP sourceEndpoint : this.getNodeEndpoints(source) ) - for(Graph.EdgeEndpoint<PA, N, E> destinationEndpoint : sourceEndpoint.getTraversableAdjacentEdgesFrom()) + for(Graph.EdgeEndpoint<N, E> destinationEndpoint : sourceEndpoint.getTraversableAdjacentEdgesFrom()) destinationEdges.add(destinationEndpoint.getTarget()); return Collections.unmodifiableSet(destinationEdges); @@ -802,7 +801,7 @@ public abstract class AbstractAdjacencyGraph< final Set<E> destinationEdges = new HashSet<E>(); for(EEP sourceEndpoint : this.getEdgeEndpoints(source) ) - for(Graph.EdgeEndpoint<PA, N, E> destinationEndpoint : sourceEndpoint.getTraversableAdjacentEdgesFrom()) + for(Graph.EdgeEndpoint<N, E> destinationEndpoint : sourceEndpoint.getTraversableAdjacentEdgesFrom()) destinationEdges.add(destinationEndpoint.getTarget()); return Collections.unmodifiableSet(destinationEdges); @@ -815,7 +814,7 @@ public abstract class AbstractAdjacencyGraph< final Set<E> sourceEdges = new HashSet<E>(); for(NEP destinationEndpoint : this.getNodeEndpoints(destination) ) - for(Graph.EdgeEndpoint<PA, N, E> sourceEndpoint : destinationEndpoint.getTraversableAdjacentEdgesTo()) + for(Graph.EdgeEndpoint<N, E> sourceEndpoint : destinationEndpoint.getTraversableAdjacentEdgesTo()) sourceEdges.add(sourceEndpoint.getTarget()); return Collections.unmodifiableSet(sourceEdges); @@ -827,7 +826,7 @@ public abstract class AbstractAdjacencyGraph< final Set<E> destinationEdges = new HashSet<E>(); for(EEP destinationEndpoint : this.getEdgeEndpoints(destination) ) - for(Graph.EdgeEndpoint<PA, N, E> sourceEndpoint : destinationEndpoint.getTraversableAdjacentEdgesFrom()) + for(Graph.EdgeEndpoint<N, E> sourceEndpoint : destinationEndpoint.getTraversableAdjacentEdgesFrom()) destinationEdges.add(sourceEndpoint.getTarget()); return Collections.unmodifiableSet(destinationEdges); @@ -839,8 +838,8 @@ public abstract class AbstractAdjacencyGraph< final Set<N> destinationNodes = new HashSet<N>(); for(NEP sourceEndpoint : this.getNodeEndpoints(source) ) - for(Graph.EdgeEndpoint<PA, N, E> destinationEndpoint : sourceEndpoint.getTraversableAdjacentEdgesTo()) - for(Graph.NodeEndpoint<PA, N, E> nodeEndpoint : destinationEndpoint.getTraversableAdjacentNodesTo()) + for(Graph.EdgeEndpoint<N, E> destinationEndpoint : sourceEndpoint.getTraversableAdjacentEdgesTo()) + for(Graph.NodeEndpoint<N, E> nodeEndpoint : destinationEndpoint.getTraversableAdjacentNodesTo()) destinationNodes.add(nodeEndpoint.getTarget()); return Collections.unmodifiableSet(destinationNodes); @@ -852,7 +851,7 @@ public abstract class AbstractAdjacencyGraph< final Set<N> destinationNodes = new HashSet<N>(); for(EEP sourceEndpoint : this.getEdgeEndpoints(source) ) - for(Graph.NodeEndpoint<PA, N, E> destinationEndpoint : sourceEndpoint.getTraversableAdjacentNodesTo()) + for(Graph.NodeEndpoint<N, E> destinationEndpoint : sourceEndpoint.getTraversableAdjacentNodesTo()) destinationNodes.add(destinationEndpoint.getTarget()); return Collections.unmodifiableSet(destinationNodes); @@ -864,8 +863,8 @@ public abstract class AbstractAdjacencyGraph< final Set<N> sourceNodes = new HashSet<N>(); for(NEP destinationEndpoint : this.getNodeEndpoints(destination) ) - for(Graph.EdgeEndpoint<PA, N, E> sourceEndpoint : destinationEndpoint.getTraversableAdjacentEdgesFrom()) - for(Graph.NodeEndpoint<PA, N, E> nodeEndpoint : sourceEndpoint.getTraversableAdjacentNodesFrom()) + for(Graph.EdgeEndpoint<N, E> sourceEndpoint : destinationEndpoint.getTraversableAdjacentEdgesFrom()) + for(Graph.NodeEndpoint<N, E> nodeEndpoint : sourceEndpoint.getTraversableAdjacentNodesFrom()) sourceNodes.add(nodeEndpoint.getTarget()); return Collections.unmodifiableSet(sourceNodes); @@ -877,7 +876,7 @@ public abstract class AbstractAdjacencyGraph< final Set<N> sourceNodes = new HashSet<N>(); for(EEP destinationEndpoint : this.getEdgeEndpoints(destination) ) - for(Graph.NodeEndpoint<PA, N, E> sourceEndpoint : destinationEndpoint.getTraversableAdjacentNodesFrom()) + for(Graph.NodeEndpoint<N, E> sourceEndpoint : destinationEndpoint.getTraversableAdjacentNodesFrom()) sourceNodes.add(sourceEndpoint.getTarget()); return Collections.unmodifiableSet(sourceNodes); @@ -986,21 +985,21 @@ public abstract class AbstractAdjacencyGraph< } } */ - protected abstract class AbstractNodeEndpoint extends AbstractEdge<N,Graph.Endpoint<PA,N,E,PA>>.AbstractEndpoint implements Graph.NodeEndpoint<PA,N,E> + protected abstract class AbstractNodeEndpoint extends AbstractEdge<N,Graph.Endpoint<N,E,PA>>.AbstractEndpoint implements Graph.NodeEndpoint<N,E> { @Override - public Set<Graph.EdgeEndpoint<PA, N, E>> getAdjacentEdges() + public Set<Graph.EdgeEndpoint<N, E>> getAdjacentEdges() { return getAdjacentEdgeEndPoint(this); } @Override - public Set<Graph.NodeEndpoint<PA, N, E>> getAdjacentNodes() + public Set<Graph.NodeEndpoint<N, E>> getAdjacentNodes() { - final Set<Graph.NodeEndpoint<PA, N, E>> adjacentNodes = new HashSet<Graph.NodeEndpoint<PA, N, E>>(); + final Set<Graph.NodeEndpoint<N, E>> adjacentNodes = new HashSet<Graph.NodeEndpoint<N, E>>(); - for(Graph.EdgeEndpoint<PA, N, E> adjacentEndpoint : this.getAdjacentEdges() ) + for(Graph.EdgeEndpoint<N, E> adjacentEndpoint : this.getAdjacentEdges() ) for( Edge.Endpoint<? extends N> nodeEndpoint : adjacentEndpoint.getTarget().getEndPoints(this.getTarget()) ) for( Edge.Endpoint<? extends N> adjacentNodeEndpoint : nodeEndpoint.getNeighbors() ) adjacentNodes.addAll(AbstractAdjacencyGraph.this.getNodeEndpoints(adjacentNodeEndpoint.getTarget())); @@ -1009,11 +1008,11 @@ public abstract class AbstractAdjacencyGraph< } @Override - public Set<Graph.NodeEndpoint<PA, N, E>> getTraversableAdjacentNodesTo() + public Set<Graph.NodeEndpoint<N, E>> getTraversableAdjacentNodesTo() { - final Set<Graph.NodeEndpoint<PA, N, E>> adjacentNodes = new HashSet<Graph.NodeEndpoint<PA, N, E>>(); + final Set<Graph.NodeEndpoint<N, E>> adjacentNodes = new HashSet<Graph.NodeEndpoint<N, E>>(); - for(Graph.EdgeEndpoint<PA, N, E> adjacentEndpoint : this.getAdjacentEdges() ) + for(Graph.EdgeEndpoint<N, E> adjacentEndpoint : this.getAdjacentEdges() ) for( Edge.Endpoint<? extends N> nodeEndpoint : adjacentEndpoint.getTarget().getEndPoints(this.getTarget()) ) for( Edge.Endpoint<? extends N> adjacentNodeEndpoint : nodeEndpoint.getTraversableNeighborsTo() ) adjacentNodes.addAll(AbstractAdjacencyGraph.this.getNodeEndpoints(adjacentNodeEndpoint.getTarget())); @@ -1022,11 +1021,11 @@ public abstract class AbstractAdjacencyGraph< } @Override - public Set<Graph.NodeEndpoint<PA, N, E>> getTraversableAdjacentNodesFrom() + public Set<Graph.NodeEndpoint<N, E>> getTraversableAdjacentNodesFrom() { - final Set<Graph.NodeEndpoint<PA, N, E>> adjacentNodes = new HashSet<Graph.NodeEndpoint<PA, N, E>>(); + final Set<Graph.NodeEndpoint<N, E>> adjacentNodes = new HashSet<Graph.NodeEndpoint<N, E>>(); - for(Graph.EdgeEndpoint<PA, N, E> adjacentEndpoint : this.getAdjacentEdges() ) + for(Graph.EdgeEndpoint<N, E> adjacentEndpoint : this.getAdjacentEdges() ) for( Edge.Endpoint<? extends N> nodeEndpoint : adjacentEndpoint.getTarget().getEndPoints(this.getTarget()) ) for( Edge.Endpoint<? extends N> adjacentNodeEndpoint : nodeEndpoint.getTraversableNeighborsFrom() ) adjacentNodes.addAll(AbstractAdjacencyGraph.this.getNodeEndpoints(adjacentNodeEndpoint.getTarget())); @@ -1035,11 +1034,11 @@ public abstract class AbstractAdjacencyGraph< } @Override - public Set<Graph.EdgeEndpoint<PA, N, E>> getTraversableAdjacentEdgesTo() + public Set<Graph.EdgeEndpoint<N, E>> getTraversableAdjacentEdgesTo() { - final Set<Graph.EdgeEndpoint<PA, N, E>> adjacentEdges = new HashSet<Graph.EdgeEndpoint<PA, N, E>>(); + final Set<Graph.EdgeEndpoint<N, E>> adjacentEdges = new HashSet<Graph.EdgeEndpoint<N, E>>(); - for(Graph.EdgeEndpoint<PA, N, E> adjacentEndpoint : this.getAdjacentEdges() ) + for(Graph.EdgeEndpoint<N, E> adjacentEndpoint : this.getAdjacentEdges() ) for( Edge.Endpoint<? extends N> nodeEndpoint : adjacentEndpoint.getTarget().getEndPoints(this.getTarget()) ) if( nodeEndpoint.isTraversable() ) adjacentEdges.add(adjacentEndpoint); @@ -1048,11 +1047,11 @@ public abstract class AbstractAdjacencyGraph< } @Override - public Set<Graph.EdgeEndpoint<PA, N, E>> getTraversableAdjacentEdgesFrom() + public Set<Graph.EdgeEndpoint<N, E>> getTraversableAdjacentEdgesFrom() { - final Set<Graph.EdgeEndpoint<PA, N, E>> adjacentEdges = new HashSet<Graph.EdgeEndpoint<PA, N, E>>(); + final Set<Graph.EdgeEndpoint<N, E>> adjacentEdges = new HashSet<Graph.EdgeEndpoint<N, E>>(); - for(Graph.EdgeEndpoint<PA, N, E> adjacentEndpoint : this.getAdjacentEdges() ) + for(Graph.EdgeEndpoint<N, E> adjacentEndpoint : this.getAdjacentEdges() ) for( Edge.Endpoint<? extends N> nodeEndpoint : adjacentEndpoint.getTarget().getEndPoints(this.getTarget()) ) if( nodeEndpoint.isTraversable() ) adjacentEdges.add(adjacentEndpoint); @@ -1061,18 +1060,12 @@ public abstract class AbstractAdjacencyGraph< } }; -// protected abstract class AbstractNodeEndpoint<MN extends N> extends AbstractEdge<PA,Graph.Endpoint<? extends PA,? extends PA,?>>.AbstractEndpoint<MN> implements Graph.NodeEndpoint<PA,N,MN,E,NEP,EEP> -// protected abstract class AbstractEdgeEndpoint<ME extends E> extends AbstractEdge<PA,Graph.Endpoint<? extends PA,? extends PA, ?>>.AbstractEndpoint<ME> implements Graph.EdgeEndpoint<N,E,ME> -// protected abstract class AbstractEdgeEndpoint<ME extends E> extends AbstractEdge<E,Graph.Endpoint<? extends PA,? extends PA, ?>>.AbstractEndpoint<E,ME> implements Graph.EdgeEndpoint<PA,N,E,E,NEP,EEP> - -// protected abstract class AbstractEdgeEndpoint<ME extends E> extends AbstractEdge<PA,Graph.Endpoint<PA,PA>>.AbstractEndpoint<ME> implements Graph.EdgeEndpoint<PA,N,E,ME> -// protected abstract class AbstractEdgeEndpoint<ME extends E> implements Edge.Endpoint<PA,ME>, Graph.EdgeEndpoint<PA,N,E,ME> - protected abstract class AbstractEdgeEndpoint extends AbstractEdge<E,Graph.Endpoint<PA,N,E,PA>>.AbstractEndpoint implements Graph.EdgeEndpoint<PA,N,E> + protected abstract class AbstractEdgeEndpoint extends AbstractEdge<E,Graph.Endpoint<N,E,PA>>.AbstractEndpoint implements Graph.EdgeEndpoint<N,E> { @Override - public Set<Graph.NodeEndpoint<PA, N, E>> getAdjacentNodes() + public Set<Graph.NodeEndpoint<N, E>> getAdjacentNodes() { - final Set<Graph.NodeEndpoint<PA, N, E>> adjacentNodes = new HashSet<Graph.NodeEndpoint<PA, N, E>>(); + final Set<Graph.NodeEndpoint<N, E>> adjacentNodes = new HashSet<Graph.NodeEndpoint<N, E>>(); for(Endpoint<? extends N> adjacentEndpoint : this.getTarget().getEndPoints()) adjacentNodes.addAll(AbstractAdjacencyGraph.this.getNodeEndpoints(adjacentEndpoint.getTarget())); @@ -1081,9 +1074,9 @@ public abstract class AbstractAdjacencyGraph< } @Override - public Set<Graph.EdgeEndpoint<PA, N, E>> getAdjacentEdges() + public Set<Graph.EdgeEndpoint<N, E>> getAdjacentEdges() { - final Set<Graph.EdgeEndpoint<PA, N, E>> adjacentEdges = new HashSet<Graph.EdgeEndpoint<PA, N, E>>(); + final Set<Graph.EdgeEndpoint<N, E>> adjacentEdges = new HashSet<Graph.EdgeEndpoint<N, E>>(); for(Endpoint<? extends N> sourceEndpoint : this.getTarget().getEndPoints()) for( NEP neighborNode : AbstractAdjacencyGraph.this.getNodeEndpoints(sourceEndpoint.getTarget()) ) @@ -1094,14 +1087,14 @@ public abstract class AbstractAdjacencyGraph< } @Override - public Set<Graph.EdgeEndpoint<PA, N, E>> getTraversableAdjacentEdgesTo() + public Set<Graph.EdgeEndpoint<N, E>> getTraversableAdjacentEdgesTo() { - final Set<Graph.EdgeEndpoint<PA, N, E>> adjacentEdges = new HashSet<Graph.EdgeEndpoint<PA, N, E>>(); + final Set<Graph.EdgeEndpoint<N, E>> adjacentEdges = new HashSet<Graph.EdgeEndpoint<N, E>>(); for(Endpoint<? extends N> sourceEndpoint : this.getTarget().getEndPoints()) if( sourceEndpoint.getTraversableNeighborsFrom().size() > 0 ) for( NEP adjacentNode : AbstractAdjacencyGraph.this.getNodeEndpoints(sourceEndpoint.getTarget())) - for( Graph.EdgeEndpoint<PA, N, E> adjacentEdge : AbstractAdjacencyGraph.this.getAdjacentEdgeEndPoint(adjacentNode) ) + for( Graph.EdgeEndpoint<N, E> adjacentEdge : AbstractAdjacencyGraph.this.getAdjacentEdgeEndPoint(adjacentNode) ) if( adjacentEdge.getTarget().getTraversableFrom(adjacentNode.getTarget()).size() > 0 ) adjacentEdges.add(adjacentEdge); @@ -1109,14 +1102,14 @@ public abstract class AbstractAdjacencyGraph< } @Override - public Set<Graph.EdgeEndpoint<PA, N, E>> getTraversableAdjacentEdgesFrom() + public Set<Graph.EdgeEndpoint<N, E>> getTraversableAdjacentEdgesFrom() { - final Set<Graph.EdgeEndpoint<PA, N, E>> adjacentEdges = new HashSet<Graph.EdgeEndpoint<PA, N, E>>(); + final Set<Graph.EdgeEndpoint<N, E>> adjacentEdges = new HashSet<Graph.EdgeEndpoint<N, E>>(); for(Endpoint<? extends N> sourceEndpoint : this.getTarget().getEndPoints()) if( sourceEndpoint.getTraversableNeighborsTo().size() > 0 ) for( NEP adjacentNode : AbstractAdjacencyGraph.this.getNodeEndpoints(sourceEndpoint.getTarget())) - for( Graph.EdgeEndpoint<PA, N, E> adjacentEdge : AbstractAdjacencyGraph.this.getAdjacentEdgeEndPoint(adjacentNode) ) + for( Graph.EdgeEndpoint<N, E> adjacentEdge : AbstractAdjacencyGraph.this.getAdjacentEdgeEndPoint(adjacentNode) ) if( adjacentEdge.getTarget().getTraversableTo(adjacentNode.getTarget()).size() > 0 ) adjacentEdges.add(adjacentEdge); @@ -1124,9 +1117,9 @@ public abstract class AbstractAdjacencyGraph< } @Override - public Set<Graph.NodeEndpoint<PA, N, E>> getTraversableAdjacentNodesTo() + public Set<Graph.NodeEndpoint<N, E>> getTraversableAdjacentNodesTo() { - final Set<Graph.NodeEndpoint<PA, N, E>> adjacentNodes = new HashSet<Graph.NodeEndpoint<PA, N, E>>(); + final Set<Graph.NodeEndpoint<N, E>> adjacentNodes = new HashSet<Graph.NodeEndpoint<N, E>>(); for(Endpoint<? extends N> sourceEndpoint : this.getTarget().getEndPoints()) if( sourceEndpoint.getTraversableNeighborsFrom().size() > 0 ) @@ -1136,9 +1129,9 @@ public abstract class AbstractAdjacencyGraph< } @Override - public Set<Graph.NodeEndpoint<PA, N, E>> getTraversableAdjacentNodesFrom() + public Set<Graph.NodeEndpoint<N, E>> getTraversableAdjacentNodesFrom() { - final Set<Graph.NodeEndpoint<PA, N, E>> adjacentNodes = new HashSet<Graph.NodeEndpoint<PA, N, E>>(); + final Set<Graph.NodeEndpoint<N, E>> adjacentNodes = new HashSet<Graph.NodeEndpoint<N, E>>(); for(Endpoint<? extends N> sourceEndpoint : this.getTarget().getEndPoints()) if( sourceEndpoint.getTraversableNeighborsTo().size() > 0 ) diff --git a/src/main/java/com/syncleus/dann/graph/AssignableGraph.java b/src/main/java/com/syncleus/dann/graph/AssignableGraph.java index b2642989..96270938 100644 --- a/src/main/java/com/syncleus/dann/graph/AssignableGraph.java +++ b/src/main/java/com/syncleus/dann/graph/AssignableGraph.java @@ -18,9 +18,6 @@ ******************************************************************************/ package com.syncleus.dann.graph; -import java.util.Set; -import com.syncleus.dann.neural.OutputNeuron; - public interface AssignableGraph<N, E extends Edge<N>> extends Graph<N,E>, MutableEdge<Object> //public interface AssignableGraph<P extends Edge<N>, N extends P, E extends P> extends Graph<N,E>, Edge<P>, MutableEdge<P> //public interface AssignableGraph<P extends AssignableGraph.Foo, N extends P, E extends Edge<N> & AssignableGraph.Foo> extends Graph<N,E>, Edge<P>, MutableEdge<P> @@ -41,11 +38,11 @@ public interface AssignableGraph<N, E extends Edge<N>> extends Graph<N,E>, Mutab */ - interface NodeEndpoint<ON, MN extends ON, OE extends Edge<? extends ON>> extends Graph.NodeEndpoint<ON,MN,OE>, MutableEdge.Endpoint<Object, MN> + interface NodeEndpoint<ON, MN extends ON, OE extends Edge<? extends ON>> extends Graph.NodeEndpoint<MN,OE>, MutableEdge.Endpoint<Object, MN> { }; - interface EdgeEndpoint<ON, OE extends Edge<? extends ON>, ME extends OE> extends Graph.EdgeEndpoint<ON, OE, ME>, MutableEdge.Endpoint<Object, ME> + interface EdgeEndpoint<ON, OE extends Edge<? extends ON>, ME extends OE> extends Graph.EdgeEndpoint<OE, ME>, MutableEdge.Endpoint<Object, ME> { }; diff --git a/src/main/java/com/syncleus/dann/graph/Graph.java b/src/main/java/com/syncleus/dann/graph/Graph.java index b6229148..f26c8fca 100644 --- a/src/main/java/com/syncleus/dann/graph/Graph.java +++ b/src/main/java/com/syncleus/dann/graph/Graph.java @@ -18,9 +18,7 @@ ******************************************************************************/ package com.syncleus.dann.graph; -import javax.management.OperationsException; import com.syncleus.dann.graph.context.ContextReporter; -import com.syncleus.dann.neural.OutputNeuron; import java.io.Serializable; import java.util.Set; @@ -41,83 +39,40 @@ public interface Graph< PA, N extends PA, E extends Edge<N,? extends Edge.Endpoint<N>>, - NEP extends Graph.NodeEndpoint<PA, N, E>, - EEP extends Graph.EdgeEndpoint<PA, N, E> - > extends Edge<PA,Graph.Endpoint<PA,N,E,PA>>, Serializable, Cloneable, ContextReporter + NEP extends Graph.NodeEndpoint<N, E>, + EEP extends Graph.EdgeEndpoint<N, E> + > extends Edge<PA,Graph.Endpoint<N,E,PA>>, Serializable, Cloneable, ContextReporter { -/* interface Endpoint< - PA - > extends Edge.Endpoint<PA> - { - Set<Graph.Endpoint<PA>> getAdjacent(); - Set<Graph.Endpoint<PA>> getTraversableAdjacentTo(); - Set<Graph.Endpoint<PA>> getTraversableAdjacentFrom(); - }; - - interface NodeEndpoint< - PA, - ON extends PA, - OE extends Edge<ON,? extends Edge.Endpoint<? extends ON>> - > extends Graph.Endpoint<ON> - { - Set<Graph.NodeEndpoint<PA, ON, OE>> getAdjacentNodes(); - Set<Graph.NodeEndpoint<PA, ON, OE>> getTraversableAdjacentNodesTo(); - Set<Graph.NodeEndpoint<PA, ON, OE>> getTraversableAdjacentNodesFrom(); - - Set<Graph.EdgeEndpoint<PA, ON, OE>> getAdjacentEdges(); - Set<Graph.EdgeEndpoint<PA, ON, OE>> getTraversableAdjacentEdgesTo(); - Set<Graph.EdgeEndpoint<PA, ON, OE>> getTraversableAdjacentEdgesFrom(); - }; - - interface EdgeEndpoint< - PA, - ON extends PA, - OE extends Edge<ON,? extends Edge.Endpoint<? extends ON>> - > extends Graph.Endpoint<OE> - { - Set<Graph.EdgeEndpoint<PA, ON, OE>> getAdjacentEdges(); - Set<Graph.EdgeEndpoint<PA, ON, OE>> getTraversableAdjacentEdgesTo(); - Set<Graph.EdgeEndpoint<PA, ON, OE>> getTraversableAdjacentEdgesFrom(); - - Set<Graph.NodeEndpoint<PA, ON, OE>> getAdjacentNodes(); - Set<Graph.NodeEndpoint<PA, ON, OE>> getTraversableAdjacentNodesTo(); - Set<Graph.NodeEndpoint<PA, ON, OE>> getTraversableAdjacentNodesFrom(); - }; -*/ - interface Endpoint< - PA, - ON extends PA, + ON, OE extends Edge<ON,? extends Edge.Endpoint<? extends ON>>, T > extends Edge.Endpoint<T> { - Set<Graph.Endpoint<PA,ON,OE,T>> getAdjacent(); - Set<Graph.Endpoint<PA,ON,OE,T>> getTraversableAdjacentTo(); - Set<Graph.Endpoint<PA,ON,OE,T>> getTraversableAdjacentFrom(); + Set<Graph.Endpoint<ON,OE,T>> getAdjacent(); + Set<Graph.Endpoint<ON,OE,T>> getTraversableAdjacentTo(); + Set<Graph.Endpoint<ON,OE,T>> getTraversableAdjacentFrom(); - Set<Graph.NodeEndpoint<PA, ON, OE>> getAdjacentNodes(); - Set<Graph.NodeEndpoint<PA, ON, OE>> getTraversableAdjacentNodesTo(); - Set<Graph.NodeEndpoint<PA, ON, OE>> getTraversableAdjacentNodesFrom(); + Set<Graph.NodeEndpoint<ON, OE>> getAdjacentNodes(); + Set<Graph.NodeEndpoint<ON, OE>> getTraversableAdjacentNodesTo(); + Set<Graph.NodeEndpoint<ON, OE>> getTraversableAdjacentNodesFrom(); - Set<Graph.EdgeEndpoint<PA, ON, OE>> getAdjacentEdges(); - Set<Graph.EdgeEndpoint<PA, ON, OE>> getTraversableAdjacentEdgesTo(); - Set<Graph.EdgeEndpoint<PA, ON, OE>> getTraversableAdjacentEdgesFrom(); + Set<Graph.EdgeEndpoint<ON, OE>> getAdjacentEdges(); + Set<Graph.EdgeEndpoint<ON, OE>> getTraversableAdjacentEdgesTo(); + Set<Graph.EdgeEndpoint<ON, OE>> getTraversableAdjacentEdgesFrom(); }; interface NodeEndpoint< - PA, - ON extends PA, - OE extends Edge<ON,? extends Edge.Endpoint<? extends ON>> - > extends Graph.Endpoint<PA,ON,OE,ON> + ON, + OE extends Edge<ON,? extends Edge.Endpoint<? extends ON>> + > extends Graph.Endpoint<ON,OE,ON> { }; interface EdgeEndpoint< - PA, - ON extends PA, - OE extends Edge<ON,? extends Edge.Endpoint<? extends ON>> - > extends Graph.Endpoint<PA,ON,OE,OE> + ON, + OE extends Edge<ON,? extends Edge.Endpoint<? extends ON>> + > extends Graph.Endpoint<ON,OE,OE> { }; diff --git a/src/main/java/com/syncleus/dann/graph/MutableAdjacencyGraph.java b/src/main/java/com/syncleus/dann/graph/MutableAdjacencyGraph.java index 8e1488ee..134e2113 100644 --- a/src/main/java/com/syncleus/dann/graph/MutableAdjacencyGraph.java +++ b/src/main/java/com/syncleus/dann/graph/MutableAdjacencyGraph.java @@ -19,7 +19,6 @@ package com.syncleus.dann.graph; import java.util.*; -import com.syncleus.dann.graph.context.ContextGraphElement; public class MutableAdjacencyGraph<N, E extends Edge<N>> extends AbstractAdjacencyGraph<N, E> implements MutableGraph<N, E> { @@ -77,22 +76,22 @@ public class MutableAdjacencyGraph<N, E extends Edge<N>> extends AbstractAdjacen return (MutableAdjacencyGraph<N, E>) super.clone(); } */ - final private Map<NodeEndpoint<N,N,E>,EdgeEndpoint<N, E, ? extends E>> nodeAdjacency = new HashMap<NodeEndpoint<N, N, E>, EdgeEndpoint<N, E, ? extends E>>(); + final private Map<NodeEndpoint<N,E>,EdgeEndpoint<E, ? extends E>> nodeAdjacency = new HashMap<NodeEndpoint<N, E>, EdgeEndpoint<E, ? extends E>>(); @Override - protected Set<EdgeEndpoint<N, E, ? extends E>> getAdjacentEdgeEndPoint(Graph.NodeEndpoint<N, ? extends N, E> nodeEndPoint) + protected Set<EdgeEndpoint<E, ? extends E>> getAdjacentEdgeEndPoint(Graph.NodeEndpoint<? extends N, E> nodeEndPoint) { return null; //To change body of implemented methods use File | Settings | File Templates. } @Override - public Set<? extends EdgeEndpoint<N, E, ? extends E>> getEdgeEndpoints() + public Set<? extends EdgeEndpoint<E, ? extends E>> getEdgeEndpoints() { return null; //To change body of implemented methods use File | Settings | File Templates. } @Override - public Set<? extends NodeEndpoint<N, ? extends N, E>> getNodeEndpoints() + public Set<? extends NodeEndpoint<? extends N, E>> getNodeEndpoints() { return null; //To change body of implemented methods use File | Settings | File Templates. } -- GitLab