diff --git a/src/main/java/com/syncleus/dann/graph/AbstractAdjacencyGraph.java b/src/main/java/com/syncleus/dann/graph/AbstractAdjacencyGraph.java
index 27502ea6a8c1f23c7c6416c1e29fc889b7c2fa32..ab117ccbb156b8aecc040dce67b93148c81290a8 100644
--- a/src/main/java/com/syncleus/dann/graph/AbstractAdjacencyGraph.java
+++ b/src/main/java/com/syncleus/dann/graph/AbstractAdjacencyGraph.java
@@ -36,10 +36,10 @@ import java.util.*;
@XmlJavaTypeAdapter( com.syncleus.dann.xml.XmlSerializableAdapter.class )
public abstract class AbstractAdjacencyGraph<
N,
- E extends Edge<N,? extends Edge.Endpoint<? extends N>>,
+ E extends Cloud<N,? extends Cloud.Endpoint<? extends N>>,
NEP extends Graph.NodeEndpoint<N, E>,
EEP extends Graph.EdgeEndpoint<N, E>
- > extends AbstractEdge<Object,Graph.Endpoint<N,E,?>> implements Graph<N, E, NEP, EEP>
+ > extends AbstractCloud<Object,Graph.Endpoint<N,E,?>> implements Graph<N, E, NEP, EEP>
{
private static final Logger LOGGER = Logger.getLogger(AbstractAdjacencyGraph.class);
// private Set<E> edges;
@@ -140,7 +140,7 @@ public abstract class AbstractAdjacencyGraph<
this.adjacentEdges.put(attemptNode, new HashSet<E>());
}
- //Add the edges checking for Edge Context.
+ //Add the edges checking for Cloud Context.
if( this.contextEnabled )
{
this.edges = new HashSet<E>(attemptEdges.size());
@@ -268,7 +268,7 @@ public abstract class AbstractAdjacencyGraph<
* Gets the traversable nodes adjacent to the given node.
* @param node The whose traversable neighbors are to be returned.
* @return The traversable nodes adjacent to the given node
- * @see com.syncleus.dann.graph.Edge#getTraversableNodes(Object)
+ * @see com.syncleus.dann.graph.Cloud#getTraversableNodes(Object)
*
@Override
public List<N> getTraversableAdjacentNodes(final N node)
@@ -283,7 +283,7 @@ public abstract class AbstractAdjacencyGraph<
* Gets the traversable edges from this node.
* @param node edges returned will be traversable from this node.
* @return The traversable edges from the given node
- * @see com.syncleus.dann.graph.Edge#isTraversable(Object)
+ * @see com.syncleus.dann.graph.Cloud#isTraversable(Object)
*
@Override
public Set<E> getTraversableAdjacentEdges(final N node)
@@ -475,7 +475,7 @@ public abstract class AbstractAdjacencyGraph<
cloneGraph.adjacentEdges.put(attemptNode, new HashSet<E>());
}
- //Add the edges checking for Edge Context.
+ //Add the edges checking for Cloud Context.
if( this.contextEnabled )
{
cloneGraph.edges = new HashSet<E>(this.getEdges().size());
@@ -555,12 +555,12 @@ public abstract class AbstractAdjacencyGraph<
}
@Override
- public Set<EEP> getEdgeEndpoints(Edge<?,? extends Edge.Endpoint<?>> edge)
+ public Set<EEP> getEdgeEndpoints(Cloud<?,? extends Cloud.Endpoint<?>> cloud)
{
Set<EEP> matchingEndpoints = new HashSet<EEP>();
for(final EEP endpoint : this.getEdgeEndpoints() )
{
- if( endpoint.getTarget().equals(edge))
+ if( endpoint.getTarget().equals(cloud))
matchingEndpoints.add(endpoint);
}
@@ -671,7 +671,7 @@ public abstract class AbstractAdjacencyGraph<
}
@Override
- public Set<E> getTraversableEdgesFrom(Edge<?,? extends Edge.Endpoint<?>> source)
+ public Set<E> getTraversableEdgesFrom(Cloud<?,? extends Cloud.Endpoint<?>> source)
{
if( !this.getEdges().contains(source) )
throw new IllegalArgumentException("source does not belong to this graph");
@@ -701,7 +701,7 @@ public abstract class AbstractAdjacencyGraph<
}
@Override
- public Set<E> getTraversableEdgesTo(Edge<?,? extends Edge.Endpoint<?>> destination)
+ public Set<E> getTraversableEdgesTo(Cloud<?,? extends Cloud.Endpoint<?>> destination)
{
if( !this.getEdges().contains(destination) )
throw new IllegalArgumentException("source does not belong to this graph");
@@ -731,7 +731,7 @@ public abstract class AbstractAdjacencyGraph<
}
@Override
- public Set<N> getTraversableNodesFrom(Edge<?,? extends Edge.Endpoint<?>> source)
+ public Set<N> getTraversableNodesFrom(Cloud<?,? extends Cloud.Endpoint<?>> source)
{
if( !this.getEdges().contains(source) )
throw new IllegalArgumentException("source does not belong to this graph");
@@ -761,7 +761,7 @@ public abstract class AbstractAdjacencyGraph<
}
@Override
- public Set<N> getTraversableNodesTo(Edge<?,? extends Edge.Endpoint<?>> destination)
+ public Set<N> getTraversableNodesTo(Cloud<?,? extends Cloud.Endpoint<?>> destination)
{
if( !this.getEdges().contains(destination) )
throw new IllegalArgumentException("source does not belong to this graph");
@@ -788,7 +788,7 @@ public abstract class AbstractAdjacencyGraph<
}
@Override
- public Set<E> getTraversableAdjacentEdgesFrom(Edge<?,? extends Edge.Endpoint<?>> source)
+ public Set<E> getTraversableAdjacentEdgesFrom(Cloud<?,? extends Cloud.Endpoint<?>> source)
{
final Set<E> destinationEdges = new HashSet<E>();
@@ -813,7 +813,7 @@ public abstract class AbstractAdjacencyGraph<
}
@Override
- public Set<E> getTraversableAdjacentEdgesTo(Edge<?,? extends Edge.Endpoint<?>> destination)
+ public Set<E> getTraversableAdjacentEdgesTo(Cloud<?,? extends Cloud.Endpoint<?>> destination)
{
final Set<E> destinationEdges = new HashSet<E>();
@@ -838,7 +838,7 @@ public abstract class AbstractAdjacencyGraph<
}
@Override
- public Set<N> getTraversableAdjacentNodesFrom(Edge<?,? extends Edge.Endpoint<?>> source)
+ public Set<N> getTraversableAdjacentNodesFrom(Cloud<?,? extends Cloud.Endpoint<?>> source)
{
final Set<N> destinationNodes = new HashSet<N>();
@@ -863,7 +863,7 @@ public abstract class AbstractAdjacencyGraph<
}
@Override
- public Set<N> getTraversableAdjacentNodesTo(Edge<?,? extends Edge.Endpoint<?>> destination)
+ public Set<N> getTraversableAdjacentNodesTo(Cloud<?,? extends Cloud.Endpoint<?>> destination)
{
final Set<N> sourceNodes = new HashSet<N>();
@@ -978,7 +978,7 @@ public abstract class AbstractAdjacencyGraph<
}
*/
- protected abstract class AbstractNodeEndpoint extends AbstractEdge<? super N,Graph.Endpoint<N,E,? super N>>.AbstractEndpoint<N> implements Graph.NodeEndpoint<N,E>
+ protected abstract class AbstractNodeEndpoint extends AbstractCloud<? super N,Graph.Endpoint<N,E,? super N>>.AbstractEndpoint<N> implements Graph.NodeEndpoint<N,E>
{
protected AbstractNodeEndpoint()
{
@@ -1014,8 +1014,8 @@ public abstract class AbstractAdjacencyGraph<
final Set<Graph.NodeEndpoint<N, E>> adjacentNodes = new HashSet<Graph.NodeEndpoint<N, E>>();
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() )
+ for( Cloud.Endpoint<? extends N> nodeEndpoint : adjacentEndpoint.getTarget().getEndpoints(this.getTarget()) )
+ for( Cloud.Endpoint<? extends N> adjacentNodeEndpoint : nodeEndpoint.getNeighbors() )
adjacentNodes.addAll(AbstractAdjacencyGraph.this.getNodeEndpoints(adjacentNodeEndpoint.getTarget()));
return Collections.<Graph.NodeEndpoint<N, E>>unmodifiableSet(adjacentNodes);
@@ -1027,8 +1027,8 @@ public abstract class AbstractAdjacencyGraph<
final Set<Graph.NodeEndpoint<N, E>> adjacentNodes = new HashSet<Graph.NodeEndpoint<N, E>>();
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() )
+ for( Cloud.Endpoint<? extends N> nodeEndpoint : adjacentEndpoint.getTarget().getEndpoints(this.getTarget()) )
+ for( Cloud.Endpoint<? extends N> adjacentNodeEndpoint : nodeEndpoint.getTraversableNeighborsTo() )
adjacentNodes.addAll(AbstractAdjacencyGraph.this.getNodeEndpoints(adjacentNodeEndpoint.getTarget()));
return Collections.unmodifiableSet(adjacentNodes);
@@ -1040,8 +1040,8 @@ public abstract class AbstractAdjacencyGraph<
final Set<Graph.NodeEndpoint<N, E>> adjacentNodes = new HashSet<Graph.NodeEndpoint<N, E>>();
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() )
+ for( Cloud.Endpoint<? extends N> nodeEndpoint : adjacentEndpoint.getTarget().getEndpoints(this.getTarget()) )
+ for( Cloud.Endpoint<? extends N> adjacentNodeEndpoint : nodeEndpoint.getTraversableNeighborsFrom() )
adjacentNodes.addAll(AbstractAdjacencyGraph.this.getNodeEndpoints(adjacentNodeEndpoint.getTarget()));
return Collections.unmodifiableSet(adjacentNodes);
@@ -1053,7 +1053,7 @@ public abstract class AbstractAdjacencyGraph<
final Set<Graph.EdgeEndpoint<N, E>> adjacentEdges = new HashSet<Graph.EdgeEndpoint<N, E>>();
for(Graph.EdgeEndpoint<N, E> adjacentEndpoint : this.getAdjacentEdges() )
- for( Edge.Endpoint<? extends N> nodeEndpoint : adjacentEndpoint.getTarget().getEndpoints(this.getTarget()) )
+ for( Cloud.Endpoint<? extends N> nodeEndpoint : adjacentEndpoint.getTarget().getEndpoints(this.getTarget()) )
if( nodeEndpoint.isTraversable() )
adjacentEdges.add(adjacentEndpoint);
@@ -1066,7 +1066,7 @@ public abstract class AbstractAdjacencyGraph<
final Set<Graph.EdgeEndpoint<N, E>> adjacentEdges = new HashSet<Graph.EdgeEndpoint<N, E>>();
for(Graph.EdgeEndpoint<N, E> adjacentEndpoint : this.getAdjacentEdges() )
- for( Edge.Endpoint<? extends N> nodeEndpoint : adjacentEndpoint.getTarget().getEndpoints(this.getTarget()) )
+ for( Cloud.Endpoint<? extends N> nodeEndpoint : adjacentEndpoint.getTarget().getEndpoints(this.getTarget()) )
if( nodeEndpoint.isTraversable() )
adjacentEdges.add(adjacentEndpoint);
@@ -1074,7 +1074,7 @@ public abstract class AbstractAdjacencyGraph<
}
};
- protected abstract class AbstractEdgeEndpoint extends AbstractEdge<? super E,Graph.Endpoint<N,E,? super E>>.AbstractEndpoint<E> implements Graph.EdgeEndpoint<N,E>
+ protected abstract class AbstractEdgeEndpoint extends AbstractCloud<? super E,Graph.Endpoint<N,E,? super E>>.AbstractEndpoint<E> implements Graph.EdgeEndpoint<N,E>
{
protected AbstractEdgeEndpoint()
{
diff --git a/src/main/java/com/syncleus/dann/graph/AbstractBidirectedEdge.java b/src/main/java/com/syncleus/dann/graph/AbstractBidirectedEdge.java
index fb697df6ff9361fa39f416ab120539dd9a6b5783..4a30fc853eb213fe1cc2cfcd91361362871a46d4 100644
--- a/src/main/java/com/syncleus/dann/graph/AbstractBidirectedEdge.java
+++ b/src/main/java/com/syncleus/dann/graph/AbstractBidirectedEdge.java
@@ -24,7 +24,7 @@ import com.syncleus.dann.xml.NamedValueXml;
import com.syncleus.dann.xml.Namer;
import com.syncleus.dann.xml.XmlSerializable;
-public abstract class AbstractBidirectedEdge<N, LN extends N, RN extends N> extends AbstractEdge<N> implements MixableBidirectedEdge<N, LN,RN>
+public abstract class AbstractBidirectedEdge<N, LN extends N, RN extends N> extends AbstractCloud<N> implements MixableBidirectedEdge<N, LN,RN>
{
@Override
public abstract AbstractEndpoint<LN,RN> getLeftEndPoint();
@@ -322,7 +322,7 @@ public abstract class AbstractBidirectedEdge<N, LN extends N, RN extends N> exte
};
}
- protected abstract class AbstractEndpoint<EN extends N, ON extends N> extends AbstractEdge<N>.AbstractEndpoint<EN> implements MixableBidirectedEdge.Endpoint<N, EN,ON>
+ protected abstract class AbstractEndpoint<EN extends N, ON extends N> extends AbstractCloud<N>.AbstractEndpoint<EN> implements MixableBidirectedEdge.Endpoint<N, EN,ON>
{
private EN node = null;
private Direction direction;
diff --git a/src/main/java/com/syncleus/dann/graph/AbstractEdge.java b/src/main/java/com/syncleus/dann/graph/AbstractCloud.java
similarity index 79%
rename from src/main/java/com/syncleus/dann/graph/AbstractEdge.java
rename to src/main/java/com/syncleus/dann/graph/AbstractCloud.java
index 364d32006c09269c9bb7b214050b6a2cbf921d97..0493659e97cc8cd02ef4b82ced84036df410f390 100644
--- a/src/main/java/com/syncleus/dann/graph/AbstractEdge.java
+++ b/src/main/java/com/syncleus/dann/graph/AbstractCloud.java
@@ -27,12 +27,12 @@ import com.syncleus.dann.xml.Namer;
import com.syncleus.dann.xml.XmlSerializable;
import org.apache.log4j.Logger;
-public abstract class AbstractEdge<
+public abstract class AbstractCloud<
T,
- EP extends Edge.Endpoint<? extends T>
- > implements Edge<T,EP>
+ EP extends Cloud.Endpoint<? extends T>
+ > implements Cloud<T,EP>
{
- private static final Logger LOGGER = Logger.getLogger(AbstractEdge.class);
+ private static final Logger LOGGER = Logger.getLogger(AbstractCloud.class);
@Override
public boolean contains(final Object node)
@@ -87,7 +87,7 @@ public abstract class AbstractEdge<
{
final Set<T> nodes = new HashSet<T>();
for( final EP sourceEndpoint : this.getEndpoints(source) )
- for( final Edge.Endpoint<? extends T> fromEndpoint : sourceEndpoint.getNeighbors())
+ for( final Cloud.Endpoint<? extends T> fromEndpoint : sourceEndpoint.getNeighbors())
nodes.add(fromEndpoint.getTarget());
return Collections.unmodifiableSet(nodes);
@@ -98,7 +98,7 @@ public abstract class AbstractEdge<
{
final Set<T> nodes = new HashSet<T>();
for( final EP sourceEndpoint : this.getEndpoints(source) )
- for( final Edge.Endpoint<? extends T> fromEndpoint : sourceEndpoint.getTraversableNeighborsFrom())
+ for( final Cloud.Endpoint<? extends T> fromEndpoint : sourceEndpoint.getTraversableNeighborsFrom())
nodes.add(fromEndpoint.getTarget());
return Collections.unmodifiableSet(nodes);
@@ -109,7 +109,7 @@ public abstract class AbstractEdge<
{
final Set<T> nodes = new HashSet<T>();
for( final EP destinationEndpoint : this.getEndpoints(destination) )
- for( final Edge.Endpoint<? extends T> fromEndpoint : destinationEndpoint.getTraversableNeighborsTo())
+ for( final Cloud.Endpoint<? extends T> fromEndpoint : destinationEndpoint.getTraversableNeighborsTo())
nodes.add(fromEndpoint.getTarget());
return Collections.unmodifiableSet(nodes);
@@ -133,16 +133,16 @@ public abstract class AbstractEdge<
}
@Override
- protected AbstractEdge<T,EP> clone()
+ protected AbstractCloud<T,EP> clone()
{
try
{
- return (AbstractEdge<T,EP>) super.clone();
+ return (AbstractCloud<T,EP>) super.clone();
}
catch(CloneNotSupportedException caught)
{
- LOGGER.error("Edge was unexpectidly not cloneable", caught);
- throw new Error("Edge was unexpectidly not cloneable", caught);
+ LOGGER.error("Cloud was unexpectidly not cloneable", caught);
+ throw new Error("Cloud was unexpectidly not cloneable", caught);
}
}
@@ -213,34 +213,34 @@ public abstract class AbstractEdge<
}
}
- protected abstract class AbstractEndpoint<T> implements Edge.Endpoint<T>
+ protected abstract class AbstractEndpoint<T> implements Cloud.Endpoint<T>
{
protected AbstractEndpoint()
{
}
@Override
- public Set<Edge.Endpoint<? extends T>> getNeighbors()
+ public Set<Cloud.Endpoint<? extends T>> getNeighbors()
{
return new NeighborSet();
}
@Override
- public Set<Edge.Endpoint<? extends T>> getTraversableNeighborsTo()
+ public Set<Cloud.Endpoint<? extends T>> getTraversableNeighborsTo()
{
- final Set<Edge.Endpoint<? extends T>> traversables = new HashSet<Edge.Endpoint<? extends T>>();
- for(Edge.Endpoint<? extends T> neighbor : this.getNeighbors())
- if( AbstractEdge.this.isTraversable(this.getTarget(),neighbor.getTarget()) )
+ final Set<Cloud.Endpoint<? extends T>> traversables = new HashSet<Cloud.Endpoint<? extends T>>();
+ for(Cloud.Endpoint<? extends T> neighbor : this.getNeighbors())
+ if( AbstractCloud.this.isTraversable(this.getTarget(),neighbor.getTarget()) )
traversables.add(neighbor);
return Collections.unmodifiableSet(traversables);
}
@Override
- public Set<Edge.Endpoint<? extends T>> getTraversableNeighborsFrom()
+ public Set<Cloud.Endpoint<? extends T>> getTraversableNeighborsFrom()
{
- final Set<Edge.Endpoint<? extends T>> traversables = new HashSet<Edge.Endpoint<? extends T>>();
- for(Edge.Endpoint<? extends T> neighbor : this.getNeighbors())
- if( AbstractEdge.this.isTraversable(this.getTarget(),neighbor.getTarget()) )
+ final Set<Cloud.Endpoint<? extends T>> traversables = new HashSet<Cloud.Endpoint<? extends T>>();
+ for(Cloud.Endpoint<? extends T> neighbor : this.getNeighbors())
+ if( AbstractCloud.this.isTraversable(this.getTarget(),neighbor.getTarget()) )
traversables.add(neighbor);
return Collections.unmodifiableSet(traversables);
}
@@ -252,12 +252,12 @@ public abstract class AbstractEdge<
}
@Override
- public boolean isTraversable(Edge.Endpoint<?> destination)
+ public boolean isTraversable(Cloud.Endpoint<?> destination)
{
- return AbstractEdge.this.isTraversable(this.getTarget(), destination.getTarget());
+ return AbstractCloud.this.isTraversable(this.getTarget(), destination.getTarget());
}
- private class NeighborSet implements Set<Edge.Endpoint<? extends T>>
+ private class NeighborSet implements Set<Cloud.Endpoint<? extends T>>
{
@Override
public int size()
@@ -281,7 +281,7 @@ public abstract class AbstractEdge<
}
@Override
- public Iterator<Edge.Endpoint<? extends T>> iterator()
+ public Iterator<Cloud.Endpoint<? extends T>> iterator()
{
return new NeighborIterator();
}
@@ -303,7 +303,7 @@ public abstract class AbstractEdge<
}
@Override
- public boolean add(Edge.Endpoint<? extends T> nEndpoint)
+ public boolean add(Cloud.Endpoint<? extends T> nEndpoint)
{
throw new UnsupportedOperationException("This set is read-only!");
}
@@ -323,7 +323,7 @@ public abstract class AbstractEdge<
}
@Override
- public boolean addAll(Collection<? extends Edge.Endpoint<? extends T>> c)
+ public boolean addAll(Collection<? extends Cloud.Endpoint<? extends T>> c)
{
throw new UnsupportedOperationException("This set is read-only!");
}
@@ -352,7 +352,7 @@ public abstract class AbstractEdge<
throw new UnsupportedOperationException("This set is read-only!");
}
- private class NeighborIterator implements Iterator<Edge.Endpoint<? extends T>>
+ private class NeighborIterator implements Iterator<Cloud.Endpoint<? extends T>>
{
private int nextLeft = (getEndpoints().size()-1);
final private Iterator<? extends Endpoint<?>> iterator;
@@ -369,13 +369,13 @@ public abstract class AbstractEdge<
}
@Override
- public Edge.Endpoint<T> next()
+ public Cloud.Endpoint<T> next()
{
- Edge.Endpoint<?> nextEndpoint = this.iterator.next();
+ Cloud.Endpoint<?> nextEndpoint = this.iterator.next();
this.nextLeft--;
if( !AbstractEndpoint.this.equals(nextEndpoint) )
- return (Edge.Endpoint<T>) nextEndpoint;
+ return (Cloud.Endpoint<T>) nextEndpoint;
return next();
}
diff --git a/src/main/java/com/syncleus/dann/graph/AbstractCycle.java b/src/main/java/com/syncleus/dann/graph/AbstractCycle.java
index 6d7d5762295493b520e2025de4b4b89c7479f14f..5d440b8ab953ed3779e9a6c345e4461af3b6e85e 100644
--- a/src/main/java/com/syncleus/dann/graph/AbstractCycle.java
+++ b/src/main/java/com/syncleus/dann/graph/AbstractCycle.java
@@ -22,7 +22,7 @@ import java.util.List;
// TODO refine the verify and equals method to match a cycles definition of
// unique. i.e. no repeat in nodes or edges, sequence matters but starting point doesnt.
-public abstract class AbstractCycle<N, E extends Edge<N>> extends AbstractWalk<N, E> implements Cycle<N, E>
+public abstract class AbstractCycle<N, E extends Cloud<N>> extends AbstractWalk<N, E> implements Cycle<N, E>
{
@Override
protected boolean verify(final List<N> nodeSteps, final List<E> edgeSteps)
@@ -30,7 +30,7 @@ public abstract class AbstractCycle<N, E extends Edge<N>> extends AbstractWalk<N
return (super.verify(nodeSteps, edgeSteps)) && (com.syncleus.dann.graph.AbstractCycle.verifyUtility(nodeSteps, edgeSteps));
}
- static <N, E extends Edge<? extends N>> boolean verifyUtility(final List<N> nodeSteps, final List<E> edgeSteps)
+ static <N, E extends Cloud<? extends N>> boolean verifyUtility(final List<N> nodeSteps, final List<E> edgeSteps)
{
if( nodeSteps.size() < 2 )
throw new IllegalArgumentException("Wrong number of nodes or steps");
diff --git a/src/main/java/com/syncleus/dann/graph/AbstractHyperEdge.java b/src/main/java/com/syncleus/dann/graph/AbstractHyperEdge.java
index 671f103c61c0d5623056ae55c337cfaf7e3c76fd..b2283cd29eb5b6d0c99a7b08df1d7e3240a62867 100644
--- a/src/main/java/com/syncleus/dann/graph/AbstractHyperEdge.java
+++ b/src/main/java/com/syncleus/dann/graph/AbstractHyperEdge.java
@@ -18,7 +18,7 @@
******************************************************************************/
package com.syncleus.dann.graph;
-public abstract class AbstractHyperEdge<N> extends AbstractEdge<N> implements HyperEdge<N>
+public abstract class AbstractHyperEdge<N> extends AbstractCloud<N> implements HyperEdge<N>
{
private static final long serialVersionUID = -3657973823101515199L;
@@ -153,7 +153,7 @@ public abstract class AbstractHyperEdge<N> extends AbstractEdge<N> implements Hy
*/
}
- protected abstract class AbstractEndpoint<EN extends N, ON extends N> extends AbstractEdge.AbstractEndpoint<EN> implements HyperEdge.Endpoint<N, EN>
+ protected abstract class AbstractEndpoint<EN extends N, ON extends N> extends AbstractCloud.AbstractEndpoint<EN> implements HyperEdge.Endpoint<N, EN>
{
private EN node = null;
diff --git a/src/main/java/com/syncleus/dann/graph/AbstractMutableAdjacencyGraph.java b/src/main/java/com/syncleus/dann/graph/AbstractMutableAdjacencyGraph.java
index aa446f41e775500e3c004b29add30fffecffc801..2c268fb9e947d20b61bc29c0cff8993c8c569f94 100644
--- a/src/main/java/com/syncleus/dann/graph/AbstractMutableAdjacencyGraph.java
+++ b/src/main/java/com/syncleus/dann/graph/AbstractMutableAdjacencyGraph.java
@@ -22,7 +22,7 @@ import java.util.*;
public abstract class AbstractMutableAdjacencyGraph<
N,
- E extends Edge<N,? extends Edge.Endpoint<N>>,
+ E extends Cloud<N,? extends Cloud.Endpoint<N>>,
NEP extends MutableGraph.NodeEndpoint<N, E>,
EEP extends MutableGraph.EdgeEndpoint<N, E>
>
@@ -109,7 +109,7 @@ public abstract class AbstractMutableAdjacencyGraph<
}
@Override
- public Set<EEP> leaveNode(MutableGraph.NodeEndpoint<?, ? extends Edge<?,? extends Edge.Endpoint<?>>> endpoint) throws InvalidGraphException
+ public Set<EEP> leaveNode(MutableGraph.NodeEndpoint<?, ? extends Cloud<?,? extends Endpoint<?>>> endpoint) throws InvalidGraphException
{
if( !this.adjacency.getLeftKeys().contains(endpoint) )
throw new IllegalArgumentException("endpoint is not an enpoint in this graph");
@@ -123,10 +123,10 @@ public abstract class AbstractMutableAdjacencyGraph<
}
@Override
- public Set<EEP> leaveNodes(Set<? extends MutableGraph.NodeEndpoint<?, ? extends Edge<?,? extends Edge.Endpoint<?>>>> nodeEndpoints) throws InvalidGraphException
+ public Set<EEP> leaveNodes(Set<? extends MutableGraph.NodeEndpoint<?, ? extends Cloud<?,? extends Endpoint<?>>>> nodeEndpoints) throws InvalidGraphException
{
final Set<EEP> edgeEndpoints = new HashSet<EEP>();
- for(MutableGraph.NodeEndpoint<?, ? extends Edge<?,? extends Edge.Endpoint<?>>> node : nodeEndpoints)
+ for(MutableGraph.NodeEndpoint<?, ? extends Cloud<?,? extends Endpoint<?>>> node : nodeEndpoints)
edgeEndpoints.addAll(this.leaveNode(node));
return Collections.unmodifiableSet(edgeEndpoints);
}
@@ -172,7 +172,7 @@ public abstract class AbstractMutableAdjacencyGraph<
}
@Override
- public void leaveEdge(MutableGraph.EdgeEndpoint<?, ? extends Edge<?,? extends Edge.Endpoint<?>>> edgeEndpoint) throws InvalidGraphException
+ public void leaveEdge(MutableGraph.EdgeEndpoint<?, ? extends Cloud<?,? extends Endpoint<?>>> edgeEndpoint) throws InvalidGraphException
{
if( !this.adjacency.getRightKeys().contains(edgeEndpoint) )
throw new IllegalArgumentException("endpoint is not an enpoint in this graph");
@@ -181,9 +181,9 @@ public abstract class AbstractMutableAdjacencyGraph<
}
@Override
- public void leaveEdges(Set<? extends MutableGraph.EdgeEndpoint<?, ? extends Edge<?,? extends Edge.Endpoint<?>>>> edgeEndpoints) throws InvalidGraphException
+ public void leaveEdges(Set<? extends MutableGraph.EdgeEndpoint<?, ? extends Cloud<?,? extends Endpoint<?>>>> edgeEndpoints) throws InvalidGraphException
{
- for(final MutableGraph.EdgeEndpoint<?, ? extends Edge<?,? extends Edge.Endpoint<?>>> edgeEndpoint : edgeEndpoints)
+ for(final MutableGraph.EdgeEndpoint<?, ? extends Cloud<?,? extends Endpoint<?>>> edgeEndpoint : edgeEndpoints)
this.leaveEdge(edgeEndpoint);
}
diff --git a/src/main/java/com/syncleus/dann/graph/AbstractPath.java b/src/main/java/com/syncleus/dann/graph/AbstractPath.java
index 6781975b2edfdb99217972f8dd799d5222a8ac87..accf83432f26eb3aa75bccf928c5e019858b4772 100644
--- a/src/main/java/com/syncleus/dann/graph/AbstractPath.java
+++ b/src/main/java/com/syncleus/dann/graph/AbstractPath.java
@@ -23,7 +23,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
-public abstract class AbstractPath<N, E extends Edge<N>> extends AbstractWalk<N, E> implements Path<N, E>
+public abstract class AbstractPath<N, E extends Cloud<N>> extends AbstractWalk<N, E> implements Path<N, E>
{
@Override
protected boolean verify(final List<N> nodeSteps, final List<E> edgeSteps)
@@ -31,7 +31,7 @@ public abstract class AbstractPath<N, E extends Edge<N>> extends AbstractWalk<N,
return ((super.verify(nodeSteps, edgeSteps)) && (verifyUtility(nodeSteps, edgeSteps)));
}
- static <N, E extends Edge<N>> boolean verifyUtility(final List<N> nodeSteps, final List<E> edgeSteps)
+ static <N, E extends Cloud<N>> boolean verifyUtility(final List<N> nodeSteps, final List<E> edgeSteps)
{
if( nodeSteps.size() < 2 )
throw new IllegalArgumentException("Wrong number of nodes or steps");
@@ -44,7 +44,7 @@ public abstract class AbstractPath<N, E extends Edge<N>> extends AbstractWalk<N,
return isChain(this);
}
- protected static <N, E extends Edge<N>> boolean isChain(final Path<N, E> path)
+ protected static <N, E extends Cloud<N>> boolean isChain(final Path<N, E> path)
{
final Set<N> uniqueNodes = new HashSet<N>(path.getNodeSteps());
final Set<E> uniqueEdges = new HashSet<E>(path.getSteps());
@@ -59,7 +59,7 @@ public abstract class AbstractPath<N, E extends Edge<N>> extends AbstractWalk<N,
return AbstractPath.isIndependentUtility(this, path);
}
- static <N, E extends Edge<N>> boolean isIndependentUtility(final Path<N, E> firstPath, final Path<N, E> secondPath)
+ static <N, E extends Cloud<N>> boolean isIndependentUtility(final Path<N, E> firstPath, final Path<N, E> secondPath)
{
if( !firstPath.getFirstNode().equals(secondPath.getFirstNode()) )
return false;
diff --git a/src/main/java/com/syncleus/dann/graph/AbstractWalk.java b/src/main/java/com/syncleus/dann/graph/AbstractWalk.java
index b5189de4a5460814b0bb41d1f64ca61b5e13c8a2..61680e4b38178e62b8e15a703d77937aec798a22 100644
--- a/src/main/java/com/syncleus/dann/graph/AbstractWalk.java
+++ b/src/main/java/com/syncleus/dann/graph/AbstractWalk.java
@@ -24,7 +24,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
-public abstract class AbstractWalk<N, E extends Edge<N>> implements Walk<N, E>
+public abstract class AbstractWalk<N, E extends Cloud<N>> implements Walk<N, E>
{
protected boolean verify(final List<N> nodeSteps, final List<E> edgeSteps)
{
diff --git a/src/main/java/com/syncleus/dann/graph/AbstractWeightedEdge.java b/src/main/java/com/syncleus/dann/graph/AbstractWeightedEdge.java
index 195fa3723a4eaf3fcea5305c253d52b0a8abf2ef..e87935a6514aa2ef536b078e197a2c53a940a005 100644
--- a/src/main/java/com/syncleus/dann/graph/AbstractWeightedEdge.java
+++ b/src/main/java/com/syncleus/dann/graph/AbstractWeightedEdge.java
@@ -20,7 +20,7 @@ package com.syncleus.dann.graph;
import java.util.List;
-public abstract class AbstractWeightedEdge<N> extends AbstractEdge<N> implements WeightedEdge<N>
+public abstract class AbstractWeightedEdge<N> extends AbstractCloud<N> implements WeightedEdge<N>
{
private final double weight;
diff --git a/src/main/java/com/syncleus/dann/graph/AssignableGraph.java b/src/main/java/com/syncleus/dann/graph/AssignableGraph.java
index 8226c11a43e302d72b5185cbd8654f9ea5d11f4c..f35d4f4f455f2ec2e5f3a98c1c553deebefb1695 100644
--- a/src/main/java/com/syncleus/dann/graph/AssignableGraph.java
+++ b/src/main/java/com/syncleus/dann/graph/AssignableGraph.java
@@ -20,12 +20,12 @@ package com.syncleus.dann.graph;
public interface AssignableGraph<
N,
- E extends Edge<N,? extends Edge.Endpoint<? extends N>>,
+ E extends Cloud<N,? extends Cloud.Endpoint<? extends N>>,
NEP extends AssignableGraph.NodeEndpoint<N, E>,
EEP extends AssignableGraph.EdgeEndpoint<N, E>
> extends Graph<N,E,NEP,EEP>, MutableEdge<Object,Graph.Endpoint<N,E,?>>
-//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>
+//public interface AssignableGraph<P extends Cloud<N>, N extends P, E extends P> extends Graph<N,E>, Cloud<P>, MutableEdge<P>
+//public interface AssignableGraph<P extends AssignableGraph.Foo, N extends P, E extends Cloud<N> & AssignableGraph.Foo> extends Graph<N,E>, Cloud<P>, MutableEdge<P>
{
/*
@Override
@@ -45,7 +45,7 @@ public interface AssignableGraph<
interface NodeEndpoint<
ON,
- OE extends Edge<ON,? extends Edge.Endpoint<? extends ON>>
+ OE extends Cloud<ON,? extends Cloud.Endpoint<? extends ON>>
> extends Graph.NodeEndpoint<ON,OE>, MutableEdge.Endpoint<ON>
{
void setTarget(ON newTarget) throws InvalidGraphException;
@@ -53,7 +53,7 @@ public interface AssignableGraph<
interface EdgeEndpoint<
ON,
- OE extends Edge<ON,? extends Edge.Endpoint<? extends ON>>
+ OE extends Cloud<ON,? extends Cloud.Endpoint<? extends ON>>
> extends Graph.EdgeEndpoint<ON,OE>, MutableEdge.Endpoint<OE>
{
void setTarget(OE newTarget) throws InvalidGraphException;
diff --git a/src/main/java/com/syncleus/dann/graph/Cloud.java b/src/main/java/com/syncleus/dann/graph/Cloud.java
new file mode 100644
index 0000000000000000000000000000000000000000..3f5befb238822cf07525eaa194a9499ce8e41ec9
--- /dev/null
+++ b/src/main/java/com/syncleus/dann/graph/Cloud.java
@@ -0,0 +1,54 @@
+/******************************************************************************
+ * *
+ * 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;
+
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Set;
+import com.syncleus.dann.graph.context.ContextReporter;
+import com.syncleus.dann.graph.xml.EdgeXml;
+import com.syncleus.dann.xml.XmlSerializable;
+
+public interface Cloud<
+ T,
+ EP extends Cloud.Endpoint<? extends T>
+ > extends Serializable, Cloneable, XmlSerializable<EdgeXml, Object>, ContextReporter
+{
+ interface Endpoint<T>
+ {
+ Set<? extends Cloud.Endpoint<? extends T>> getNeighbors();
+ Set<? extends Cloud.Endpoint<? extends T>> getTraversableNeighborsTo();
+ Set<? extends Cloud.Endpoint<? extends T>> getTraversableNeighborsFrom();
+ boolean isTraversable();
+ boolean isTraversable(Cloud.Endpoint<?> destination);
+ T getTarget();
+ };
+
+ Set<EP> getEndpoints();
+ Set<EP> getEndpoints(Object node);
+ boolean contains(Object node);
+ boolean containsAny(Collection<?> nodes);
+ boolean containsAll(Collection<?> nodes);
+ Set<T> getTargets();
+ Set<T> getNeighbors(Object source);
+ Set<T> getTraversableFrom(Object source);
+ Set<T> getTraversableTo(Object destination);
+ boolean isTraversable(Object source, Object destination);
+ int getDegree();
+}
diff --git a/src/main/java/com/syncleus/dann/graph/Cycle.java b/src/main/java/com/syncleus/dann/graph/Cycle.java
index d15c5ced2d5c3e476565fe3ed1f1606b521521d0..084db0d634957ec2993efa69dac7cbeab904760d 100644
--- a/src/main/java/com/syncleus/dann/graph/Cycle.java
+++ b/src/main/java/com/syncleus/dann/graph/Cycle.java
@@ -18,7 +18,7 @@
******************************************************************************/
package com.syncleus.dann.graph;
-public interface Cycle<N, E extends Edge<N>> extends Walk<N, E>
+public interface Cycle<N, E extends Cloud<N>> extends Walk<N, E>
{
boolean isOddCycle();
}
diff --git a/src/main/java/com/syncleus/dann/graph/Edge.java b/src/main/java/com/syncleus/dann/graph/Edge.java
index 6d58ce07f72aa78ca98360248978df6397ffb813..81cc3acb67f31339aa04caa8888604dc5e004e15 100644
--- a/src/main/java/com/syncleus/dann/graph/Edge.java
+++ b/src/main/java/com/syncleus/dann/graph/Edge.java
@@ -20,10 +20,10 @@ package com.syncleus.dann.graph;
public interface Edge<
T,
- EP extends Edge.Endpoint<? extends T>
+ EP extends Cloud.Endpoint<? extends T>
> extends Cloud<T,EP>
{
interface Endpoint<T> extends Cloud.Endpoint<T>
{
};
-}
+}
\ No newline at end of file
diff --git a/src/main/java/com/syncleus/dann/graph/Graph.java b/src/main/java/com/syncleus/dann/graph/Graph.java
index 2005599d8ccd0cac438ef08a776959c66977de0a..091b9ebc38568d364f0b56ef42e43fa2e1c3be56 100644
--- a/src/main/java/com/syncleus/dann/graph/Graph.java
+++ b/src/main/java/com/syncleus/dann/graph/Graph.java
@@ -37,16 +37,16 @@ import java.util.Set;
*/
public interface Graph<
N,
- E extends Edge<N,? extends Edge.Endpoint<? extends N>>,
+ E extends Cloud<N,? extends Cloud.Endpoint<? extends N>>,
NEP extends Graph.NodeEndpoint<N, E>,
EEP extends Graph.EdgeEndpoint<N, E>
- > extends Edge<Object,Graph.Endpoint<N,E,?>>, Serializable, Cloneable, ContextReporter
+ > extends Cloud<Object,Graph.Endpoint<N,E,?>>
{
interface Endpoint<
ON,
- OE extends Edge<ON,? extends Edge.Endpoint<? extends ON>>,
+ OE extends Cloud<ON,? extends Cloud.Endpoint<? extends ON>>,
T
- > extends Edge.Endpoint<T>
+ > extends Cloud.Endpoint<T>
{
Set<? extends Graph.Endpoint<ON,OE,?>> getAdjacent();
Set<? extends Graph.Endpoint<ON,OE,?>> getTraversableAdjacentTo();
@@ -63,20 +63,20 @@ public interface Graph<
interface NodeEndpoint<
ON,
- OE extends Edge<ON,? extends Edge.Endpoint<? extends ON>>
+ OE extends Cloud<ON,? extends Cloud.Endpoint<? extends ON>>
> extends Graph.Endpoint<ON,OE,ON>
{
};
interface EdgeEndpoint<
ON,
- OE extends Edge<ON,? extends Edge.Endpoint<? extends ON>>
+ OE extends Cloud<ON,? extends Cloud.Endpoint<? extends ON>>
> extends Graph.Endpoint<ON,OE,OE>
{
};
Set<EEP> getEdgeEndpoints();
- Set<EEP> getEdgeEndpoints(Edge<?,? extends Edge.Endpoint<?>> edge);
+ Set<EEP> getEdgeEndpoints(Cloud<?,? extends Cloud.Endpoint<?>> cloud);
Set<NEP> getNodeEndpoints();
Set<NEP> getNodeEndpoints(Object node);
@@ -123,22 +123,22 @@ public interface Graph<
Set<E> getAdjacentEdges(Object node);
Set<E> getTraversableEdgesFrom(Object source);
- Set<E> getTraversableEdgesFrom(Edge<?,? extends Edge.Endpoint<?>> source);
+ Set<E> getTraversableEdgesFrom(Cloud<?,? extends Cloud.Endpoint<?>> source);
Set<E> getTraversableEdgesTo(Object destination);
- Set<E> getTraversableEdgesTo(Edge<?,? extends Edge.Endpoint<?>> destination);
+ Set<E> getTraversableEdgesTo(Cloud<?,? extends Cloud.Endpoint<?>> destination);
Set<N> getTraversableNodesFrom(Object source);
- Set<N> getTraversableNodesFrom(Edge<?,? extends Edge.Endpoint<?>> source);
+ Set<N> getTraversableNodesFrom(Cloud<?,? extends Cloud.Endpoint<?>> source);
Set<N> getTraversableNodesTo(Object destination);
- Set<N> getTraversableNodesTo(Edge<?,? extends Edge.Endpoint<?>> destination);
+ Set<N> getTraversableNodesTo(Cloud<?,? extends Cloud.Endpoint<?>> destination);
Set<E> getTraversableAdjacentEdgesFrom(Object source);
- Set<E> getTraversableAdjacentEdgesFrom(Edge<?,? extends Edge.Endpoint<?>> source);
+ Set<E> getTraversableAdjacentEdgesFrom(Cloud<?,? extends Cloud.Endpoint<?>> source);
Set<E> getTraversableAdjacentEdgesTo(Object destination);
- Set<E> getTraversableAdjacentEdgesTo(Edge<?,? extends Edge.Endpoint<?>> destination);
+ Set<E> getTraversableAdjacentEdgesTo(Cloud<?,? extends Cloud.Endpoint<?>> destination);
Set<N> getTraversableAdjacentNodesFrom(Object source);
- Set<N> getTraversableAdjacentNodesFrom(Edge<?,? extends Edge.Endpoint<?>> source);
+ Set<N> getTraversableAdjacentNodesFrom(Cloud<?,? extends Cloud.Endpoint<?>> source);
/**
* Get a list of all reachable nodes adjacent to node. All edges connected to
@@ -164,5 +164,5 @@ public interface Graph<
* @return An unmodifiable set of all edges that can be traversed from node.
* @since 2.0
*/
- Set<N> getTraversableAdjacentNodesTo(Edge<?,? extends Edge.Endpoint<?>> destination);
+ Set<N> getTraversableAdjacentNodesTo(Cloud<?,? extends Cloud.Endpoint<?>> destination);
}
diff --git a/src/main/java/com/syncleus/dann/graph/ImmutableAdjacencyGraph.java b/src/main/java/com/syncleus/dann/graph/ImmutableAdjacencyGraph.java
index e2ec14c2ae343ed8db46922849abb7b1498a1e03..56c77f4fe2a348fd9d46b58e16a4a7eef93af877 100644
--- a/src/main/java/com/syncleus/dann/graph/ImmutableAdjacencyGraph.java
+++ b/src/main/java/com/syncleus/dann/graph/ImmutableAdjacencyGraph.java
@@ -30,7 +30,7 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-public class ImmutableAdjacencyGraph<N, E extends Edge<N>> extends AbstractAdjacencyGraph<N, E>
+public class ImmutableAdjacencyGraph<N, E extends Cloud<N>> extends AbstractAdjacencyGraph<N, E>
{
private static final long serialVersionUID = -2280425133666367243L;
diff --git a/src/main/java/com/syncleus/dann/graph/MutableAdjacencyGraph.java b/src/main/java/com/syncleus/dann/graph/MutableAdjacencyGraph.java
index b512b28260e9c198e61d126aca13ca25df91657f..405f038313e58c5279ff6be7d4a1df6081f75212 100644
--- a/src/main/java/com/syncleus/dann/graph/MutableAdjacencyGraph.java
+++ b/src/main/java/com/syncleus/dann/graph/MutableAdjacencyGraph.java
@@ -18,16 +18,14 @@
******************************************************************************/
package com.syncleus.dann.graph;
-import java.util.*;
-
public final class MutableAdjacencyGraph<
N,
- E extends Edge<N,Edge.Endpoint<N>>
+ E extends Cloud<N,Cloud.Endpoint<N>>
> extends AbstractMutableAdjacencyGraph<N,E,MutableGraph.NodeEndpoint<N, E>,MutableGraph.EdgeEndpoint<N, E>>
/*
<
N,
- E extends Edge<N,? extends Edge.Endpoint<N>>
+ E extends Cloud<N,? extends Cloud.Endpoint<N>>
>*/
// extends AbstractMutableAdjacencyGraph<N, E, MutableGraph.NodeEndpoint<N, E>//, MutableGraph.EdgeEndpoint<N, E>>
{
diff --git a/src/main/java/com/syncleus/dann/graph/MutableEdge.java b/src/main/java/com/syncleus/dann/graph/MutableEdge.java
index a5b25aa328012aa9d54470d7f7bf305098c00e29..021d4c6251bc848bc5e976d03e21a366cd6adfc5 100644
--- a/src/main/java/com/syncleus/dann/graph/MutableEdge.java
+++ b/src/main/java/com/syncleus/dann/graph/MutableEdge.java
@@ -23,7 +23,7 @@ public interface MutableEdge<
EP extends Edge.Endpoint<? extends T>
> extends Edge<T, EP>
{
- interface Endpoint<T> extends Edge.Endpoint<T>
+ interface Endpoint<T> extends Cloud.Endpoint<T>
{
void setTarget(T newTarget) throws InvalidEdgeException;
};
diff --git a/src/main/java/com/syncleus/dann/graph/MutableGraph.java b/src/main/java/com/syncleus/dann/graph/MutableGraph.java
index 5ce6d450b76635dbadfd869faad235f2f861249b..b042408124cd7d4b3df5dc2455066a7fe8dbc2a6 100644
--- a/src/main/java/com/syncleus/dann/graph/MutableGraph.java
+++ b/src/main/java/com/syncleus/dann/graph/MutableGraph.java
@@ -23,21 +23,21 @@ import java.util.Set;
public interface MutableGraph<
N,
- E extends Edge<N,? extends Edge.Endpoint<? extends N>>,
+ E extends Cloud<N,? extends Cloud.Endpoint<? extends N>>,
NEP extends MutableGraph.NodeEndpoint<N, E>,
EEP extends MutableGraph.EdgeEndpoint<N, E>
> extends AssignableGraph<N,E,NEP,EEP>
{
interface NodeEndpoint<
ON,
- OE extends Edge<ON,? extends Edge.Endpoint<? extends ON>>
+ OE extends Cloud<ON,? extends Cloud.Endpoint<? extends ON>>
> extends AssignableGraph.NodeEndpoint<ON,OE>
{
};
interface EdgeEndpoint<
ON,
- OE extends Edge<ON,? extends Edge.Endpoint<? extends ON>>
+ OE extends Cloud<ON,? extends Cloud.Endpoint<? extends ON>>
> extends AssignableGraph.EdgeEndpoint<ON,OE>
{
};
@@ -45,14 +45,14 @@ public interface MutableGraph<
NEP joinNode(N node) throws InvalidGraphException;
Map<N, NEP> joinNodes(Set<? extends N> nodes) throws InvalidGraphException;
Map<N, Set<NEP>> joinNodes(Map<? extends N,? extends Integer> nodes) throws InvalidGraphException;
- Set<EEP> leaveNode(MutableGraph.NodeEndpoint<?, ? extends Edge<?,? extends Edge.Endpoint<?>>> endpoint) throws InvalidGraphException;
- Set<EEP> leaveNodes(Set<? extends MutableGraph.NodeEndpoint<?, ? extends Edge<?,? extends Edge.Endpoint<?>>>> endpoint) throws InvalidGraphException;
+ Set<EEP> leaveNode(MutableGraph.NodeEndpoint<?, ? extends Cloud<?,? extends Cloud.Endpoint<?>>> endpoint) throws InvalidGraphException;
+ Set<EEP> leaveNodes(Set<? extends MutableGraph.NodeEndpoint<?, ? extends Cloud<?,? extends Cloud.Endpoint<?>>>> endpoint) throws InvalidGraphException;
EEP joinEdge(E edge) throws InvalidGraphException;
Map<E, EEP> joinEdges(Set<? extends E> edges) throws InvalidGraphException;
Map<E, Set<EEP>> joinEdges(Map<? extends E,? extends Integer> edges) throws InvalidGraphException;
- void leaveEdge(MutableGraph.EdgeEndpoint<?, ? extends Edge<?,? extends Edge.Endpoint<?>>> endpoint) throws InvalidGraphException;
- void leaveEdges(Set<? extends MutableGraph.EdgeEndpoint<?, ? extends Edge<?,? extends Edge.Endpoint<?>>>> endpoints) throws InvalidGraphException;
+ void leaveEdge(MutableGraph.EdgeEndpoint<?, ? extends Cloud<?,? extends Cloud.Endpoint<?>>> endpoint) throws InvalidGraphException;
+ void leaveEdges(Set<? extends MutableGraph.EdgeEndpoint<?, ? extends Cloud<?,? extends Cloud.Endpoint<?>>>> endpoints) throws InvalidGraphException;
void clear() throws InvalidGraphException;
void clearEdges() throws InvalidGraphException;
diff --git a/src/main/java/com/syncleus/dann/graph/Path.java b/src/main/java/com/syncleus/dann/graph/Path.java
index 63e229c6aa18a5e31e2025403aa5f01816f03653..455f4b08e3a05e9815e907a2271a7df4ee5ffc2a 100644
--- a/src/main/java/com/syncleus/dann/graph/Path.java
+++ b/src/main/java/com/syncleus/dann/graph/Path.java
@@ -18,7 +18,7 @@
******************************************************************************/
package com.syncleus.dann.graph;
-public interface Path<N, E extends Edge<N>> extends Walk<N, E>
+public interface Path<N, E extends Cloud<N>> extends Walk<N, E>
{
N getFirstNode();
N getLastNode();
diff --git a/src/main/java/com/syncleus/dann/graph/SimpleCycle.java b/src/main/java/com/syncleus/dann/graph/SimpleCycle.java
index fe57535f372179b5b41914e6c7baf5877c7b15a6..a36d7e5d8b90b4f62b594eb83ff30020866a55dc 100644
--- a/src/main/java/com/syncleus/dann/graph/SimpleCycle.java
+++ b/src/main/java/com/syncleus/dann/graph/SimpleCycle.java
@@ -21,7 +21,7 @@ package com.syncleus.dann.graph;
import java.util.ArrayList;
import java.util.List;
-public class SimpleCycle<N, E extends Edge<N>> extends SimpleWalk<N, E> implements Cycle<N, E>
+public class SimpleCycle<N, E extends Cloud<N>> extends SimpleWalk<N, E> implements Cycle<N, E>
{
public SimpleCycle(final List<E> steps, final List<N> nodes, final double defaultWeight)
{
@@ -43,7 +43,7 @@ public class SimpleCycle<N, E extends Edge<N>> extends SimpleWalk<N, E> implemen
this(steps, SimpleCycle.<N, E>edgeToNodeSteps(steps), 0.0);
}
- private static <N, E extends Edge<N>> N startNodeFromSteps(final List<E> steps)
+ private static <N, E extends Cloud<N>> N startNodeFromSteps(final List<E> steps)
{
if( steps.size() == 1 )
return steps.get(0).getTargets().get(0);
@@ -64,7 +64,7 @@ public class SimpleCycle<N, E extends Edge<N>> extends SimpleWalk<N, E> implemen
return (super.verify(nodeSteps, edgeSteps)) && (com.syncleus.dann.graph.AbstractCycle.verifyUtility(nodeSteps, edgeSteps));
}
- private static <N, E extends Edge<N>> List<N> edgeToNodeSteps(final List<E> steps)
+ private static <N, E extends Cloud<N>> List<N> edgeToNodeSteps(final List<E> steps)
{
if( steps == null )
throw new IllegalArgumentException("steps can not be null");
diff --git a/src/main/java/com/syncleus/dann/graph/SimplePath.java b/src/main/java/com/syncleus/dann/graph/SimplePath.java
index 8f9b9841289033194054802b32d7d6bbbc07c632..da01e043632f0860a81044dd4ca891f6185a21ba 100644
--- a/src/main/java/com/syncleus/dann/graph/SimplePath.java
+++ b/src/main/java/com/syncleus/dann/graph/SimplePath.java
@@ -21,7 +21,7 @@ package com.syncleus.dann.graph;
import java.util.ArrayList;
import java.util.List;
-public class SimplePath<N, E extends Edge<N>> extends SimpleWalk<N, E> implements Path<N, E>
+public class SimplePath<N, E extends Cloud<N>> extends SimpleWalk<N, E> implements Path<N, E>
{
private static final double DEFAULT_WEIGHT = 0.0;
@@ -50,7 +50,7 @@ public class SimplePath<N, E extends Edge<N>> extends SimpleWalk<N, E> implement
this(ourFirstNode, ourLastNode, steps, ourNodeSteps, DEFAULT_WEIGHT);
}
- private static <N, E extends Edge<N>> List<N> edgeToNodeSteps(final N firstNode, final List<E> ourSteps)
+ private static <N, E extends Cloud<N>> List<N> edgeToNodeSteps(final N firstNode, final List<E> ourSteps)
{
if( firstNode == null )
throw new IllegalArgumentException("firstNode can not be null");
diff --git a/src/main/java/com/syncleus/dann/graph/SimpleWalk.java b/src/main/java/com/syncleus/dann/graph/SimpleWalk.java
index 7728ae816d0283d30ea0111aa97eb3b410a53e40..008e2527f217c0b119571b66191578d54034baff 100644
--- a/src/main/java/com/syncleus/dann/graph/SimpleWalk.java
+++ b/src/main/java/com/syncleus/dann/graph/SimpleWalk.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-public class SimpleWalk<N, E extends Edge<N>> extends AbstractWalk<N, E>
+public class SimpleWalk<N, E extends Cloud<N>> extends AbstractWalk<N, E>
{
private static final double DEFAULT_WEIGHT = 0.0;
diff --git a/src/main/java/com/syncleus/dann/graph/Walk.java b/src/main/java/com/syncleus/dann/graph/Walk.java
index 0f4153c2955b43a828d2a8b39ae8338501101108..1eca6e3f343c6d6e52603e80a8c2e41639a3c1ae 100644
--- a/src/main/java/com/syncleus/dann/graph/Walk.java
+++ b/src/main/java/com/syncleus/dann/graph/Walk.java
@@ -20,7 +20,7 @@ package com.syncleus.dann.graph;
import java.util.List;
-public interface Walk<N, E extends Edge<N>>
+public interface Walk<N, E extends Cloud<N>>
{
List<E> getSteps();
List<N> getNodeSteps();
diff --git a/src/main/java/com/syncleus/dann/graph/WeightedEdge.java b/src/main/java/com/syncleus/dann/graph/WeightedEdge.java
index 6278ad67a6bc29d9149073b1f4f4a8b2e9c30454..bd95bca857aa7edc7af716109cb587801adbae8d 100644
--- a/src/main/java/com/syncleus/dann/graph/WeightedEdge.java
+++ b/src/main/java/com/syncleus/dann/graph/WeightedEdge.java
@@ -18,9 +18,9 @@
******************************************************************************/
package com.syncleus.dann.graph;
-public interface WeightedEdge<N> extends Edge<N>, Weighted
+public interface WeightedEdge<N> extends Cloud<N>, Weighted
{
- interface Endpoint<NN, EN extends NN> extends Edge.Endpoint<NN, EN>
+ interface Endpoint<NN, EN extends NN> extends Cloud.Endpoint<NN, EN>
{
};
}
diff --git a/src/main/java/com/syncleus/dann/graph/context/AbstractContextNode.java b/src/main/java/com/syncleus/dann/graph/context/AbstractContextNode.java
index 8d5ed4f3854a602f5fcfb726cb772796e9084621..0728f33e319f65a23cbd9f9fa1cd96dd8e76f0d4 100644
--- a/src/main/java/com/syncleus/dann/graph/context/AbstractContextNode.java
+++ b/src/main/java/com/syncleus/dann/graph/context/AbstractContextNode.java
@@ -21,10 +21,10 @@ package com.syncleus.dann.graph.context;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
import com.syncleus.dann.graph.Graph;
-public abstract class AbstractContextNode<N, E extends Edge<N>, G extends Graph<N, E>> extends AbstractContextGraphElement<G> implements ContextNode<N, E>
+public abstract class AbstractContextNode<N, E extends Cloud<N>, G extends Graph<N, E>> extends AbstractContextGraphElement<G> implements ContextNode<N, E>
{
private final Set<E> connectedEdges = new HashSet<E>();
diff --git a/src/main/java/com/syncleus/dann/graph/context/ContextElement.java b/src/main/java/com/syncleus/dann/graph/context/ContextElement.java
index 42e12f52b78c0dd57008832f748a7587867dd039..7ed6e81fa6b19398058c8931d4053fa6448eeed1 100644
--- a/src/main/java/com/syncleus/dann/graph/context/ContextElement.java
+++ b/src/main/java/com/syncleus/dann/graph/context/ContextElement.java
@@ -19,12 +19,12 @@
package com.syncleus.dann.graph.context;
import java.util.Set;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
public interface ContextElement<
- E extends Edge<?, ? extends Edge.Endpoint<?>>
+ E extends Cloud<?, ? extends Cloud.Endpoint<?>>
>
{
- void changingContext(Set<? extends E> joiningContexts, Set<? extends Edge<?,? extends Edge.Endpoint<?>>> leavingContexts) throws RejectedContextException;
- void changedContext(Set<? extends E> joinedContexts, Set<? extends Edge<?,? extends Edge.Endpoint<?>>> leftContexts);
+ void changingContext(Set<? extends E> joiningContexts, Set<? extends Cloud<?,? extends Cloud.Endpoint<?>>> leavingContexts) throws RejectedContextException;
+ void changedContext(Set<? extends E> joinedContexts, Set<? extends Cloud<?,? extends Cloud.Endpoint<?>>> leftContexts);
}
diff --git a/src/main/java/com/syncleus/dann/graph/context/ContextNode.java b/src/main/java/com/syncleus/dann/graph/context/ContextNode.java
index 65c4e6dba1d7dbfca18312fe97d94147ea3607fe..3f6966a029e1b6fe9dbec6f1ffe52308664c358a 100644
--- a/src/main/java/com/syncleus/dann/graph/context/ContextNode.java
+++ b/src/main/java/com/syncleus/dann/graph/context/ContextNode.java
@@ -19,9 +19,9 @@
package com.syncleus.dann.graph.context;
import java.util.Set;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
-public interface ContextNode<N, E extends Edge<N>>
+public interface ContextNode<N, E extends Cloud<N>>
{
void changingConnectedEdges(Set<E> connectingEdges, Set<E> disconnectingEdges) throws RejectedContextException;
void changedConnectedEdges(Set<E> connectedEdges, Set<E> disconnectedEdges);
diff --git a/src/main/java/com/syncleus/dann/graph/context/GraphContextElement.java b/src/main/java/com/syncleus/dann/graph/context/GraphContextElement.java
index 8b1971f2e23b6fed595d69e64e18092c8ddfb199..48bd5ebc6ef3b4d19c0619d7cefa97e9bc51fb16 100644
--- a/src/main/java/com/syncleus/dann/graph/context/GraphContextElement.java
+++ b/src/main/java/com/syncleus/dann/graph/context/GraphContextElement.java
@@ -19,14 +19,13 @@
package com.syncleus.dann.graph.context;
import java.util.Set;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
import com.syncleus.dann.graph.Graph;
-import sun.security.ec.ECParameters;
public interface GraphContextElement<
G extends Graph<
?,
- Edge<?,? extends Edge.Endpoint<?>>,
+ Cloud<?,? extends Cloud.Endpoint<?>>,
? extends Graph.NodeEndpoint<?,?>,
? extends Graph.EdgeEndpoint<?,?>
>
diff --git a/src/main/java/com/syncleus/dann/graph/context/GraphEdgeContextElement.java b/src/main/java/com/syncleus/dann/graph/context/GraphEdgeContextElement.java
index 83729711eff85f7acfaa92b31db29713036442a5..7fb749ce66bf386dc827980b4fba12fd9b753ad6 100644
--- a/src/main/java/com/syncleus/dann/graph/context/GraphEdgeContextElement.java
+++ b/src/main/java/com/syncleus/dann/graph/context/GraphEdgeContextElement.java
@@ -19,10 +19,10 @@
package com.syncleus.dann.graph.context;
import java.util.Set;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
public interface GraphEdgeContextElement
{
- void changingEdgeContext(Set<? extends E> joinedGraphContexts, Set<? extends Edge<?,? extends Edge.Endpoint<?>>> leftGraphContexts);
- void changedEdgeContext(Set<? extends E> joinedGraphContexts, Set<? extends Edge<?,? extends Edge.Endpoint<?>>> leftGraphContexts);
+ void changingEdgeContext(Set<? extends E> joinedGraphContexts, Set<? extends Cloud<?,? extends Cloud.Endpoint<?>>> leftGraphContexts);
+ void changedEdgeContext(Set<? extends E> joinedGraphContexts, Set<? extends Cloud<?,? extends Cloud.Endpoint<?>>> leftGraphContexts);
}
diff --git a/src/main/java/com/syncleus/dann/graph/cycle/ColoredDepthFirstSearchDetector.java b/src/main/java/com/syncleus/dann/graph/cycle/ColoredDepthFirstSearchDetector.java
index 79b7dfff2706027d9fa8bf68a162884fae5cbd38..5cd72000ec6fc2288b5c6a95e712beec602bfadc 100644
--- a/src/main/java/com/syncleus/dann/graph/cycle/ColoredDepthFirstSearchDetector.java
+++ b/src/main/java/com/syncleus/dann/graph/cycle/ColoredDepthFirstSearchDetector.java
@@ -24,12 +24,12 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
import com.syncleus.dann.graph.Graph;
public class ColoredDepthFirstSearchDetector implements CycleDetector
{
- public <N, E extends Edge<N>> boolean hasCycle(final Graph<N, E> graph)
+ public <N, E extends Cloud<N>> boolean hasCycle(final Graph<N, E> graph)
{
//A map of the current Node colors. Key is the node, value is null for
//white, false for grey, true for black.
@@ -47,7 +47,7 @@ public class ColoredDepthFirstSearchDetector implements CycleDetector
return false;
}
- private static <N, E extends Edge<N>> boolean visit(final Graph<N, E> graph, final Map<N, Boolean> colorMap, final Set<E> traversedEdges, final N node)
+ private static <N, E extends Cloud<N>> boolean visit(final Graph<N, E> graph, final Map<N, Boolean> colorMap, final Set<E> traversedEdges, final N node)
{
colorMap.put(node, Boolean.FALSE);
@@ -73,7 +73,7 @@ public class ColoredDepthFirstSearchDetector implements CycleDetector
return false;
}
- private static <E extends Edge> boolean traversed(final Set<E> traversedEdges, final E edge)
+ private static <E extends Cloud> boolean traversed(final Set<E> traversedEdges, final E edge)
{
for(final E traversedEdge : traversedEdges)
if( traversedEdge == edge )
diff --git a/src/main/java/com/syncleus/dann/graph/cycle/CycleDetector.java b/src/main/java/com/syncleus/dann/graph/cycle/CycleDetector.java
index 5014310083d09bf7bf3e6f8d2b41f61c94dc84d4..a2b6bb4d7909d1459c4223dd24a9c98818f6b8a1 100644
--- a/src/main/java/com/syncleus/dann/graph/cycle/CycleDetector.java
+++ b/src/main/java/com/syncleus/dann/graph/cycle/CycleDetector.java
@@ -18,10 +18,10 @@
******************************************************************************/
package com.syncleus.dann.graph.cycle;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
import com.syncleus.dann.graph.Graph;
public interface CycleDetector
{
- <N, E extends Edge<N>> boolean hasCycle(Graph<N, E> graph);
+ <N, E extends Cloud<N>> boolean hasCycle(Graph<N, E> graph);
}
diff --git a/src/main/java/com/syncleus/dann/graph/cycle/CycleFinder.java b/src/main/java/com/syncleus/dann/graph/cycle/CycleFinder.java
index 60e384fb61b75cc702f6b1b636cc2ac4a7113c63..8f6c99e4c562903d4b0d7844c191198f2f087850 100644
--- a/src/main/java/com/syncleus/dann/graph/cycle/CycleFinder.java
+++ b/src/main/java/com/syncleus/dann/graph/cycle/CycleFinder.java
@@ -19,11 +19,10 @@
package com.syncleus.dann.graph.cycle;
import java.util.Set;
-import com.syncleus.dann.graph.Cycle;
-import com.syncleus.dann.graph.Edge;
-import com.syncleus.dann.graph.Graph;
+import com.syncleus.dann.graph.*;
+import com.syncleus.dann.graph.Cloud;
-public interface CycleFinder<N, E extends Edge<N>> extends CycleDetector
+public interface CycleFinder<N, E extends Cloud<N>> extends CycleDetector
{
int cycleCount(Graph<N, E> graph);
Set<Cycle<N, E>> findCycles(Graph<N, E> graph);
diff --git a/src/main/java/com/syncleus/dann/graph/cycle/CycleOptimizedGraph.java b/src/main/java/com/syncleus/dann/graph/cycle/CycleOptimizedGraph.java
index 540085dab6f7b0c0867c2f95aad5006780e2b3eb..7419d485e4da7863357c921ebe7712b0d961e8d5 100644
--- a/src/main/java/com/syncleus/dann/graph/cycle/CycleOptimizedGraph.java
+++ b/src/main/java/com/syncleus/dann/graph/cycle/CycleOptimizedGraph.java
@@ -18,10 +18,10 @@
******************************************************************************/
package com.syncleus.dann.graph.cycle;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
import com.syncleus.dann.graph.Graph;
-public interface CycleOptimizedGraph<N, E extends Edge<N>> extends Graph<N, E>
+public interface CycleOptimizedGraph<N, E extends Cloud<N>> extends Graph<N, E>
{
/**
* Calculates the number of cylces in the graph. A cycle is any walk that
diff --git a/src/main/java/com/syncleus/dann/graph/cycle/ExhaustiveDepthFirstSearchCycleFinder.java b/src/main/java/com/syncleus/dann/graph/cycle/ExhaustiveDepthFirstSearchCycleFinder.java
index 5b97db0b7505ceba4d0ae60d2e87b016a3ce6249..be3da067d2021e25df44773d974225cd53af6768 100644
--- a/src/main/java/com/syncleus/dann/graph/cycle/ExhaustiveDepthFirstSearchCycleFinder.java
+++ b/src/main/java/com/syncleus/dann/graph/cycle/ExhaustiveDepthFirstSearchCycleFinder.java
@@ -28,12 +28,12 @@ import java.util.SortedSet;
import java.util.Stack;
import java.util.TreeSet;
import com.syncleus.dann.graph.Cycle;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
import com.syncleus.dann.graph.Graph;
import com.syncleus.dann.graph.SimpleCycle;
import com.syncleus.dann.graph.topological.Topography;
-public class ExhaustiveDepthFirstSearchCycleFinder<N, E extends Edge<N>> extends ColoredDepthFirstSearchDetector implements CycleFinder<N, E>
+public class ExhaustiveDepthFirstSearchCycleFinder<N, E extends Cloud<N>> extends ColoredDepthFirstSearchDetector implements CycleFinder<N, E>
{
@Override
public boolean isPancyclic(final Graph<N, E> graph)
@@ -102,7 +102,7 @@ public class ExhaustiveDepthFirstSearchCycleFinder<N, E extends Edge<N>> extends
return cycles;
}
- private static <N, E extends Edge<N>> void cyclesFromStart(final Graph<N, E> graph, final Set<N> untouchedNodes, final Set<Cycle<N, E>> cycles, final N startNode)
+ private static <N, E extends Cloud<N>> void cyclesFromStart(final Graph<N, E> graph, final Set<N> untouchedNodes, final Set<Cycle<N, E>> cycles, final N startNode)
{
final Stack<N> parentNodes = new Stack<N>();
final Stack<E> parentEdges = new Stack<E>();
@@ -110,14 +110,14 @@ public class ExhaustiveDepthFirstSearchCycleFinder<N, E extends Edge<N>> extends
ExhaustiveDepthFirstSearchCycleFinder.<N, E>traverse(graph, untouchedNodes, cycles, parentNodes, parentEdges, null, startNode);
}
- private static <N, E extends Edge<N>> List<N> neighborsFromEdge(final E edge, final N sourceNode)
+ private static <N, E extends Cloud<N>> List<N> neighborsFromEdge(final E edge, final N sourceNode)
{
final List<N> destinations = new ArrayList<N>(edge.getTargets());
destinations.remove(sourceNode);
return destinations;
}
- private static <N, E extends Edge<N>> void traverse(final Graph<N, E> graph, final Set<N> untouchedNodes, final Set<Cycle<N, E>> cycles, final Stack<N> parentNodes, final Stack<E> parentEdges, final E lastEdge, final N currentNode)
+ private static <N, E extends Cloud<N>> void traverse(final Graph<N, E> graph, final Set<N> untouchedNodes, final Set<Cycle<N, E>> cycles, final Stack<N> parentNodes, final Stack<E> parentEdges, final E lastEdge, final N currentNode)
{
untouchedNodes.remove(currentNode);
parentNodes.push(currentNode);
@@ -173,7 +173,7 @@ public class ExhaustiveDepthFirstSearchCycleFinder<N, E extends Edge<N>> extends
parentEdges.pop();
}
- private static class CycleLengthComparator<N, E extends Edge<N>> implements Comparator<Cycle<N, E>>, Serializable
+ private static class CycleLengthComparator<N, E extends Cloud<N>> implements Comparator<Cycle<N, E>>, Serializable
{
private static final long serialVersionUID = 5175815460016788908L;
diff --git a/src/main/java/com/syncleus/dann/graph/drawing/hyperassociativemap/HyperassociativeMap.java b/src/main/java/com/syncleus/dann/graph/drawing/hyperassociativemap/HyperassociativeMap.java
index 99e7405c9997bfff6b0f0f20a00c6b7e4e61349c..884706ecffb858ce79ecd170c5e44f9c89e4c394 100644
--- a/src/main/java/com/syncleus/dann/graph/drawing/hyperassociativemap/HyperassociativeMap.java
+++ b/src/main/java/com/syncleus/dann/graph/drawing/hyperassociativemap/HyperassociativeMap.java
@@ -263,10 +263,10 @@ public class HyperassociativeMap<G extends Graph<N, ?>, N> implements GraphDrawe
Map<N, Double> getNeighbors(final N nodeToQuery)
{
final Map<N, Double> neighbors = new HashMap<N, Double>();
- for (final Edge<N> neighborEdge : graph.getAdjacentEdges(nodeToQuery))
+ for (final Cloud<N> neighborCloud : graph.getAdjacentEdges(nodeToQuery))
{
- final Double currentWeight = (((neighborEdge instanceof Weighted) && useWeights) ? ((Weighted) neighborEdge).getWeight() : equilibriumDistance);
- for (final N neighbor : neighborEdge.getTargets())
+ final Double currentWeight = (((neighborCloud instanceof Weighted) && useWeights) ? ((Weighted) neighborCloud).getWeight() : equilibriumDistance);
+ for (final N neighbor : neighborCloud.getTargets())
{
if (!neighbor.equals(nodeToQuery))
{
diff --git a/src/main/java/com/syncleus/dann/graph/search/pathfinding/AstarPathFinder.java b/src/main/java/com/syncleus/dann/graph/search/pathfinding/AstarPathFinder.java
index e6d9653b224c7ec4e8099684c0e52abb2b4cbecf..3f3323af7d54fb702f492c9cd6487a217652985b 100644
--- a/src/main/java/com/syncleus/dann/graph/search/pathfinding/AstarPathFinder.java
+++ b/src/main/java/com/syncleus/dann/graph/search/pathfinding/AstarPathFinder.java
@@ -18,9 +18,8 @@
******************************************************************************/
package com.syncleus.dann.graph.search.pathfinding;
-import com.syncleus.dann.graph.Edge;
-import com.syncleus.dann.graph.Graph;
-import com.syncleus.dann.graph.Weighted;
+import com.syncleus.dann.graph.*;
+import com.syncleus.dann.graph.Cloud;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -29,7 +28,7 @@ import java.util.Map;
import java.util.PriorityQueue;
import java.util.Set;
-public class AstarPathFinder<N, E extends Edge<? extends N, ? extends Edge.Endpoint<? extends N>>> implements PathFinder<N, E>
+public class AstarPathFinder<N, E extends Cloud<? extends N, ? extends Cloud.Endpoint<? extends N>>> implements PathFinder<N, E>
{
private final Graph<N, E, ?, ?> graph;
private final HeuristicPathCost<N> heuristicPathCost;
diff --git a/src/main/java/com/syncleus/dann/graph/search/pathfinding/DijkstraPathFinder.java b/src/main/java/com/syncleus/dann/graph/search/pathfinding/DijkstraPathFinder.java
index 620913b8a46f902664bae453a4488d5fad7a057a..8d7240b7f631e11a70640b38af4312de32c0d9e8 100644
--- a/src/main/java/com/syncleus/dann/graph/search/pathfinding/DijkstraPathFinder.java
+++ b/src/main/java/com/syncleus/dann/graph/search/pathfinding/DijkstraPathFinder.java
@@ -18,10 +18,10 @@
******************************************************************************/
package com.syncleus.dann.graph.search.pathfinding;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
import com.syncleus.dann.graph.Graph;
-public class DijkstraPathFinder<N, E extends Edge<? extends N, ? extends Edge.Endpoint<? extends N>>> extends AstarPathFinder<N, E>
+public class DijkstraPathFinder<N, E extends Cloud<? extends N, ? extends Cloud.Endpoint<? extends N>>> extends AstarPathFinder<N, E>
{
public DijkstraPathFinder(final Graph<N, E,?,?> graph)
{
diff --git a/src/main/java/com/syncleus/dann/graph/search/pathfinding/FloydWarshallPathFinder.java b/src/main/java/com/syncleus/dann/graph/search/pathfinding/FloydWarshallPathFinder.java
index 34e1b72deca9314595632ccb7b4ef383147fd991..a1a2d019d7ab3106b256d23b64334a07a4d1c278 100644
--- a/src/main/java/com/syncleus/dann/graph/search/pathfinding/FloydWarshallPathFinder.java
+++ b/src/main/java/com/syncleus/dann/graph/search/pathfinding/FloydWarshallPathFinder.java
@@ -22,12 +22,10 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import com.syncleus.dann.graph.Edge;
-import com.syncleus.dann.graph.Graph;
-import com.syncleus.dann.graph.Weighted;
-import com.syncleus.dann.graph.WeightedEdge;
+import com.syncleus.dann.graph.*;
+import com.syncleus.dann.graph.Cloud;
-public class FloydWarshallPathFinder<N, E extends Edge<N>> implements PathFinder<N, E>
+public class FloydWarshallPathFinder<N, E extends Cloud<N>> implements PathFinder<N, E>
{
private final Graph<N, E> graph;
private final Map<N, Map<N, Double>> walkWeight;
diff --git a/src/main/java/com/syncleus/dann/graph/search/pathfinding/JohnsonGraphTransformer.java b/src/main/java/com/syncleus/dann/graph/search/pathfinding/JohnsonGraphTransformer.java
index 4473ad444ce0f1375eb69bc067ac972e965e55df..e901a3a82e3174703c6db005a2469a029cd4dfa2 100644
--- a/src/main/java/com/syncleus/dann/graph/search/pathfinding/JohnsonGraphTransformer.java
+++ b/src/main/java/com/syncleus/dann/graph/search/pathfinding/JohnsonGraphTransformer.java
@@ -31,10 +31,10 @@ public class JohnsonGraphTransformer<N> implements GraphTransformer<BidirectedGr
private boolean containsInfinite(final Graph<N, ?> original)
{
- for(final Edge edge : original.getEdges())
+ for(final Cloud cloud : original.getEdges())
{
- if( edge instanceof Weighted
- && Double.isInfinite(((Weighted) edge).getWeight()) )
+ if( cloud instanceof Weighted
+ && Double.isInfinite(((Weighted) cloud).getWeight()) )
return true;
}
return false;
diff --git a/src/main/java/com/syncleus/dann/graph/search/pathfinding/PathFinder.java b/src/main/java/com/syncleus/dann/graph/search/pathfinding/PathFinder.java
index a2f7f8d57e17886b44a4efe675d504cbe5d372fc..659d4008bcfabc688183b394d9ce3f1ea4183131 100644
--- a/src/main/java/com/syncleus/dann/graph/search/pathfinding/PathFinder.java
+++ b/src/main/java/com/syncleus/dann/graph/search/pathfinding/PathFinder.java
@@ -19,11 +19,11 @@
package com.syncleus.dann.graph.search.pathfinding;
import java.util.List;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
// TODO implement optimizer approach
-public interface PathFinder<N, E extends Edge<? extends N, ? extends Edge.Endpoint<? extends N>>>
+public interface PathFinder<N, E extends Cloud<? extends N, ? extends Cloud.Endpoint<? extends N>>>
{
List<E> getBestPath(N begin, N end);
boolean isReachable(N begin, N end);
diff --git a/src/main/java/com/syncleus/dann/graph/topological/ConnectionismOptimizedGraph.java b/src/main/java/com/syncleus/dann/graph/topological/ConnectionismOptimizedGraph.java
index 14a68f7e384cc53395a6b3573a5bc6aff8062214..d7c034bb74766ae4ceed81bad5719f44d3816e37 100644
--- a/src/main/java/com/syncleus/dann/graph/topological/ConnectionismOptimizedGraph.java
+++ b/src/main/java/com/syncleus/dann/graph/topological/ConnectionismOptimizedGraph.java
@@ -18,10 +18,10 @@
******************************************************************************/
package com.syncleus.dann.graph.topological;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
import com.syncleus.dann.graph.Graph;
-public interface ConnectionismOptimizedGraph<N, E extends Edge<N>> extends Graph<N, E>
+public interface ConnectionismOptimizedGraph<N, E extends Cloud<N>> extends Graph<N, E>
{
/**
* The total degree of the specified node. This is essentially the number of
diff --git a/src/main/java/com/syncleus/dann/graph/topological/KnotOptimizedGraph.java b/src/main/java/com/syncleus/dann/graph/topological/KnotOptimizedGraph.java
index 13e0c3c1745e0205a6529e2ffdf3675d6165dd08..70e8f67fa5f4edbf340cb05e056ba7f8cb531405 100644
--- a/src/main/java/com/syncleus/dann/graph/topological/KnotOptimizedGraph.java
+++ b/src/main/java/com/syncleus/dann/graph/topological/KnotOptimizedGraph.java
@@ -19,10 +19,10 @@
package com.syncleus.dann.graph.topological;
import java.util.Set;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
import com.syncleus.dann.graph.Graph;
-public interface KnotOptimizedGraph<N, E extends Edge<N>> extends Graph<N, E>
+public interface KnotOptimizedGraph<N, E extends Cloud<N>> extends Graph<N, E>
{
/**
* Determines if the specified nodes can be traversed to from outside of the
diff --git a/src/main/java/com/syncleus/dann/graph/topological/StrongConnectivityOptimizedGraph.java b/src/main/java/com/syncleus/dann/graph/topological/StrongConnectivityOptimizedGraph.java
index 250165f2143c16db55c310f243fd74d947f9b8e2..965c0936a52d37999ea7bac70caa3e73d909bfb0 100644
--- a/src/main/java/com/syncleus/dann/graph/topological/StrongConnectivityOptimizedGraph.java
+++ b/src/main/java/com/syncleus/dann/graph/topological/StrongConnectivityOptimizedGraph.java
@@ -18,10 +18,10 @@
******************************************************************************/
package com.syncleus.dann.graph.topological;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
import com.syncleus.dann.graph.Graph;
-public interface StrongConnectivityOptimizedGraph<N, E extends Edge<N>> extends Graph<N, E>
+public interface StrongConnectivityOptimizedGraph<N, E extends Cloud<N>> extends Graph<N, E>
{
/**
* Determines if there is a path from the firstNode to the lastNode. There may
diff --git a/src/main/java/com/syncleus/dann/graph/topological/StructureOptimizedGraph.java b/src/main/java/com/syncleus/dann/graph/topological/StructureOptimizedGraph.java
index 196cac6ab1cd1ca27642b8e4d6ed5cfff793d08e..99b105a832ea53447913f11471e717094f001db9 100644
--- a/src/main/java/com/syncleus/dann/graph/topological/StructureOptimizedGraph.java
+++ b/src/main/java/com/syncleus/dann/graph/topological/StructureOptimizedGraph.java
@@ -18,10 +18,10 @@
******************************************************************************/
package com.syncleus.dann.graph.topological;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
import com.syncleus.dann.graph.Graph;
-public interface StructureOptimizedGraph<N, E extends Edge<N>> extends Graph<N, E>
+public interface StructureOptimizedGraph<N, E extends Cloud<N>> extends Graph<N, E>
{
/**
* Determines if the specified graph only contains nodes and edges that are
diff --git a/src/main/java/com/syncleus/dann/graph/topological/Topography.java b/src/main/java/com/syncleus/dann/graph/topological/Topography.java
index 2af050ec3d0d6ad0e68ccb90cb373687d5dd81a2..45845f6701e7075743d86f2950a123c60b745cca 100644
--- a/src/main/java/com/syncleus/dann/graph/topological/Topography.java
+++ b/src/main/java/com/syncleus/dann/graph/topological/Topography.java
@@ -30,7 +30,7 @@ import java.util.SortedSet;
import java.util.TreeSet;
import com.syncleus.dann.graph.BidirectedEdge;
import com.syncleus.dann.graph.BidirectedGraph;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
import com.syncleus.dann.graph.Graph;
import com.syncleus.dann.graph.HyperEdge;
import com.syncleus.dann.graph.HyperGraph;
@@ -56,7 +56,7 @@ public final class Topography
* @return The degree of this node
* @see com.syncleus.dann.graph.topological.Topography#getDegree(Graph,Object)
*/
- public static <N, E extends Edge<N>> int getDegree(final Graph<N, E> graph, final N node)
+ public static <N, E extends Cloud<N>> int getDegree(final Graph<N, E> graph, final N node)
{
if( graph instanceof ConnectionismOptimizedGraph )
{
@@ -101,7 +101,7 @@ public final class Topography
* @return If this graph is strongly connected
* @see com.syncleus.dann.graph.topological.Topography#isStronglyConnected(Graph)
*/
- public static <N, E extends Edge<N>> boolean isStronglyConnected(final Graph<N, E> graph)
+ public static <N, E extends Cloud<N>> boolean isStronglyConnected(final Graph<N, E> graph)
{
if( graph instanceof StrongConnectivityOptimizedGraph )
{
@@ -129,7 +129,7 @@ public final class Topography
* @return If this graph is weakly connected
* @see com.syncleus.dann.graph.topological.Topography#isWeaklyConnected(Graph)
*/
- public static <N, E extends Edge<N>> boolean isWeaklyConnected(final Graph<N, E> graph)
+ public static <N, E extends Cloud<N>> boolean isWeaklyConnected(final Graph<N, E> graph)
{
if( graph instanceof WeakConnectivityOptimizedGraph )
{
@@ -166,7 +166,7 @@ public final class Topography
* @return Whether there is any connection between the two nodes
* @see com.syncleus.dann.graph.topological.Topography#isWeaklyConnected(Graph, Object, Object)
*/
- public static <N, E extends Edge<N>> boolean isWeaklyConnected(final Graph<N, E> graph, final N leftNode, final N rightNode)
+ public static <N, E extends Cloud<N>> boolean isWeaklyConnected(final Graph<N, E> graph, final N leftNode, final N rightNode)
{
if( graph instanceof WeakConnectivityOptimizedGraph )
{
@@ -213,7 +213,7 @@ public final class Topography
* @see com.syncleus.dann.graph.topological.Topography#isWeaklyConnected(Graph, Object, Object)
* @see com.syncleus.dann.graph.topological.Topography#isStronglyConnected(Graph, Object, Object)
*/
- public static <N, E extends Edge<N>> boolean isStronglyConnected(final Graph<N, E> graph, final N leftNode, final N rightNode)
+ public static <N, E extends Cloud<N>> boolean isStronglyConnected(final Graph<N, E> graph, final N leftNode, final N rightNode)
{
if( graph instanceof StrongConnectivityOptimizedGraph )
{
@@ -251,7 +251,7 @@ public final class Topography
* @return <code>null</code>
* @see com.syncleus.dann.graph.topological.Topography#getMaximallyConnectedComponents(Graph)
*/
- public static <N, E extends Edge<N>> Set<Graph<N, E>> getMaximallyConnectedComponents(final Graph<N, E> graph)
+ public static <N, E extends Cloud<N>> Set<Graph<N, E>> getMaximallyConnectedComponents(final Graph<N, E> graph)
{
if( graph instanceof WeakConnectivityOptimizedGraph )
{
@@ -278,7 +278,7 @@ public final class Topography
* @return Whether this is a maximal subgraph
* @see com.syncleus.dann.graph.topological.Topography#isMaximalSubgraph(Graph, Graph)
*/
- public static <N, E extends Edge<N>> boolean isMaximalSubgraph(final Graph<N, E> graph, final Graph<N, E> subGraph)
+ public static <N, E extends Cloud<N>> boolean isMaximalSubgraph(final Graph<N, E> graph, final Graph<N, E> subGraph)
{
if( graph instanceof WeakConnectivityOptimizedGraph )
{
@@ -310,7 +310,7 @@ public final class Topography
}
- public static <N, E extends Edge<N>> boolean isCut(final Graph<N, E> graph, final Set<N> cutNodes, final Set<E> cutEdges)
+ public static <N, E extends Cloud<N>> boolean isCut(final Graph<N, E> graph, final Set<N> cutNodes, final Set<E> cutEdges)
{
if( graph instanceof WeakConnectivityOptimizedGraph )
{
@@ -327,7 +327,7 @@ public final class Topography
return Topography.isStronglyConnected(Topography.deleteFromGraph(graph, cutNodes, cutEdges));
}
- public static <N, E extends Edge<N>> boolean isCut(final Graph<N, E> graph, final Set<N> cutNodes, final Set<E> cutEdges, final N begin, final N end)
+ public static <N, E extends Cloud<N>> boolean isCut(final Graph<N, E> graph, final Set<N> cutNodes, final Set<E> cutEdges, final N begin, final N end)
{
if( graph instanceof WeakConnectivityOptimizedGraph )
{
@@ -344,7 +344,7 @@ public final class Topography
return Topography.isStronglyConnected(Topography.deleteFromGraph(graph, cutNodes, cutEdges), begin, end);
}
- public static <N, E extends Edge<N>> boolean isCut(final Graph<N, E> graph, final Set<E> cutEdges)
+ public static <N, E extends Cloud<N>> boolean isCut(final Graph<N, E> graph, final Set<E> cutEdges)
{
if( graph instanceof WeakConnectivityOptimizedGraph )
{
@@ -361,7 +361,7 @@ public final class Topography
return Topography.isCut(graph, Collections.<N>emptySet(), cutEdges);
}
- public static <N, E extends Edge<N>> boolean isCut(final Graph<N, E> graph, final N node)
+ public static <N, E extends Cloud<N>> boolean isCut(final Graph<N, E> graph, final N node)
{
if( graph instanceof WeakConnectivityOptimizedGraph )
{
@@ -378,7 +378,7 @@ public final class Topography
return Topography.isCut(graph, Collections.singleton(node), Collections.<E>emptySet());
}
- public static <N, E extends Edge<N>> boolean isCut(final Graph<N, E> graph, final E edge)
+ public static <N, E extends Cloud<N>> boolean isCut(final Graph<N, E> graph, final E edge)
{
if( graph instanceof WeakConnectivityOptimizedGraph )
{
@@ -395,7 +395,7 @@ public final class Topography
return Topography.isCut(graph, Collections.<N>emptySet(), Collections.singleton(edge));
}
- public static <N, E extends Edge<N>> boolean isCut(final Graph<N, E> graph, final Set<E> cutEdges, final N begin, final N end)
+ public static <N, E extends Cloud<N>> boolean isCut(final Graph<N, E> graph, final Set<E> cutEdges, final N begin, final N end)
{
if( graph instanceof WeakConnectivityOptimizedGraph )
{
@@ -412,7 +412,7 @@ public final class Topography
return Topography.isCut(graph, Collections.<N>emptySet(), cutEdges, begin, end);
}
- public static <N, E extends Edge<N>> boolean isCut(final Graph<N, E> graph, final N node, final N begin, final N end)
+ public static <N, E extends Cloud<N>> boolean isCut(final Graph<N, E> graph, final N node, final N begin, final N end)
{
if( graph instanceof WeakConnectivityOptimizedGraph )
{
@@ -429,7 +429,7 @@ public final class Topography
return Topography.isCut(graph, Collections.singleton(node), Collections.<E>emptySet(), begin, end);
}
- public static <N, E extends Edge<N>> boolean isCut(final Graph<N, E> graph, final E edge, final N begin, final N end)
+ public static <N, E extends Cloud<N>> boolean isCut(final Graph<N, E> graph, final E edge, final N begin, final N end)
{
if( graph instanceof WeakConnectivityOptimizedGraph )
{
@@ -446,7 +446,7 @@ public final class Topography
return Topography.isCut(graph, Collections.<N>emptySet(), Collections.singleton(edge), begin, end);
}
- public static <N, E extends Edge<N>> int getNodeConnectivity(final Graph<N, E> graph)
+ public static <N, E extends Cloud<N>> int getNodeConnectivity(final Graph<N, E> graph)
{
if( graph instanceof WeakConnectivityOptimizedGraph )
{
@@ -469,7 +469,7 @@ public final class Topography
return graph.getTargets().size();
}
- public static <N, E extends Edge<N>> int getEdgeConnectivity(final Graph<N, E> graph)
+ public static <N, E extends Cloud<N>> int getEdgeConnectivity(final Graph<N, E> graph)
{
if( graph instanceof WeakConnectivityOptimizedGraph )
{
@@ -492,7 +492,7 @@ public final class Topography
return graph.getEdges().size();
}
- public static <N, E extends Edge<N>> int getNodeConnectivity(final Graph<N, E> graph, final N begin, final N end)
+ public static <N, E extends Cloud<N>> int getNodeConnectivity(final Graph<N, E> graph, final N begin, final N end)
{
if( graph instanceof WeakConnectivityOptimizedGraph )
{
@@ -515,7 +515,7 @@ public final class Topography
return graph.getTargets().size();
}
- public static <N, E extends Edge<N>> int getEdgeConnectivity(final Graph<N, E> graph, final N begin, final N end)
+ public static <N, E extends Cloud<N>> int getEdgeConnectivity(final Graph<N, E> graph, final N begin, final N end)
{
if( graph instanceof WeakConnectivityOptimizedGraph )
{
@@ -538,7 +538,7 @@ public final class Topography
return graph.getEdges().size();
}
- public static <N, E extends Edge<N>> boolean isComplete(final Graph<N, E> graph)
+ public static <N, E extends Cloud<N>> boolean isComplete(final Graph<N, E> graph)
{
if( graph instanceof WeakConnectivityOptimizedGraph )
{
@@ -566,7 +566,7 @@ public final class Topography
return true;
}
- public static <N, E extends Edge<N>> int getOrder(final Graph<N, E> graph)
+ public static <N, E extends Cloud<N>> int getOrder(final Graph<N, E> graph)
{
if( graph instanceof ConnectionismOptimizedGraph )
{
@@ -583,7 +583,7 @@ public final class Topography
return graph.getTargets().size();
}
- public static <N, E extends Edge<N>> boolean isSubGraph(final Graph<N, E> graph, final Graph<N, E> subgraph)
+ public static <N, E extends Cloud<N>> boolean isSubGraph(final Graph<N, E> graph, final Graph<N, E> subgraph)
{
if( graph instanceof StructureOptimizedGraph )
{
@@ -609,7 +609,7 @@ public final class Topography
return true;
}
- public static <N, E extends Edge<N>> int getMinimumDegree(final Graph<N, E> graph)
+ public static <N, E extends Cloud<N>> int getMinimumDegree(final Graph<N, E> graph)
{
if( graph instanceof ConnectionismOptimizedGraph )
{
@@ -632,7 +632,7 @@ public final class Topography
return minimumDegree;
}
- public static <N, E extends Edge<N>> boolean isMultigraph(final Graph<N, E> graph)
+ public static <N, E extends Cloud<N>> boolean isMultigraph(final Graph<N, E> graph)
{
if( graph instanceof ConnectionismOptimizedGraph )
{
@@ -660,7 +660,7 @@ public final class Topography
return false;
}
- public static <N, E extends Edge<N>> boolean isIsomorphic(final Graph<N, E> graph, final Graph<N, E> isomorphicGraph)
+ public static <N, E extends Cloud<N>> boolean isIsomorphic(final Graph<N, E> graph, final Graph<N, E> isomorphicGraph)
{
if( graph instanceof StructureOptimizedGraph )
{
@@ -677,7 +677,7 @@ public final class Topography
return (Topography.isHomomorphic(graph, isomorphicGraph) && Topography.isHomomorphic(isomorphicGraph, graph));
}
- public static <N, E extends Edge<N>> boolean isHomomorphic(final Graph<N, E> graph, final Graph<N, E> homomorphicGraph)
+ public static <N, E extends Cloud<N>> boolean isHomomorphic(final Graph<N, E> graph, final Graph<N, E> homomorphicGraph)
{
if( graph instanceof StructureOptimizedGraph )
{
@@ -727,7 +727,7 @@ public final class Topography
* @since 2.0
* @see com.syncleus.dann.graph.topological.Topography#isSimple(Graph)
*/
- public static <N, E extends Edge<N>> boolean isSimple(final Graph<N, E> graph)
+ public static <N, E extends Cloud<N>> boolean isSimple(final Graph<N, E> graph)
{
if( graph instanceof ConnectionismOptimizedGraph )
{
@@ -760,7 +760,7 @@ public final class Topography
* @since 2.0
* @see com.syncleus.dann.graph.topological.Topography#isRegular(Graph)
*/
- public static <N, E extends Edge<N>> boolean isRegular(final Graph<N, E> graph)
+ public static <N, E extends Cloud<N>> boolean isRegular(final Graph<N, E> graph)
{
if( graph instanceof ConnectionismOptimizedGraph )
{
@@ -791,7 +791,7 @@ public final class Topography
* @return The degree of the regular graph
* @see com.syncleus.dann.graph.topological.Topography#getRegularDegree(Graph)
*/
- public static <N, E extends Edge<N>> int getRegularDegree(final Graph<N, E> graph)
+ public static <N, E extends Cloud<N>> int getRegularDegree(final Graph<N, E> graph)
{
if( graph instanceof ConnectionismOptimizedGraph )
{
@@ -828,7 +828,7 @@ public final class Topography
* @since 2.0
* @see com.syncleus.dann.graph.topological.Topography#getMultiplicity(Graph)
*/
- public static <N, E extends Edge<N>> int getMultiplicity(final Graph<N, E> graph)
+ public static <N, E extends Cloud<N>> int getMultiplicity(final Graph<N, E> graph)
{
if( graph instanceof ConnectionismOptimizedGraph )
{
@@ -862,9 +862,9 @@ public final class Topography
* @throws IllegalArgumentException if the specified edge is not present in the
* graph.
* @since 2.0
- * @see com.syncleus.dann.graph.topological.Topography#getMultiplicity(Graph, com.syncleus.dann.graph.Edge)
+ * @see com.syncleus.dann.graph.topological.Topography#getMultiplicity(Graph, com.syncleus.dann.graph.Cloud)
*/
- public static <N, E extends Edge<N>> int getMultiplicity(final Graph<N, E> graph, final E edge)
+ public static <N, E extends Cloud<N>> int getMultiplicity(final Graph<N, E> graph, final E edge)
{
if( graph instanceof ConnectionismOptimizedGraph )
{
@@ -909,7 +909,7 @@ public final class Topography
* graph.
* @since 2.0
*/
- public static <N, E extends Edge<N>> boolean isMultiple(final Graph<N, E> graph, final E edge)
+ public static <N, E extends Cloud<N>> boolean isMultiple(final Graph<N, E> graph, final E edge)
{
if( graph instanceof ConnectionismOptimizedGraph )
{
@@ -956,7 +956,7 @@ public final class Topography
* @return false
* @since 2.0
*/
- public static <N, E extends Edge<N>> boolean isKnot(final Graph<N, E> graph, final Set<N> knotedNodes)
+ public static <N, E extends Cloud<N>> boolean isKnot(final Graph<N, E> graph, final Set<N> knotedNodes)
{
if( graph instanceof KnotOptimizedGraph )
{
@@ -974,7 +974,7 @@ public final class Topography
throw new UnsupportedOperationException();
}
- public static <N, E extends Edge<N>> boolean isKnot(final Graph<N, E> graph, final Set<N> knotedNodes, final Set<E> knotedEdges)
+ public static <N, E extends Cloud<N>> boolean isKnot(final Graph<N, E> graph, final Set<N> knotedNodes, final Set<E> knotedEdges)
{
if( graph instanceof KnotOptimizedGraph )
{
@@ -1125,36 +1125,36 @@ public final class Topography
* @param deleteEdges The edges to remove in addition to the nodes
* @return A graph of the remaining nodes
*/
- private static <N, E extends Edge<N>> ImmutableAdjacencyGraph<N, Edge<N>> deleteFromGraph(final Graph<N, E> graph, final Set<N> deleteNodes, final Set<E> deleteEdges)
+ private static <N, E extends Cloud<N>> ImmutableAdjacencyGraph<N, Cloud<N>> deleteFromGraph(final Graph<N, E> graph, final Set<N> deleteNodes, final Set<E> deleteEdges)
{
//remove the deleteNodes
final Set<N> cutNodes = graph.getTargets();
cutNodes.removeAll(deleteNodes);
//remove the deleteEdges
- final Set<Edge<N>> cutEdges = new HashSet<Edge<N>>(deleteEdges);
+ final Set<Cloud<N>> cutClouds = new HashSet<Cloud<N>>(deleteEdges);
for(final E edge : deleteEdges)
- cutEdges.remove(edge);
+ cutClouds.remove(edge);
//remove any remaining deleteEdges which join to removed deleteNodes
//also replace deleteEdges that have one removed node but still have
//2 or more remaining deleteNodes with a new edge.
- final Set<Edge<N>> removeEdges = new HashSet<Edge<N>>();
- final Set<Edge<N>> addEdges = new HashSet<Edge<N>>();
- for(final Edge<N> cutEdge : cutEdges)
+ final Set<Cloud<N>> removeClouds = new HashSet<Cloud<N>>();
+ final Set<Cloud<N>> addClouds = new HashSet<Cloud<N>>();
+ for(final Cloud<N> cutCloud : cutClouds )
{
- final List<N> cutEdgeNeighbors = cutEdge.getTargets();
+ final List<N> cutEdgeNeighbors = cutCloud.getTargets();
cutEdgeNeighbors.removeAll(cutNodes);
- if( cutEdgeNeighbors.size() != cutEdge.getTargets().size() )
- removeEdges.add(cutEdge);
+ if( cutEdgeNeighbors.size() != cutCloud.getTargets().size() )
+ removeClouds.add(cutCloud);
if( cutEdgeNeighbors.size() > 1 )
// TODO instead of SimpleHyperEdge implement clone or something
- addEdges.add(new SimpleHyperEdge<N>(cutEdgeNeighbors));
+ addClouds.add(new SimpleHyperEdge<N>(cutEdgeNeighbors));
}
- for(final Edge<N> removeEdge : removeEdges)
- cutEdges.remove(removeEdge);
- cutEdges.addAll(addEdges);
+ for(final Cloud<N> removeCloud : removeClouds )
+ cutClouds.remove(removeCloud);
+ cutClouds.addAll(addClouds);
//check if a graph from the new set of deleteEdges and deleteNodes is still
//connected
- return new ImmutableAdjacencyGraph<N, Edge<N>>(cutNodes, cutEdges);
+ return new ImmutableAdjacencyGraph<N, Cloud<N>>(cutNodes, cutClouds);
}
/**
diff --git a/src/main/java/com/syncleus/dann/graph/topological/WeakConnectivityOptimizedGraph.java b/src/main/java/com/syncleus/dann/graph/topological/WeakConnectivityOptimizedGraph.java
index defd1bb6a10dd0b9a9180c4d1a1a1a39c1667b94..2bc17a994095c2f176fdc7d16328e79b96259538 100644
--- a/src/main/java/com/syncleus/dann/graph/topological/WeakConnectivityOptimizedGraph.java
+++ b/src/main/java/com/syncleus/dann/graph/topological/WeakConnectivityOptimizedGraph.java
@@ -19,10 +19,10 @@
package com.syncleus.dann.graph.topological;
import java.util.Set;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
import com.syncleus.dann.graph.Graph;
-public interface WeakConnectivityOptimizedGraph<N, E extends Edge<N>> extends Graph<N, E>
+public interface WeakConnectivityOptimizedGraph<N, E extends Cloud<N>> extends Graph<N, E>
{
/**
* Determines if there is a path between the firstNode and the lastNode. If
diff --git a/src/main/java/com/syncleus/dann/graph/tree/TreeOptimizedGraph.java b/src/main/java/com/syncleus/dann/graph/tree/TreeOptimizedGraph.java
index d69185ebfdefb96c971dd5c1c5bf8cc35ad4f62e..37f49e2a486fc2ee46c20cbc872d7d0bd23b336c 100644
--- a/src/main/java/com/syncleus/dann/graph/tree/TreeOptimizedGraph.java
+++ b/src/main/java/com/syncleus/dann/graph/tree/TreeOptimizedGraph.java
@@ -18,10 +18,10 @@
******************************************************************************/
package com.syncleus.dann.graph.tree;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
import com.syncleus.dann.graph.Graph;
-public interface TreeOptimizedGraph<N, E extends Edge<N>> extends Graph<N, E>
+public interface TreeOptimizedGraph<N, E extends Cloud<N>> extends Graph<N, E>
{
/**
* Determines if the specified graph is a spanning tree of this graph. This
diff --git a/src/main/java/com/syncleus/dann/graph/tree/Trees.java b/src/main/java/com/syncleus/dann/graph/tree/Trees.java
index 5480bb873035a65976748bfe3cd15f14405cba54..8a6ac1c24b1b2f78de532b00f271d517dd6ddb19 100644
--- a/src/main/java/com/syncleus/dann/graph/tree/Trees.java
+++ b/src/main/java/com/syncleus/dann/graph/tree/Trees.java
@@ -20,13 +20,8 @@ package com.syncleus.dann.graph.tree;
import java.util.List;
import java.util.Set;
-import com.syncleus.dann.graph.BidirectedEdge;
-import com.syncleus.dann.graph.BidirectedGraph;
-import com.syncleus.dann.graph.DirectedEdge;
-import com.syncleus.dann.graph.DirectedGraph;
-import com.syncleus.dann.graph.Edge;
-import com.syncleus.dann.graph.Graph;
-import com.syncleus.dann.graph.ImmutableDirectedAdjacencyGraph;
+import com.syncleus.dann.graph.*;
+import com.syncleus.dann.graph.Cloud;
import com.syncleus.dann.graph.cycle.Cycles;
import com.syncleus.dann.graph.topological.Topography;
import com.syncleus.dann.graph.topological.sorter.*;
@@ -41,7 +36,7 @@ public final class Trees
throw new IllegalStateException("This is an utility class, it can not be instantiated");
}
- public static <N, E extends Edge<N>> boolean isSpanningTree(final Graph<N, E> graph, final Graph<N, E> subGraph)
+ public static <N, E extends Cloud<N>> boolean isSpanningTree(final Graph<N, E> graph, final Graph<N, E> subGraph)
{
if( graph instanceof TreeOptimizedGraph )
{
@@ -62,7 +57,7 @@ public final class Trees
&& (Cycles.isAcyclic(subGraph)));
}
- public static <N, E extends Edge<N>> boolean isTree(final Graph<N, E> graph)
+ public static <N, E extends Cloud<N>> boolean isTree(final Graph<N, E> graph)
{
if( graph instanceof TreeOptimizedGraph )
{
@@ -79,7 +74,7 @@ public final class Trees
return ((Topography.isWeaklyConnected(graph)) && (Cycles.isAcyclic(graph)) && (Topography.isSimple(graph)));
}
- public static <N, E extends Edge<N>> boolean isForest(final Graph<N, E> graph)
+ public static <N, E extends Cloud<N>> boolean isForest(final Graph<N, E> graph)
{
if( graph instanceof TreeOptimizedGraph )
{
diff --git a/src/main/java/com/syncleus/dann/graph/tree/mst/KruskalMinimumSpanningTreeFinder.java b/src/main/java/com/syncleus/dann/graph/tree/mst/KruskalMinimumSpanningTreeFinder.java
index 251bad20ee38b479d8e24ee4aae381d1e6ba3064..64c820b6a010f06f4833c62d67dc99d4f1dcbe94 100644
--- a/src/main/java/com/syncleus/dann/graph/tree/mst/KruskalMinimumSpanningTreeFinder.java
+++ b/src/main/java/com/syncleus/dann/graph/tree/mst/KruskalMinimumSpanningTreeFinder.java
@@ -25,9 +25,8 @@ import java.util.HashSet;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Set;
-import com.syncleus.dann.graph.Edge;
-import com.syncleus.dann.graph.Graph;
-import com.syncleus.dann.graph.Weighted;
+import com.syncleus.dann.graph.*;
+import com.syncleus.dann.graph.Cloud;
/**
* An implementation of
@@ -41,7 +40,7 @@ import com.syncleus.dann.graph.Weighted;
* @param <N> The node type
* @param <E> The type of edge for the given node type
*/
-public class KruskalMinimumSpanningTreeFinder<N, E extends Edge<N>> implements MinimumSpanningTreeFinder<N, E>
+public class KruskalMinimumSpanningTreeFinder<N, E extends Cloud<N>> implements MinimumSpanningTreeFinder<N, E>
{
@Override
public Set<E> findMinimumSpanningTree(final Graph<N, E> graph)
diff --git a/src/main/java/com/syncleus/dann/graph/tree/mst/MinimumSpanningTreeFinder.java b/src/main/java/com/syncleus/dann/graph/tree/mst/MinimumSpanningTreeFinder.java
index a463e4f67a3e75e8f06575470e055c9f8674b29c..b2026a3386c64e0dc5f958decafdf29199b38bb5 100644
--- a/src/main/java/com/syncleus/dann/graph/tree/mst/MinimumSpanningTreeFinder.java
+++ b/src/main/java/com/syncleus/dann/graph/tree/mst/MinimumSpanningTreeFinder.java
@@ -19,14 +19,14 @@
package com.syncleus.dann.graph.tree.mst;
import java.util.Set;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
import com.syncleus.dann.graph.Graph;
/**
* @param <N> The node type
* @param <E> The type of edge for the given node type
*/
-public interface MinimumSpanningTreeFinder<N, E extends Edge<N>>
+public interface MinimumSpanningTreeFinder<N, E extends Cloud<N>>
{
Set<E> findMinimumSpanningTree(Graph<N, E> graph);
}
diff --git a/src/main/java/com/syncleus/dann/graph/tree/mst/PrimMinimumSpanningTreeFinder.java b/src/main/java/com/syncleus/dann/graph/tree/mst/PrimMinimumSpanningTreeFinder.java
index a5ac9b5989603d094b675552ad9be27e5b707ca3..1eaa95d49d791523ba9e6c67cc5ced791a8a0efc 100644
--- a/src/main/java/com/syncleus/dann/graph/tree/mst/PrimMinimumSpanningTreeFinder.java
+++ b/src/main/java/com/syncleus/dann/graph/tree/mst/PrimMinimumSpanningTreeFinder.java
@@ -31,13 +31,13 @@ import java.util.Queue;
import java.util.Set;
import com.syncleus.dann.graph.BidirectedGraph;
import com.syncleus.dann.graph.DirectedEdge;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
import com.syncleus.dann.graph.Graph;
import com.syncleus.dann.graph.Weighted;
import com.syncleus.dann.graph.topological.sorter.SimpleTopologicalRanker;
import com.syncleus.dann.graph.topological.sorter.TopologicalSorter;
-public class PrimMinimumSpanningTreeFinder<N, E extends Edge<N>> implements RootedMinimumSpanningTreeFinder<N, E>
+public class PrimMinimumSpanningTreeFinder<N, E extends Cloud<N>> implements RootedMinimumSpanningTreeFinder<N, E>
{
@SuppressWarnings("unchecked")
@Override
diff --git a/src/main/java/com/syncleus/dann/graph/tree/mst/RootedMinimumSpanningTreeFinder.java b/src/main/java/com/syncleus/dann/graph/tree/mst/RootedMinimumSpanningTreeFinder.java
index 0dea11db006dcad84c4a69193ceb70e92138c741..4fe425ebc8bdd23f3e02abe293aae19ea313b928 100644
--- a/src/main/java/com/syncleus/dann/graph/tree/mst/RootedMinimumSpanningTreeFinder.java
+++ b/src/main/java/com/syncleus/dann/graph/tree/mst/RootedMinimumSpanningTreeFinder.java
@@ -19,10 +19,10 @@
package com.syncleus.dann.graph.tree.mst;
import java.util.Set;
-import com.syncleus.dann.graph.Edge;
+import com.syncleus.dann.graph.Cloud;
import com.syncleus.dann.graph.Graph;
-public interface RootedMinimumSpanningTreeFinder<N, E extends Edge<N>> extends MinimumSpanningTreeFinder<N, E>
+public interface RootedMinimumSpanningTreeFinder<N, E extends Cloud<N>> extends MinimumSpanningTreeFinder<N, E>
{
Set<E> findMinimumSpanningTree(Graph<N, E> graph, N startNode);
}
diff --git a/src/main/resources/com.syncleus.dann.graph.xml.xsd b/src/main/resources/com.syncleus.dann.graph.xml.xsd
index d820e44b352c20cc6e0062fb114f571da7fa5699..8100b1d9b5cd00eeeff9b8b9c12c1b4701bc0301 100644
--- a/src/main/resources/com.syncleus.dann.graph.xml.xsd
+++ b/src/main/resources/com.syncleus.dann.graph.xml.xsd
@@ -99,7 +99,7 @@
<xsd:element name="edges" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
- <xsd:element name="edge" maxOccurs="unbounded" type="Edge">
+ <xsd:element name="cloud" maxOccurs="unbounded" type="Edge">
<xsd:annotation>
<xsd:appinfo>
<jaxb:property name="edges"/>
@@ -115,7 +115,7 @@
<!-- Edges -->
- <!-- Edge Element, contains instances -->
+ <!-- Cloud Element, contains instances -->
<xsd:element name="Edge">
<xsd:annotation>
<xsd:appinfo>
@@ -144,7 +144,7 @@
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
- <!-- Edge Type, contains references to instanced objects -->
+ <!-- Cloud Type, contains references to instanced objects -->
<xsd:complexType name="Edge">
<xsd:sequence>
<xsd:element name="connections" maxOccurs="1">
diff --git a/src/test/java/com/syncleus/dann/graph/tree/mst/LinkedGraph.java b/src/test/java/com/syncleus/dann/graph/tree/mst/LinkedGraph.java
index 936e2a427d45329ccc8bbe0c1c3b2c63a0b82075..8d2007debda32ab6e9724c9c4b7119c850b30935 100644
--- a/src/test/java/com/syncleus/dann/graph/tree/mst/LinkedGraph.java
+++ b/src/test/java/com/syncleus/dann/graph/tree/mst/LinkedGraph.java
@@ -21,7 +21,7 @@ package com.syncleus.dann.graph.tree.mst;
import java.util.*;
import com.syncleus.dann.graph.*;
-public class LinkedGraph<N, E extends Edge<N>> extends AbstractAdjacencyGraph<N, E>
+public class LinkedGraph<N, E extends Cloud<N>> extends AbstractAdjacencyGraph<N, E>
{
private final Set<N> nodes;
private final Set<E> edges;
diff --git a/src/test/java/com/syncleus/dann/graph/tree/mst/TestKruskalMinimumSpanningTreeFinder.java b/src/test/java/com/syncleus/dann/graph/tree/mst/TestKruskalMinimumSpanningTreeFinder.java
index c72a19100a336a5cec8069408dc88b1633fddc99..686e432dac99d03aa438ae2bab556612a9890579 100644
--- a/src/test/java/com/syncleus/dann/graph/tree/mst/TestKruskalMinimumSpanningTreeFinder.java
+++ b/src/test/java/com/syncleus/dann/graph/tree/mst/TestKruskalMinimumSpanningTreeFinder.java
@@ -64,8 +64,8 @@ public class TestKruskalMinimumSpanningTreeFinder
final TreeGraph<Object, BidirectedEdge<Object>> mst = new ImmutableTreeAdjacencyGraph<Object, BidirectedEdge<Object>>(graph.getTargets(), mstEdges);
LOGGER.info("mst edges:");
- for(final Edge edge : mst.getEdges())
- LOGGER.info(edge);
+ for(final Cloud cloud : mst.getEdges())
+ LOGGER.info(cloud);
final CycleDetector detector = new ColoredDepthFirstSearchDetector();
LOGGER.info("mst is cyclic: " + detector.hasCycle(mst));
@@ -114,12 +114,12 @@ public class TestKruskalMinimumSpanningTreeFinder
for(final Object node : nodes)
LOGGER.info(node);
LOGGER.info("Linkedgraph edges:");
- for(final Edge edge : edges)
- LOGGER.info(edge);
+ for(final Cloud cloud : edges)
+ LOGGER.info(cloud);
LOGGER.info("Linked mst edges:");
- for(final Edge edge : mst.getEdges())
- LOGGER.info(edge);
+ for(final Cloud cloud : mst.getEdges())
+ LOGGER.info(cloud);
final CycleDetector detector = new ColoredDepthFirstSearchDetector();
LOGGER.info("Linked mst is cyclic: " + detector.hasCycle(mst));
diff --git a/src/test/java/com/syncleus/dann/graph/tree/mst/TestPrimMinimumSpanningTreeFinder.java b/src/test/java/com/syncleus/dann/graph/tree/mst/TestPrimMinimumSpanningTreeFinder.java
index 070490735660c13d70aadeb15a55b2f858936204..ee25eca35437731f287b86b67be1916b13f7da80 100644
--- a/src/test/java/com/syncleus/dann/graph/tree/mst/TestPrimMinimumSpanningTreeFinder.java
+++ b/src/test/java/com/syncleus/dann/graph/tree/mst/TestPrimMinimumSpanningTreeFinder.java
@@ -64,8 +64,8 @@ public class TestPrimMinimumSpanningTreeFinder
final TreeGraph<Object, BidirectedEdge<Object>> mst = new ImmutableTreeAdjacencyGraph<Object, BidirectedEdge<Object>>(graph.getTargets(), mstEdges);
LOGGER.info("mst edges:");
- for(final Edge edge : mst.getEdges())
- LOGGER.info(edge);
+ for(final Cloud cloud : mst.getEdges())
+ LOGGER.info(cloud);
final CycleDetector detector = new ColoredDepthFirstSearchDetector();
LOGGER.info("mst is cyclic: " + detector.hasCycle(mst));