[Plexus-svn] SF.net SVN: plexus:[861] trunk/plexus-graph/src/main
Status: Alpha
Brought to you by:
rconner
|
From: <rc...@us...> - 2010-09-05 20:22:47
|
Revision: 861
http://plexus.svn.sourceforge.net/plexus/?rev=861&view=rev
Author: rconner
Date: 2010-09-05 20:22:41 +0000 (Sun, 05 Sep 2010)
Log Message:
-----------
Moving overview.html, package descriptions will be moved shortly.
Added Paths:
-----------
trunk/plexus-graph/src/main/javadoc/
trunk/plexus-graph/src/main/javadoc/overview.html
Removed Paths:
-------------
trunk/plexus-graph/src/main/java/overview.html
Deleted: trunk/plexus-graph/src/main/java/overview.html
===================================================================
--- trunk/plexus-graph/src/main/java/overview.html 2010-09-05 20:21:43 UTC (rev 860)
+++ trunk/plexus-graph/src/main/java/overview.html 2010-09-05 20:22:41 UTC (rev 861)
@@ -1,126 +0,0 @@
-<html>
-<head>
-
- <!--
- $Id$
-
- Copyright (C) 1994-2006 by Phoenix Software Technologists,
- Inc. and others. All rights reserved.
-
- THIS PROGRAM AND DOCUMENTATION IS PROVIDED UNDER THE TERMS OF
- THE COMMON PUBLIC LICENSE ("AGREEMENT") WHICH ACCOMPANIES IT.
- ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
- CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE AGREEMENT.
-
- The license text can also be found at
- http://opensource.org/licenses/cpl.php
- -->
-
-</head>
-<body>
-
-
-This document is the API specification for the Plexus Graph Library, a
-library of generic graph data structures in which vertices and edges
-may contain user-defined objects.
-
-
-<h2>Formal Definitions and Terminology</h2>
-
-<P>A <i>graph</i> is composed of a set of <i>nodes</i> (sometimes also
-called vertices) and a set of <i>edges</i>, where each edge is a pair
-of nodes. The nodes comprising an edge are referred to as its
-<i>endpoints</i>, and we say that the nodes are <i>adjacent</i>. Some
-sources restrict the term <i>adjacent</i> to apply only to undirected
-graphs, but we will not do that here. Graphs are usually visualized
-by assigning points or shapes to each node and drawing a curve for
-each edge between its endpoints.
-
-<P>An <i>undirected</i> graph is a graph in which an edge's endpoints
-are unordered. We say that an edge is <i>incident on</i> its
-endpoints.
-
-<P>A <i>directed</i> graph is a graph in which an edge's endpoints are
-ordered. The first endpoint is called the edge's <i>tail</i> and the
-second its <i>head</i>. If (u,v) is an edge (u is the tail and v the
-head), we may say:
-<UL>
- <LI>there is an edge from u to v,
- <LI>the edge is <i>incident from</i> or <i>leaves</i> u,
- <LI>the edge is <i>incident to</i> or <i>enters</i> v,
- <LI>the edge is <i>incident on</i> u and v, and
- <LI>u -> v.
-</UL>
-
-<P>A <i>simple</i> graph does not allow more than one edge between any
-two endpoints (a directed simple graph may still have one edge in each
-direction) or self-loops (an edge with both endpoints being the same
-node). A <i>multigraph</i> is a graph which does not have these
-restrictions.
-
-
-<h2>Implementation Notes, Constraints, and Assumptions</h2>
-
-<P>The {@link com.phoenixst.plexus.Graph} interface is the primary
-data structure defined by the Plexus Graph Library. All other classes
-and interfaces provided here exist to implement and support
-implementations of this interface. Unlike most examples from graph
-literature and practice (as well as the short overview above), the
-interface specification allows a single <code>Graph</code> to contain
-both directed and undirected edges. Of course, any specific
-implementation may restrict this behavior.
-
-<P>This package is similar in many ways to the <a
-href="http://java.sun.com/j2se/1.5.0/docs/guide/collections/index.html">
-Java Collections Framework</a>. In particular, the details of how
-graph nodes and edges are implemented are hidden from the user. Nodes
-(and often edges) serve as containers for objects provided by the
-user. Although the implementations of both are hidden, they do differ
-in that there is a {@link com.phoenixst.plexus.Graph.Edge} interface
-presented to the user describing a graph edge.
-
-<P>Nodes must contain unique (using {@link java.lang.Object#equals
-Object.equals()}) user-provided objects. This requirement allows
-nodes to be referenced unambiguously (when creating edges, for
-example). The user-defined objects contained in
-<code>Graph.Edge</code> objects, however, are not subject to this
-requirement in the general case. Because <code>Object.equals()</code>
-is used to distinguish nodes, a particular <code>Graph</code>
-implementation may refer to only a single such node encountered. So,
-for example, the following may occur:
-
-<PRE>
- Object x = new Integer( 0 );
- Object y = new Integer( 1 );
- Object x2 = new Integer( 0 );
- graph.addNode( x );
- graph.addNode( y );
- graph.addEdge( null, x, y, true );
- graph.addNode( x2 ); // returns false, already contains x
- graph.containsNode( x2 ); // returns true
- Graph.Edge edge = graph.getEdge( new DefaultEdgeFilter( x2, y ) );
- // edge.getTail() may be x, not x2, here
-</PRE>
-
-<P>Nothing prohibits a <code>Graph.Edge</code> from also being a node
-in the same <code>Graph</code>. In other words,
-<code>Graph.Edges</code> can point to other <code>Graph.Edges</code>.
-If a particular <code>Graph</code> implementation allows this, these
-two aspects of any particular <code>Graph.Edge</code> are independent.
-Adding or removing a <code>Graph.Edge</code> as a node has no impact
-upon the object's existence as an edge, and vice versa.
-
-<P>All general-purpose {@link com.phoenixst.plexus.Graph}
-implementation classes should provide two "standard" constructors: a
-void (no arguments) constructor, which creates an empty graph, and a
-constructor with a single argument of type <code>Graph</code>, which
-creates a new graph with the same elements as its argument.
-
-
-@version 1.0
-@author Ray A. Conner
-@since Plexus 1.0
-
-
-</body>
-</html>
Copied: trunk/plexus-graph/src/main/javadoc/overview.html (from rev 858, trunk/plexus-graph/src/main/java/overview.html)
===================================================================
--- trunk/plexus-graph/src/main/javadoc/overview.html (rev 0)
+++ trunk/plexus-graph/src/main/javadoc/overview.html 2010-09-05 20:22:41 UTC (rev 861)
@@ -0,0 +1,126 @@
+<html>
+<head>
+
+ <!--
+ $Id$
+
+ Copyright (C) 1994-2006 by Phoenix Software Technologists,
+ Inc. and others. All rights reserved.
+
+ THIS PROGRAM AND DOCUMENTATION IS PROVIDED UNDER THE TERMS OF
+ THE COMMON PUBLIC LICENSE ("AGREEMENT") WHICH ACCOMPANIES IT.
+ ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+ CONSTITUTES RECIPIENT'S ACCEPTANCE OF THE AGREEMENT.
+
+ The license text can also be found at
+ http://opensource.org/licenses/cpl.php
+ -->
+
+</head>
+<body>
+
+
+This document is the API specification for the Plexus Graph Library, a
+library of generic graph data structures in which vertices and edges
+may contain user-defined objects.
+
+
+<h2>Formal Definitions and Terminology</h2>
+
+<P>A <i>graph</i> is composed of a set of <i>nodes</i> (sometimes also
+called vertices) and a set of <i>edges</i>, where each edge is a pair
+of nodes. The nodes comprising an edge are referred to as its
+<i>endpoints</i>, and we say that the nodes are <i>adjacent</i>. Some
+sources restrict the term <i>adjacent</i> to apply only to undirected
+graphs, but we will not do that here. Graphs are usually visualized
+by assigning points or shapes to each node and drawing a curve for
+each edge between its endpoints.
+
+<P>An <i>undirected</i> graph is a graph in which an edge's endpoints
+are unordered. We say that an edge is <i>incident on</i> its
+endpoints.
+
+<P>A <i>directed</i> graph is a graph in which an edge's endpoints are
+ordered. The first endpoint is called the edge's <i>tail</i> and the
+second its <i>head</i>. If (u,v) is an edge (u is the tail and v the
+head), we may say:
+<UL>
+ <LI>there is an edge from u to v,
+ <LI>the edge is <i>incident from</i> or <i>leaves</i> u,
+ <LI>the edge is <i>incident to</i> or <i>enters</i> v,
+ <LI>the edge is <i>incident on</i> u and v, and
+ <LI>u -> v.
+</UL>
+
+<P>A <i>simple</i> graph does not allow more than one edge between any
+two endpoints (a directed simple graph may still have one edge in each
+direction) or self-loops (an edge with both endpoints being the same
+node). A <i>multigraph</i> is a graph which does not have these
+restrictions.
+
+
+<h2>Implementation Notes, Constraints, and Assumptions</h2>
+
+<P>The {@link com.phoenixst.plexus.Graph} interface is the primary
+data structure defined by the Plexus Graph Library. All other classes
+and interfaces provided here exist to implement and support
+implementations of this interface. Unlike most examples from graph
+literature and practice (as well as the short overview above), the
+interface specification allows a single <code>Graph</code> to contain
+both directed and undirected edges. Of course, any specific
+implementation may restrict this behavior.
+
+<P>This package is similar in many ways to the <a
+href="http://java.sun.com/j2se/1.5.0/docs/guide/collections/index.html">
+Java Collections Framework</a>. In particular, the details of how
+graph nodes and edges are implemented are hidden from the user. Nodes
+(and often edges) serve as containers for objects provided by the
+user. Although the implementations of both are hidden, they do differ
+in that there is a {@link com.phoenixst.plexus.Graph.Edge} interface
+presented to the user describing a graph edge.
+
+<P>Nodes must contain unique (using {@link java.lang.Object#equals
+Object.equals()}) user-provided objects. This requirement allows
+nodes to be referenced unambiguously (when creating edges, for
+example). The user-defined objects contained in
+<code>Graph.Edge</code> objects, however, are not subject to this
+requirement in the general case. Because <code>Object.equals()</code>
+is used to distinguish nodes, a particular <code>Graph</code>
+implementation may refer to only a single such node encountered. So,
+for example, the following may occur:
+
+<PRE>
+ Object x = new Integer( 0 );
+ Object y = new Integer( 1 );
+ Object x2 = new Integer( 0 );
+ graph.addNode( x );
+ graph.addNode( y );
+ graph.addEdge( null, x, y, true );
+ graph.addNode( x2 ); // returns false, already contains x
+ graph.containsNode( x2 ); // returns true
+ Graph.Edge edge = graph.getEdge( new DefaultEdgeFilter( x2, y ) );
+ // edge.getTail() may be x, not x2, here
+</PRE>
+
+<P>Nothing prohibits a <code>Graph.Edge</code> from also being a node
+in the same <code>Graph</code>. In other words,
+<code>Graph.Edges</code> can point to other <code>Graph.Edges</code>.
+If a particular <code>Graph</code> implementation allows this, these
+two aspects of any particular <code>Graph.Edge</code> are independent.
+Adding or removing a <code>Graph.Edge</code> as a node has no impact
+upon the object's existence as an edge, and vice versa.
+
+<P>All general-purpose {@link com.phoenixst.plexus.Graph}
+implementation classes should provide two "standard" constructors: a
+void (no arguments) constructor, which creates an empty graph, and a
+constructor with a single argument of type <code>Graph</code>, which
+creates a new graph with the same elements as its argument.
+
+
+@version 1.0
+@author Ray A. Conner
+@since Plexus 1.0
+
+
+</body>
+</html>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|