diff --git a/src/java/org/apache/commons/graph/impl/AllPaths.java b/src/java/org/apache/commons/graph/impl/AllPaths.java
deleted file mode 100644
index c95d484..0000000
--- a/src/java/org/apache/commons/graph/impl/AllPaths.java
+++ /dev/null
@@ -1,393 +0,0 @@
-package org.apache.commons.graph.impl;
-
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 The Apache Software Foundation. All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Commons" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Commons", nor may "Apache" appear in their name, without
- * prior written permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * .
- */
-
-/**
- * AllPairs solves the All Points Shortest Path problem for a DirectedGraph. (If
- * it is weighted, it will do shortest path by weight. Otherwise shortest path
- * by jumps.) Uses Floyd's Algorithm.
- */
-
-import java.util.Set;
-import java.util.Map;
-import java.util.List;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.ArrayList;
-import java.util.AbstractList;
-
-import org.apache.commons.graph.*;
-import org.apache.commons.graph.exception.*;
-
-/**
- * Description of the Class
- */
-public class AllPaths
-{
- private int pred[][];
- private double cost[][];
- private Vertex vArray[];
- private DirectedGraph graph;
- private Map vertexIndex = new HashMap();// VERTEX X INTEGER
-
- /**
- * Description of the Class
- */
- public class EdgeList
- extends AbstractList
- {
- private DirectedGraph graph;
- private List vertices;
-
- /**
- * Constructor for the EdgeList object
- *
- * @param graph
- * @param vertices
- */
- public EdgeList(DirectedGraph graph,
- List vertices)
- {
- this.graph = graph;
- this.vertices = vertices;
- }
-
- /**
- * Description of the Method
- */
- public int size()
- {
- return vertices.size() - 1;
- }
-
- /**
- * Description of the Method
- */
- public Object get(int index)
- {
- Edge RC = null;
-
- Vertex source = (Vertex) vertices.get(index);
- Vertex target = (Vertex) vertices.get(index + 1);
-
- Set outboundSet = graph.getOutbound(source);
- if (outboundSet == null)
- {
- return null;
- }
-
- Iterator outbound = outboundSet.iterator();
- while (outbound.hasNext())
- {
- RC = (Edge) outbound.next();
- if (graph.getTarget(RC) == target)
- {
- break;
- }
- }
-
- if (graph.getTarget(RC) != target)
- {
- return null;
- }
-
- return RC;
- }
- }
-
- /**
- * Description of the Class
- */
- public class WPath
- implements WeightedPath
- {
- private Vertex start;
- private Vertex finish;
- private List vertexList = new ArrayList();
- private DirectedGraph graph;
- private double cost;
-
- /**
- * Constructor for the WPath object
- *
- * @param graph
- * @param vArray
- * @param pred
- * @param start
- * @param finish
- * @param cost
- * @exception GraphException
- */
- public WPath(DirectedGraph graph,
- Vertex vArray[], int pred[][],
- int start, int finish, double cost)
- throws GraphException
- {
- this.start = vArray[start];
- this.finish = vArray[finish];
- this.cost = cost;
- this.graph = graph;
-
- vertexList.addAll(segment(vArray, pred,
- start, finish));
- vertexList.add(vArray[finish]);
- }
-
- /**
- * Returns a List of Vectors in order. Includes the start, but not the
- * finish.
- */
- private List segment(Vertex vArray[], int pred[][],
- int start, int finish)
- throws GraphException
- {
- int mid = pred[start][finish];
- if (mid == -1)
- {
- throw new NoPathException("No SubPath Available: " +
- vArray[start] + " -> " +
- vArray[finish]);
- }
- List RC = new ArrayList();
-
- if (start == finish)
- {
- return RC;
- }
-
- if (start == mid)
- {
- RC.add(vArray[start]);
-
- }
- else
- {
- RC.addAll(segment(vArray, pred,
- start, mid));
- RC.add(vArray[mid]);
- }
-
- if (mid == pred[mid][finish])
- {
- }
- else
- {
- RC.addAll(segment(vArray, pred,
- mid, finish));
- }
- return RC;
- }
-
- /**
- * Gets the weight attribute of the WPath object
- */
- public double getWeight()
- {
- return cost;
- }
-
- /**
- * Gets the vertices attribute of the WPath object
- */
- public List getVertices()
- {
- return vertexList;
- }
-
- /**
- * Gets the edges attribute of the WPath object
- */
- public List getEdges()
- {
- return new EdgeList(graph, vertexList);
- }
-
- /**
- * Gets the start attribute of the WPath object
- */
- public Vertex getStart()
- {
- return start;
- }
-
- /**
- * Gets the end attribute of the WPath object
- */
- public Vertex getEnd()
- {
- return finish;
- }
- }
-
- /**
- * Constructor for the AllPaths object
- *
- * @param graph
- * @exception NegativeCycleException
- */
- public AllPaths(DirectedGraph graph)
- throws NegativeCycleException
- {
- update(graph);
- }
-
-
- /**
- * Description of the Method
- */
- private void initIndex(Vertex vArray[])
- {
- for (int i = 0; i < vArray.length; i++)
- {
- vertexIndex.put(vArray[i], new Integer(i));
- }
- }
-
- /**
- * Description of the Method
- */
- public void update(DirectedGraph graph)
- {
- this.graph = graph;
-
- Set vertexSet = graph.getVertices();
- vArray = (Vertex[]) vertexSet.toArray(new Vertex[vertexSet.size()]);
-
- initIndex(vArray);
-
- pred = new int[vArray.length][vArray.length];
- cost = new double[vArray.length][vArray.length];
-
- for (int i = 0; i < vArray.length; i++)
- {
- for (int j = 0; j < vArray.length; j++)
- {
- pred[i][j] = -1;
- cost[i][j] = Double.POSITIVE_INFINITY;
- }
-
- // First round values need to be in the matrix.
- Iterator edgeSet = graph.getOutbound(vArray[i]).iterator();
- while (edgeSet.hasNext())
- {
- Edge e = (Edge) edgeSet.next();
- int j = index(graph.getTarget(e));
- pred[i][j] = i;
- if (graph instanceof WeightedGraph)
- {
- cost[i][j] = ((WeightedGraph) graph).getWeight(e);
- }
- else
- {
- cost[i][j] = 1.0;
- }
- }
-
- // Cost from any node to itself is 0.0
- cost[i][i] = 0.0;
- pred[i][i] = i;
- }
-
- compute(graph, vArray);
-
- }
-
- /**
- * Description of the Method
- */
- private int index(Vertex v)
- {
- return ((Integer) vertexIndex.get(v)).intValue();
- }
-
- /**
- * Description of the Method
- */
- private void compute(DirectedGraph graph, Vertex vArray[])
- throws NegativeCycleException
- {
- for (int k = 0; k < vArray.length; k++)
- {// Mid Point
- for (int i = 0; i < vArray.length; i++)
- {// Source
- for (int j = 0; j < vArray.length; j++)
- {// Target
- if (cost[i][k] + cost[k][j] < cost[i][j])
- {
- if (i == j)
- {
- throw new NegativeCycleException();
- }
-
- // It is cheaper to go through K.
- cost[i][j] = cost[i][k] + cost[k][j];
- pred[i][j] = k;
- }
- }
- }
- }
- }
-
- /**
- * Gets the shortestPath attribute of the AllPaths object
- */
- public WeightedPath getShortestPath(Vertex start, Vertex end)
- throws GraphException
- {
- return new WPath(graph, vArray, pred,
- index(start), index(end),
- cost[index(start)][index(end)]);
- }
-}
diff --git a/src/java/org/apache/commons/graph/impl/DirectedAcyclicGraphImpl.java b/src/java/org/apache/commons/graph/impl/DirectedAcyclicGraphImpl.java
deleted file mode 100644
index 1612eab..0000000
--- a/src/java/org/apache/commons/graph/impl/DirectedAcyclicGraphImpl.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package org.apache.commons.graph.impl;
-
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 The Apache Software Foundation. All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Commons" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Commons", nor may "Apache" appear in their name, without
- * prior written permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * .
- */
-
-import org.apache.commons.graph.*;
-import org.apache.commons.graph.exception.*;
-
-/**
- * Description of the Class
- */
-public class DirectedAcyclicGraphImpl
- extends DirectedGraphImpl
-{
- /**
- * Constructor for the DirectedAcyclicGraphImpl object
- */
- public DirectedAcyclicGraphImpl() { }
-
- /**
- * Description of the Method
- */
- public boolean connected(Vertex start, Vertex end)
- {
- return false;
- }
-
- /**
- * Adds a feature to the Edge attribute of the DirectedAcyclicGraphImpl
- * object
- */
- public void addEdge(Edge e,
- Vertex start,
- Vertex end)
- throws GraphException
- {
- if (connected(end, start))
- {
- // We are going to introduce a cycle.
- throw new CycleException("Adding Edge will add a Cycle.");
- }
-
- super.addEdge(e, start, end);
- }
-}
diff --git a/src/java/org/apache/commons/graph/impl/DirectedGraphImpl.java b/src/java/org/apache/commons/graph/impl/DirectedGraphImpl.java
deleted file mode 100644
index 513add0..0000000
--- a/src/java/org/apache/commons/graph/impl/DirectedGraphImpl.java
+++ /dev/null
@@ -1,464 +0,0 @@
-package org.apache.commons.graph.impl;
-
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 The Apache Software Foundation. All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Commons" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Commons", nor may "Apache" appear in their name, without
- * prior written permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * .
- */
-import java.lang.reflect.*;
-
-import java.util.Set;
-import java.util.Map;
-import java.util.List;
-import java.util.HashSet;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.ArrayList;
-
-import org.apache.commons.graph.*;
-import org.apache.commons.graph.contract.*;
-import org.apache.commons.graph.exception.*;
-
-/**
- * Description of the Class
- */
-public class DirectedGraphImpl
- implements DirectedGraph,
- WeightedGraph,
- MutableDirectedGraph,
- InvocationHandler
-{
- private Set vertices = new HashSet();
- private Set edges = new HashSet();
- private List contracts = new ArrayList();
-
- private Map inbound = new HashMap();// VERTEX X SET( EDGE )
- private Map outbound = new HashMap();// - " " -
-
- private Map edgeSource = new HashMap();// EDGE X VERTEX
- private Map edgeTarget = new HashMap();// EDGE X TARGET
-
- private Map edgeWeights = new HashMap();// EDGE X WEIGHT
-
- /**
- * Constructor for the DirectedGraphImpl object
- */
- public DirectedGraphImpl() { }
-
- /**
- * Constructor for the DirectedGraphImpl object
- *
- * @param dg
- */
- public DirectedGraphImpl(DirectedGraph dg)
- {
-
- Iterator v = dg.getVertices().iterator();
- while (v.hasNext())
- {
- addVertexI((Vertex) v.next());
- }
-
- Iterator e = dg.getEdges().iterator();
- while (e.hasNext())
- {
- Edge edge = (Edge) e.next();
- addEdgeI(edge,
- dg.getSource(edge),
- dg.getTarget(edge));
-
- if (dg instanceof WeightedGraph)
- {
- setWeight(edge, ((WeightedGraph) dg).getWeight(edge));
- }
- }
- }
-
- /**
- * Adds a feature to the Contract attribute of the DirectedGraphImpl object
- */
- public void addContract(Contract c)
- throws GraphException
- {
- c.setImpl(this);
- c.verify();
- contracts.add(c);
- }
-
- /**
- * Description of the Method
- */
- public void removeContract(Contract c)
- {
- contracts.remove(c);
- }
-
- /**
- * Sets the weight attribute of the DirectedGraphImpl object
- */
- public void setWeight(Edge e, double value)
- {
- if (edgeWeights.containsKey(e))
- {
- edgeWeights.remove(e);
- }
- edgeWeights.put(e, new Double(value));
- }
-
- // Interface Methods
- // Graph
- /**
- * Gets the vertices attribute of the DirectedGraphImpl object
- */
- public Set getVertices()
- {
- return new HashSet(vertices);
- }
-
- /**
- * Gets the vertices attribute of the DirectedGraphImpl object
- */
- public Set getVertices(Edge e)
- {
- Set RC = new HashSet();
- if (edgeSource.containsKey(e))
- {
- RC.add(edgeSource.get(e));
- }
-
- if (edgeTarget.containsKey(e))
- {
- RC.add(edgeTarget.get(e));
- }
-
- return RC;
- }
-
- /**
- * Gets the edges attribute of the DirectedGraphImpl object
- */
- public Set getEdges()
- {
- return new HashSet(edges);
- }
-
- /**
- * Gets the edges attribute of the DirectedGraphImpl object
- */
- public Set getEdges(Vertex v)
- {
- Set RC = new HashSet();
- if (inbound.containsKey(v))
- {
- RC.addAll((Set) inbound.get(v));
- }
-
- if (outbound.containsKey(v))
- {
- RC.addAll((Set) outbound.get(v));
- }
-
- return RC;
- }
-
- // Directed Graph
- /**
- * Gets the source attribute of the DirectedGraphImpl object
- */
- public Vertex getSource(Edge e)
- {
- return (Vertex) edgeSource.get(e);
- }
-
- /**
- * Gets the target attribute of the DirectedGraphImpl object
- */
- public Vertex getTarget(Edge e)
- {
- return (Vertex) edgeTarget.get(e);
- }
-
- /**
- * Gets the inbound attribute of the DirectedGraphImpl object
- */
- public Set getInbound(Vertex v)
- {
- if (inbound.containsKey(v))
- {
- return new HashSet((Set) inbound.get(v));
- }
- else
- {
- return new HashSet();
- }
- }
-
- /**
- * Gets the outbound attribute of the DirectedGraphImpl object
- */
- public Set getOutbound(Vertex v)
- {
- if (outbound.containsKey(v))
- {
- return new HashSet((Set) outbound.get(v));
- }
- else
- {
- return new HashSet();
- }
- }
-
-
- // MutableDirectedGraph
- /**
- * Adds a feature to the VertexI attribute of the DirectedGraphImpl object
- */
- private void addVertexI(Vertex v)
- throws GraphException
- {
- vertices.add(v);
- }
-
- /**
- * Adds a feature to the Vertex attribute of the DirectedGraphImpl object
- */
- public void addVertex(Vertex v)
- throws GraphException
- {
- Iterator conts = contracts.iterator();
- while (conts.hasNext())
- {
- ((Contract) conts.next()).addVertex(v);
- }
- addVertexI(v);
- }
-
- /**
- * Description of the Method
- */
- private void removeVertexI(Vertex v)
- throws GraphException
- {
- try
- {
- vertices.remove(v);
- }
- catch (Exception ex)
- {
- throw new GraphException(ex);
- }
- }
-
- /**
- * Description of the Method
- */
- public void removeVertex(Vertex v)
- throws GraphException
- {
- Iterator conts = contracts.iterator();
- while (conts.hasNext())
- {
- ((Contract) conts.next()).removeVertex(v);
- }
-
- removeVertexI(v);
- }
-
-
- /**
- * Adds a feature to the EdgeI attribute of the DirectedGraphImpl object
- */
- private void addEdgeI(Edge e, Vertex start, Vertex end)
- throws GraphException
- {
- edges.add(e);
-
- if (e instanceof WeightedEdge)
- {
- edgeWeights.put(e, new Double(((WeightedEdge) e).getWeight()));
- }
- else
- {
- edgeWeights.put(e, new Double(1.0));
- }
-
- edgeSource.put(e, start);
- edgeTarget.put(e, end);
-
- if (!outbound.containsKey(start))
- {
- Set edgeSet = new HashSet();
- edgeSet.add(e);
-
- outbound.put(start, edgeSet);
- }
- else
- {
- ((Set) outbound.get(start)).add(e);
- }
-
- if (!inbound.containsKey(end))
- {
- Set edgeSet = new HashSet();
- edgeSet.add(e);
-
- inbound.put(end, edgeSet);
- }
- else
- {
- ((Set) inbound.get(end)).add(e);
- }
- }
-
- /**
- * Adds a feature to the Edge attribute of the DirectedGraphImpl object
- */
- public void addEdge(Edge e,
- Vertex start,
- Vertex end)
- throws GraphException
- {
- try
- {
- Iterator conts = contracts.iterator();
- while (conts.hasNext())
- {
- ((Contract) conts.next()).addEdge(e, start, end);
- }
- }
- catch (GraphException ex)
- {
- throw ex;
- }
-
- addEdgeI(e, start, end);
- }
-
-
- /**
- * Description of the Method
- */
- private void removeEdgeI(Edge e)
- throws GraphException
- {
- try
- {
- Set edgeSet = null;
-
- Vertex source = (Vertex) edgeSource.get(e);
- edgeSource.remove(e);
- edgeSet = (Set) outbound.get(e);
- edgeSet.remove(e);
-
- Vertex target = (Vertex) edgeTarget.get(e);
- edgeTarget.remove(e);
- edgeSet = (Set) inbound.get(e);
- edgeSet.remove(e);
-
- if (edgeWeights.containsKey(e))
- {
- edgeWeights.remove(e);
- }
- }
- catch (Exception ex)
- {
- throw new GraphException(ex);
- }
- }
-
- /**
- * Description of the Method
- */
- public void removeEdge(Edge e)
- throws GraphException
- {
- Iterator conts = contracts.iterator();
- while (conts.hasNext())
- {
- ((Contract) conts.next()).removeEdge(e);
- }
- removeEdgeI(e);
- }
-
- // WeightedGraph
- /**
- * Gets the weight attribute of the DirectedGraphImpl object
- */
- public double getWeight(Edge e)
- {
- if (edgeWeights.containsKey(e))
- {
- return ((Double) edgeWeights.get(e)).doubleValue();
- }
- else
- {
- return 1.0;
- }
- }
-
- /**
- * Description of the Method
- */
- public Object invoke(Object proxy,
- Method method,
- Object args[])
- throws Throwable
- {
- try
- {
- return method.invoke(this, args);
- }
- catch (InvocationTargetException ex)
- {
- throw ex.getTargetException();
- }
- }
-}
diff --git a/src/java/org/apache/commons/graph/impl/DirectedGraphWrapper.java b/src/java/org/apache/commons/graph/impl/DirectedGraphWrapper.java
deleted file mode 100644
index a4ac1a3..0000000
--- a/src/java/org/apache/commons/graph/impl/DirectedGraphWrapper.java
+++ /dev/null
@@ -1,135 +0,0 @@
-package org.apache.commons.graph.impl;
-
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 The Apache Software Foundation. All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Commons" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Commons", nor may "Apache" appear in their name, without
- * prior written permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * .
- */
-
-/**
- * DirectedGraphWrapper This is a superclass to all wrappers that work over
- * DirectedGraphs.
- */
-
-import java.util.Set;
-
-import org.apache.commons.graph.*;
-
-/**
- * Description of the Class
- */
-public class DirectedGraphWrapper
- extends GraphWrapper
- implements DirectedGraph
-{
- private DirectedGraph impl = null;
-
- /**
- * Constructor for the DirectedGraphWrapper object
- *
- * @param graph
- */
- public DirectedGraphWrapper(DirectedGraph graph)
- {
- super(graph);
- impl = graph;
- }
-
- /**
- * Constructor for the DirectedGraphWrapper object
- */
- public DirectedGraphWrapper()
- {
- super();
- }
-
- /**
- * Sets the dirGraph attribute of the DirectedGraphWrapper object
- */
- public void setDirGraph(DirectedGraph graph)
- {
- impl = graph;
- setGraph(graph);
- }
-
- /**
- * Gets the inbound attribute of the DirectedGraphWrapper object
- */
- public Set getInbound(Vertex v)
- {
- return impl.getInbound(v);
- }
-
- /**
- * Gets the outbound attribute of the DirectedGraphWrapper object
- */
- public Set getOutbound(Vertex v)
- {
- return impl.getOutbound(v);
- }
-
- /**
- * Gets the source attribute of the DirectedGraphWrapper object
- */
- public Vertex getSource(Edge e)
- {
- return impl.getSource(e);
- }
-
- /**
- * Gets the target attribute of the DirectedGraphWrapper object
- */
- public Vertex getTarget(Edge e)
- {
- return impl.getTarget(e);
- }
-
-}
diff --git a/src/java/org/apache/commons/graph/impl/GraphFactory.java b/src/java/org/apache/commons/graph/impl/GraphFactory.java
deleted file mode 100644
index a2774ae..0000000
--- a/src/java/org/apache/commons/graph/impl/GraphFactory.java
+++ /dev/null
@@ -1,190 +0,0 @@
-package org.apache.commons.graph.impl;
-
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 The Apache Software Foundation. All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Commons" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Commons", nor may "Apache" appear in their name, without
- * prior written permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * .
- */
-import java.lang.reflect.*;
-
-import org.apache.commons.graph.*;
-import org.apache.commons.graph.contract.*;
-import org.apache.commons.graph.exception.*;
-
-/**
- * Description of the Class
- */
-public class GraphFactory
-{
-
- /**
- * Constructor for the GraphFactory object
- */
- public GraphFactory() { }
-
- /**
- * makeGraph
- *
- * @param contracts Which contracts to enforce.
- * @param baseGraph Is the actual *GraphImpl which will be at the core of
- * the Proxy.
- * @param baseGraphType Interface which is returned.
- * @param isWeighted Does the graph handle Weights?
- * @param init Initialization Graph.
- */
- private Object makeGraph(Contract contracts[],
- InvocationHandler baseGraph,
- Class baseGraphType,
- boolean isWeighted)
- throws GraphException
- {
- int interfaceCount = contracts.length;
- interfaceCount++;// BaseGraph Type
- if (isWeighted)
- {
- interfaceCount++;
- }// WeightedGraph Type
-
- Class inter[] = new Class[interfaceCount];
-
- int pos = 0;
- for (pos = 0; pos < contracts.length; pos++)
- {
- inter[pos] = contracts[pos].getInterface();
- }
-
- if (isWeighted)
- {
- inter[pos] = org.apache.commons.graph.WeightedGraph.class;
- pos++;
- }
-
- inter[pos] = baseGraphType;
-
- return Proxy.newProxyInstance(baseGraph.getClass().getClassLoader(),
- inter, baseGraph);
- }
-
- /**
- * makeDirectedGraph
- *
- * @param contracts - Array of Contracts this Graph should meet.
- * @param isWeighted - If true, the Graph will implement the WeightedGraph
- * interface.
- * @param graph - If it is provided, the graph will initially be equal to
- * the graph.
- */
- public DirectedGraph makeDirectedGraph(Contract contracts[],
- boolean isWeighted,
- DirectedGraph graph)
- throws GraphException
- {
- DirectedGraphImpl dgi = null;
-
- if (graph != null)
- {
- dgi = new DirectedGraphImpl(graph);
- }
- else
- {
- dgi = new DirectedGraphImpl();
- }
-
- for (int i = 0; i < contracts.length; i++)
- {
- dgi.addContract(contracts[i]);
- }
-
- return (DirectedGraph)
- makeGraph(contracts,
- dgi, org.apache.commons.graph.DirectedGraph.class,
- isWeighted);
- }
-
- /**
- * makeMutableDirectedGraph
- *
- * @param contracts - Array of Contracts this Graph should meet.
- * @param isWeighted - If true, the Graph will implement the WeightedGraph
- * interface.
- * @param graph - If it is provided, the graph will initially be equal to
- * the graph.
- */
- public MutableDirectedGraph
- makeMutableDirectedGraph(Contract contracts[],
- boolean isWeighted,
- DirectedGraph graph)
- throws GraphException
- {
-
- DirectedGraphImpl dgi = null;
-
- if (graph != null)
- {
- dgi = new DirectedGraphImpl(graph);
- }
- else
- {
- dgi = new DirectedGraphImpl();
- }
-
- for (int i = 0; i < contracts.length; i++)
- {
- dgi.addContract(contracts[i]);
- }
-
- return (MutableDirectedGraph)
- makeGraph(contracts,
- dgi,
- org.apache.commons.graph.MutableDirectedGraph.class,
- isWeighted);
- }
-}
diff --git a/src/java/org/apache/commons/graph/impl/GraphWrapper.java b/src/java/org/apache/commons/graph/impl/GraphWrapper.java
deleted file mode 100644
index 4394beb..0000000
--- a/src/java/org/apache/commons/graph/impl/GraphWrapper.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.apache.commons.graph.impl;
-
-/**
- * GraphWrapper This is a superclass of all Wrapper implementations. It
- * basically does a redirection to the graph.
- */
-
-import java.util.Set;
-
-import org.apache.commons.graph.*;
-
-/**
- * Description of the Class
- */
-public class GraphWrapper
-{
- private Graph impl = null;
-
- /**
- * Constructor for the GraphWrapper object
- *
- * @param impl
- */
- public GraphWrapper(Graph impl)
- {
- this.impl = impl;
- }
-
- /**
- * Constructor for the GraphWrapper object
- */
- public GraphWrapper() { }
-
- /**
- * Sets the graph attribute of the GraphWrapper object
- */
- public void setGraph(Graph impl)
- {
- this.impl = impl;
- }
-
- // Graph Implementation. . .
- /**
- * Gets the vertices attribute of the GraphWrapper object
- */
- public Set getVertices()
- {
- return impl.getVertices();
- }
-
- /**
- * Gets the edges attribute of the GraphWrapper object
- */
- public Set getEdges()
- {
- return impl.getEdges();
- }
-
- /**
- * Gets the vertices attribute of the GraphWrapper object
- */
- public Set getVertices(Edge e)
- {
- return impl.getVertices(e);
- }
-
- /**
- * Gets the edges attribute of the GraphWrapper object
- */
- public Set getEdges(Vertex v)
- {
- return impl.getEdges(v);
- }
-}
diff --git a/src/java/org/apache/commons/graph/impl/SingleSourcePaths.java b/src/java/org/apache/commons/graph/impl/SingleSourcePaths.java
deleted file mode 100644
index 2bed860..0000000
--- a/src/java/org/apache/commons/graph/impl/SingleSourcePaths.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package org.apache.commons.graph.impl;
-
-import java.util.Map;
-import java.util.Set;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-
-import org.apache.commons.graph.*;
-import org.apache.commons.graph.exception.*;
-
-/**
- * Description of the Class
- */
-public class SingleSourcePaths
-{
- private WeightedGraph weights = null;
- private Map pred = new HashMap();
- private Map weight = new HashMap();
-
- /**
- * Description of the Class
- */
- public class WeightedVertex
- implements Comparable
- {
- private Vertex v;
- private double value;
-
- /**
- * Constructor for the WeightedVertex object
- *
- * @param v
- * @param value
- */
- public WeightedVertex(Vertex v, double value)
- {
- this.v = v;
- this.value = value;
- }
-
- /**
- * Description of the Method
- */
- public void relax(double value)
- {
- this.value = value;
- }
-
- /**
- * Description of the Method
- */
- public int compareTo(Object o)
- {
- WeightedVertex wv = (WeightedVertex) o;
- if (wv.value > this.value)
- {
- return 1;
- }
- if (wv.value == this.value)
- {
- return 0;
- }
- if (wv.value < this.value)
- {
- return -1;
- }
-
- return 0;
- }
- }
-
- /**
- * Constructor for the SingleSourcePaths object
- *
- * @param graph
- * @param root
- * @exception GraphException
- */
- public SingleSourcePaths(WeightedGraph graph,
- Vertex root)
- throws GraphException
- {
- this.weights = graph;
-
- if (graph instanceof DirectedGraph)
- {
- init((DirectedGraph) graph);
- }
- else
- {
- init((Graph) graph);
- }
- }
-
- /**
- * Description of the Method
- */
- public void init(DirectedGraph graph,
- Vertex root)
- throws GraphException
- {
- Iterator i = graph.getVertices().iterator();
- while (i.hasNext())
- {
- Vertex v = (Vertex) i.next();
- if (v != root)
- {
- weight.put(v, new Double(Double.POSITIVE_INFINITY));
- }
- else
- {
- weight.put(v, new Double(0));
- }
- }
- i = graph.getVertices().iterator();
-
- }
-
- /**
- * Description of the Method
- */
- public void init(Graph graph)
- throws GraphException
- {
- throw new GraphException("Not Supported");
- }
-}
diff --git a/src/java/org/apache/commons/graph/impl/UndirectedGraphImpl.java b/src/java/org/apache/commons/graph/impl/UndirectedGraphImpl.java
deleted file mode 100644
index 559233c..0000000
--- a/src/java/org/apache/commons/graph/impl/UndirectedGraphImpl.java
+++ /dev/null
@@ -1,182 +0,0 @@
-package org.apache.commons.graph.impl;
-
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 The Apache Software Foundation. All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Commons" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Commons", nor may "Apache" appear in their name, without
- * prior written permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * .
- */
-
-import java.util.Set;
-import java.util.Map;
-import java.util.HashSet;
-import java.util.HashMap;
-import java.util.Iterator;
-
-import org.apache.commons.graph.*;
-import org.apache.commons.graph.exception.*;
-
-/**
- * Description of the Class
- */
-public class UndirectedGraphImpl
- implements UndirectedGraph
-{
- private Set vertices = new HashSet();
- private Set edges = new HashSet();
-
- private Map edgeVerts = new HashMap();// EDGE X SET( VERTS )
- private Map vertEdges = new HashMap();// VERTEX X SET( EDGE )
-
- /**
- * Constructor for the UndirectedGraphImpl object
- */
- public UndirectedGraphImpl() { }
-
- /**
- * Adds a feature to the Vertex attribute of the UndirectedGraphImpl object
- */
- public void addVertex(Vertex v)
- throws GraphException
- {
- vertices.add(v);
- }
-
- /**
- * Adds a feature to the Edge attribute of the UndirectedGraphImpl object
- */
- public void addEdge(Edge e,
- Set vertices)
- throws GraphException
- {
-
- edges.add(e);
-
- // Set up Edge -> Vertices
- Set edgeVert = null;
- if (!edgeVerts.containsKey(e))
- {
- edgeVert = new HashSet();
- edgeVerts.put(e, edgeVert);
- }
- else
- {
- edgeVert = (Set) edgeVerts.get(e);
- }
-
- edgeVert.addAll(vertices);
-
- // Setup Vertex -> Edges
- Iterator i = vertices.iterator();
- while (i.hasNext())
- {
- Vertex v = (Vertex) i.next();
-
- if (!vertEdges.containsKey(v))
- {
- Set edgeSet = new HashSet();
- edgeSet.add(e);
- vertEdges.put(v, edgeSet);
- }
- else
- {
- ((Set) vertEdges.get(v)).add(e);
- }
- }
- }
-
- // Interface Methods
- /**
- * Gets the vertices attribute of the UndirectedGraphImpl object
- */
- public Set getVertices()
- {
- return new HashSet(vertices);
- }
-
- /**
- * Gets the vertices attribute of the UndirectedGraphImpl object
- */
- public Set getVertices(Edge e)
- {
- if (edgeVerts.containsKey(e))
- {
- return new HashSet((Set) edgeVerts.get(e));
- }
- else
- {
- return new HashSet();
- }
- }
-
- /**
- * Gets the edges attribute of the UndirectedGraphImpl object
- */
- public Set getEdges()
- {
- return new HashSet(edges);
- }
-
- /**
- * Gets the edges attribute of the UndirectedGraphImpl object
- */
- public Set getEdges(Vertex v)
- {
- if (vertEdges.containsKey(v))
- {
- return new HashSet((Set) vertEdges.get(v));
- }
- else
- {
- return new HashSet();
- }
- }
-}
-
diff --git a/src/java/org/apache/commons/graph/impl/WeightedGraphWrapper.java b/src/java/org/apache/commons/graph/impl/WeightedGraphWrapper.java
deleted file mode 100644
index 745e99a..0000000
--- a/src/java/org/apache/commons/graph/impl/WeightedGraphWrapper.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package org.apache.commons.graph.impl;
-
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 The Apache Software Foundation. All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Commons" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
- * written permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- * "Commons", nor may "Apache" appear in their name, without
- * prior written permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * .
- */
-
-/**
- * This is a simple wrapper to wrap around a graph, and create a weighted graph.
- */
-
-import java.util.Map;
-import java.util.HashMap;
-
-import org.apache.commons.graph.*;
-
-/**
- * Description of the Class
- */
-public class WeightedGraphWrapper
- extends GraphWrapper
- implements WeightedGraph
-{
- private Map weights = new HashMap();// EDGE X WEIGHT
-
- /**
- * Constructor for the WeightedGraphWrapper object
- *
- * @param graph
- */
- public WeightedGraphWrapper(Graph graph)
- {
- super(graph);
- }
-
- /**
- * Gets the weight attribute of the WeightedGraphWrapper object
- */
- public double getWeight(Edge e)
- {
- if (weights.containsKey(e))
- {
- return ((Double) weights.get(e)).doubleValue();
- }
- else
- {
- return 1.0;
- }
- }
-
- /**
- * Sets the weight attribute of the WeightedGraphWrapper object
- */
- public void setWeight(Edge e, double weight)
- {
- weights.put(e, new Double(weight));
- }
-
-}