diff --git a/src/java/org/apache/commons/graph/exception/ContractVerificationException.java b/src/java/org/apache/commons/graph/exception/ContractVerificationException.java
index bd8d135..55eb12a 100644
--- a/src/java/org/apache/commons/graph/exception/ContractVerificationException.java
+++ b/src/java/org/apache/commons/graph/exception/ContractVerificationException.java
@@ -1,35 +1,35 @@
-package org.apache.commons.graph.exception;
-
-/**
- * Description of the Class
- */
-public class ContractVerificationException extends GraphException
-{
- /**
- * Constructor for the ContractVerificationException object
- */
- public ContractVerificationException()
- {
- super();
- }
-
- /**
- * Constructor for the ContractVerificationException object
- *
- * @param msg
- */
- public ContractVerificationException(String msg)
- {
- super(msg);
- }
-
- /**
- * Constructor for the ContractVerificationException object
- *
- * @param cause
- */
- public ContractVerificationException(Throwable cause)
- {
- super(cause);
- }
-}
+package org.apache.commons.graph.exception;
+
+/**
+ * Description of the Class
+ */
+public class ContractVerificationException extends GraphException
+{
+ /**
+ * Constructor for the ContractVerificationException object
+ */
+ public ContractVerificationException()
+ {
+ super();
+ }
+
+ /**
+ * Constructor for the ContractVerificationException object
+ *
+ * @param msg
+ */
+ public ContractVerificationException(String msg)
+ {
+ super(msg);
+ }
+
+ /**
+ * Constructor for the ContractVerificationException object
+ *
+ * @param cause
+ */
+ public ContractVerificationException(Throwable cause)
+ {
+ super(cause);
+ }
+}
diff --git a/src/java/org/apache/commons/graph/exception/CycleException.java b/src/java/org/apache/commons/graph/exception/CycleException.java
index 1b388e3..bd134cf 100644
--- a/src/java/org/apache/commons/graph/exception/CycleException.java
+++ b/src/java/org/apache/commons/graph/exception/CycleException.java
@@ -1,88 +1,88 @@
-package org.apache.commons.graph.exception;
-/* ====================================================================
- * 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
- * .
- */
-
-/**
- * Description of the Class
- */
-public class CycleException extends GraphException
-{
- /**
- * Constructor for the CycleException object
- */
- public CycleException()
- {
- super();
- }
-
- /**
- * Constructor for the CycleException object
- *
- * @param msg
- */
- public CycleException(String msg)
- {
- super(msg);
- }
-
- /**
- * Constructor for the CycleException object
- *
- * @param cause
- */
- public CycleException(Throwable cause)
- {
- super(cause);
- }
-}
+package org.apache.commons.graph.exception;
+/* ====================================================================
+ * 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
+ * .
+ */
+
+/**
+ * Description of the Class
+ */
+public class CycleException extends GraphException
+{
+ /**
+ * Constructor for the CycleException object
+ */
+ public CycleException()
+ {
+ super();
+ }
+
+ /**
+ * Constructor for the CycleException object
+ *
+ * @param msg
+ */
+ public CycleException(String msg)
+ {
+ super(msg);
+ }
+
+ /**
+ * Constructor for the CycleException object
+ *
+ * @param cause
+ */
+ public CycleException(Throwable cause)
+ {
+ super(cause);
+ }
+}
diff --git a/src/java/org/apache/commons/graph/exception/GraphException.java b/src/java/org/apache/commons/graph/exception/GraphException.java
index c2f0a36..cd08a26 100644
--- a/src/java/org/apache/commons/graph/exception/GraphException.java
+++ b/src/java/org/apache/commons/graph/exception/GraphException.java
@@ -1,93 +1,113 @@
-package org.apache.commons.graph.exception;
-
-/* ====================================================================
- * 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
- * .
- */
-
-/**
- * GraphException This is the superclass of all exceptions that can be thrown.
- */
-
-public class GraphException extends RuntimeException
-{
- private Throwable cause = null;
-
- /**
- * Constructor for the GraphException object
- */
- public GraphException()
- {
- super();
- }
-
- /**
- * Constructor for the GraphException object
- *
- * @param msg
- */
- public GraphException(String msg)
- {
- super(msg);
- }
-
- /**
- * Constructor for the GraphException object
- *
- * @param cause
- */
- public GraphException(Throwable cause)
- {
- super(cause.getMessage());
- this.cause = cause;
- }
-}
+package org.apache.commons.graph.exception;
+
+/* ====================================================================
+ * 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
+ * .
+ */
+
+/**
+ * GraphException This is the superclass of all exceptions that can be thrown.
+ */
+
+import java.io.PrintStream;
+import java.io.PrintWriter;
+
+public class GraphException extends RuntimeException
+{
+ private Throwable cause = null;
+
+ /**
+ * Constructor for the GraphException object
+ */
+ public GraphException()
+ {
+ super();
+ }
+
+ /**
+ * Constructor for the GraphException object
+ *
+ * @param msg
+ */
+ public GraphException(String msg)
+ {
+ super(msg);
+ }
+
+ /**
+ * Constructor for the GraphException object
+ *
+ * @param cause
+ */
+ public GraphException(Throwable cause)
+ {
+ super(cause.getMessage());
+ this.cause = cause;
+ }
+
+ public Throwable getCause() {
+ return cause;
+ }
+
+ public void printStackTrace() {
+ cause.printStackTrace();
+ }
+
+ public void printStackTrace( PrintStream s ) {
+ cause.printStackTrace( s );
+ }
+
+ public void printStackTrace( PrintWriter w ) {
+ cause.printStackTrace( w );
+ }
+
+}
diff --git a/src/java/org/apache/commons/graph/exception/NegativeCycleException.java b/src/java/org/apache/commons/graph/exception/NegativeCycleException.java
index 4df0af4..0133382 100644
--- a/src/java/org/apache/commons/graph/exception/NegativeCycleException.java
+++ b/src/java/org/apache/commons/graph/exception/NegativeCycleException.java
@@ -1,89 +1,89 @@
-package org.apache.commons.graph.exception;
-
-/* ====================================================================
- * 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
- * .
- */
-
-/**
- * Description of the Class
- */
-public class NegativeCycleException extends GraphException
-{
- /**
- * Constructor for the NegativeCycleException object
- */
- public NegativeCycleException()
- {
- super();
- }
-
- /**
- * Constructor for the NegativeCycleException object
- *
- * @param msg
- */
- public NegativeCycleException(String msg)
- {
- super(msg);
- }
-
- /**
- * Constructor for the NegativeCycleException object
- *
- * @param cause
- */
- public NegativeCycleException(Throwable cause)
- {
- super(cause);
- }
-}
+package org.apache.commons.graph.exception;
+
+/* ====================================================================
+ * 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
+ * .
+ */
+
+/**
+ * Description of the Class
+ */
+public class NegativeCycleException extends GraphException
+{
+ /**
+ * Constructor for the NegativeCycleException object
+ */
+ public NegativeCycleException()
+ {
+ super();
+ }
+
+ /**
+ * Constructor for the NegativeCycleException object
+ *
+ * @param msg
+ */
+ public NegativeCycleException(String msg)
+ {
+ super(msg);
+ }
+
+ /**
+ * Constructor for the NegativeCycleException object
+ *
+ * @param cause
+ */
+ public NegativeCycleException(Throwable cause)
+ {
+ super(cause);
+ }
+}
diff --git a/src/java/org/apache/commons/graph/exception/NoPathException.java b/src/java/org/apache/commons/graph/exception/NoPathException.java
index ff6d6e1..a8b9830 100644
--- a/src/java/org/apache/commons/graph/exception/NoPathException.java
+++ b/src/java/org/apache/commons/graph/exception/NoPathException.java
@@ -1,90 +1,90 @@
-package org.apache.commons.graph.exception;
-
-/* ====================================================================
- * 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
- * .
- */
-
-/**
- * Description of the Class
- */
-public class NoPathException
- extends GraphException
-{
- /**
- * Constructor for the NoPathException object
- */
- public NoPathException()
- {
- super();
- }
-
- /**
- * Constructor for the NoPathException object
- *
- * @param msg
- */
- public NoPathException(String msg)
- {
- super(msg);
- }
-
- /**
- * Constructor for the NoPathException object
- *
- * @param t
- */
- public NoPathException(Throwable t)
- {
- super(t);
- }
-}
+package org.apache.commons.graph.exception;
+
+/* ====================================================================
+ * 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
+ * .
+ */
+
+/**
+ * Description of the Class
+ */
+public class NoPathException
+ extends GraphException
+{
+ /**
+ * Constructor for the NoPathException object
+ */
+ public NoPathException()
+ {
+ super();
+ }
+
+ /**
+ * Constructor for the NoPathException object
+ *
+ * @param msg
+ */
+ public NoPathException(String msg)
+ {
+ super(msg);
+ }
+
+ /**
+ * Constructor for the NoPathException object
+ *
+ * @param t
+ */
+ public NoPathException(Throwable t)
+ {
+ super(t);
+ }
+}
diff --git a/src/java/org/apache/commons/graph/factory/GraphFactory.java b/src/java/org/apache/commons/graph/factory/GraphFactory.java
new file mode 100644
index 0000000..6d3adc1
--- /dev/null
+++ b/src/java/org/apache/commons/graph/factory/GraphFactory.java
@@ -0,0 +1,191 @@
+package org.apache.commons.graph.factory;
+
+/* ====================================================================
+ * 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.*;
+import org.apache.commons.graph.domain.basic.*;
+
+/**
+ * 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);
+ }
+}