Thread: [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. |
From: <rc...@us...> - 2010-09-10 20:14:01
|
Revision: 870 http://plexus.svn.sourceforge.net/plexus/?rev=870&view=rev Author: rconner Date: 2010-09-10 20:13:54 +0000 (Fri, 10 Sep 2010) Log Message: ----------- adding initial checkstyle and pmd configurations Added Paths: ----------- trunk/plexus-graph/src/main/config/ trunk/plexus-graph/src/main/config/checkstyle/ trunk/plexus-graph/src/main/config/checkstyle/checkstyle-header.txt trunk/plexus-graph/src/main/config/checkstyle/checkstyle.xml trunk/plexus-graph/src/main/config/pmd/ trunk/plexus-graph/src/main/config/pmd/ruleset.xml Added: trunk/plexus-graph/src/main/config/checkstyle/checkstyle-header.txt =================================================================== --- trunk/plexus-graph/src/main/config/checkstyle/checkstyle-header.txt (rev 0) +++ trunk/plexus-graph/src/main/config/checkstyle/checkstyle-header.txt 2010-09-10 20:13:54 UTC (rev 870) @@ -0,0 +1,16 @@ +^/\*$ +^ \* \$Id: \w+\.java \d+ \d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\dZ \w+ \$$ +^ \*$ +^ \* Copyright \(C\) \d\d\d\d-\d\d\d\d 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$ +^ \*/$ +^$ +^package com\.phoenixst\. Property changes on: trunk/plexus-graph/src/main/config/checkstyle/checkstyle-header.txt ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Date Revision Id Added: svn:eol-style + native Added: trunk/plexus-graph/src/main/config/checkstyle/checkstyle.xml =================================================================== --- trunk/plexus-graph/src/main/config/checkstyle/checkstyle.xml (rev 0) +++ trunk/plexus-graph/src/main/config/checkstyle/checkstyle.xml 2010-09-10 20:13:54 UTC (rev 870) @@ -0,0 +1,191 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE module PUBLIC + "-//Puppy Crawl//DTD Check Configuration 1.2//EN" + "http://www.puppycrawl.com/dtds/configuration_1_2.dtd"> + +<!-- + + Checkstyle configuration that checks the sun coding conventions from: + + - the Java Language Specification at + http://java.sun.com/docs/books/jls/second_edition/html/index.html + + - the Sun Code Conventions at http://java.sun.com/docs/codeconv/ + + - the Javadoc guidelines at + http://java.sun.com/j2se/javadoc/writingdoccomments/index.html + + - the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html + + - some best practices + + Checkstyle is very configurable. Be sure to read the documentation at + http://checkstyle.sf.net (or in your downloaded distribution). + + Most Checks are configurable, be sure to consult the documentation. + + To completely disable a check, just comment it out or delete it from the file. + + Finally, it is worth reading the documentation. + +--> + +<module name="Checker"> + <!-- + If you set the basedir property below, then all reported file + names will be relative to the specified directory. See + http://checkstyle.sourceforge.net/5.x/config.html#Checker + + <property name="basedir" value="${basedir}"/> + --> + + <!-- Following interprets the header file as regular expressions. --> + <module name="RegexpHeader"> + <property name="headerFile" value="${checkstyle.header.file}" /> + </module> + +<!-- The rest of this is from sun_checks.xml --> + + <!-- Checks that each Java package has a Javadoc file used for commenting. --> + <!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocPackage --> + <module name="JavadocPackage"> + <property name="allowLegacy" value="true"/> + </module> + + <!-- Checks whether files end with a new line. --> + <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile --> + <module name="NewlineAtEndOfFile"/> + + <!-- Checks that property files contain the same keys. --> + <!-- See http://checkstyle.sf.net/config_misc.html#Translation --> + <module name="Translation"/> + + <module name="FileLength"/> + + <module name="FileTabCharacter"> + <property name="eachLine" value="true"/> + </module> + + <module name="RegexpSingleline"> + <!-- \s matches whitespace character, $ matches end of line. --> + <property name="format" value="\s+$"/> + <property name="message" value="Line has trailing spaces."/> + </module> + + <module name="TreeWalker"> + + <property name="cacheFile" value="${checkstyle.cache.file}"/> + + <!-- Checks for Javadoc comments. --> + <!-- See http://checkstyle.sf.net/config_javadoc.html --> + <module name="JavadocMethod"/> + <module name="JavadocType"/> + <module name="JavadocVariable"/> + <module name="JavadocStyle"/> + + + <!-- Checks for Naming Conventions. --> + <!-- See http://checkstyle.sf.net/config_naming.html --> + <module name="ConstantName"/> + <module name="LocalFinalVariableName"/> + <module name="LocalVariableName"/> + <module name="MemberName"/> + <module name="MethodName"/> + <module name="PackageName"/> + <module name="ParameterName"/> + <module name="StaticVariableName"/> + <module name="TypeName"/> + + + <!-- Checks for Headers --> + <!-- See http://checkstyle.sf.net/config_header.html --> + <!-- <module name="Header"> --> + <!-- The follow property value demonstrates the ability --> + <!-- to have access to ANT properties. In this case it uses --> + <!-- the ${basedir} property to allow Checkstyle to be run --> + <!-- from any directory within a project. See property --> + <!-- expansion, --> + <!-- http://checkstyle.sf.net/config.html#properties --> + <!-- <property --> + <!-- name="headerFile" --> + <!-- value="${basedir}/java.header"/> --> + <!-- </module> --> + + + <!-- Checks for imports --> + <!-- See http://checkstyle.sf.net/config_import.html --> + <module name="AvoidStarImport"/> + <module name="IllegalImport"/> <!-- defaults to sun.* packages --> + <module name="RedundantImport"/> + <module name="UnusedImports"/> + + + <!-- Checks for Size Violations. --> + <!-- See http://checkstyle.sf.net/config_sizes.html --> + <module name="LineLength"/> + <module name="MethodLength"/> + <module name="ParameterNumber"/> + + + <!-- Checks for whitespace --> + <!-- See http://checkstyle.sf.net/config_whitespace.html --> + <module name="EmptyForIteratorPad"/> + <module name="MethodParamPad"/> + <module name="NoWhitespaceAfter"/> + <module name="NoWhitespaceBefore"/> + <module name="OperatorWrap"/> + <module name="ParenPad"/> + <module name="TypecastParenPad"/> + <module name="WhitespaceAfter"/> + <module name="WhitespaceAround"/> + + + <!-- Modifier Checks --> + <!-- See http://checkstyle.sf.net/config_modifiers.html --> + <module name="ModifierOrder"/> + <module name="RedundantModifier"/> + + + <!-- Checks for blocks. You know, those {}'s --> + <!-- See http://checkstyle.sf.net/config_blocks.html --> + <module name="AvoidNestedBlocks"/> + <module name="EmptyBlock"/> + <module name="LeftCurly"/> + <module name="NeedBraces"/> + <module name="RightCurly"/> + + + <!-- Checks for common coding problems --> + <!-- See http://checkstyle.sf.net/config_coding.html --> + <module name="AvoidInlineConditionals"/> + <module name="DoubleCheckedLocking"/> <!-- MY FAVOURITE --> + <module name="EmptyStatement"/> + <module name="EqualsHashCode"/> + <module name="HiddenField"/> + <module name="IllegalInstantiation"/> + <module name="InnerAssignment"/> + <module name="MagicNumber"/> + <module name="MissingSwitchDefault"/> + <module name="RedundantThrows"/> + <module name="SimplifyBooleanExpression"/> + <module name="SimplifyBooleanReturn"/> + + <!-- Checks for class design --> + <!-- See http://checkstyle.sf.net/config_design.html --> + <module name="DesignForExtension"/> + <module name="FinalClass"/> + <module name="HideUtilityClassConstructor"/> + <module name="InterfaceIsType"/> + <module name="VisibilityModifier"/> + + + <!-- Miscellaneous other checks. --> + <!-- See http://checkstyle.sf.net/config_misc.html --> + <module name="ArrayTypeStyle"/> + <module name="FinalParameters"/> + <module name="TodoComment"/> + <module name="UpperEll"/> + + </module> + +</module> Property changes on: trunk/plexus-graph/src/main/config/checkstyle/checkstyle.xml ___________________________________________________________________ Added: svn:mime-type + text/xml Added: svn:keywords + Date Revision Id Added: svn:eol-style + native Added: trunk/plexus-graph/src/main/config/pmd/ruleset.xml =================================================================== --- trunk/plexus-graph/src/main/config/pmd/ruleset.xml (rev 0) +++ trunk/plexus-graph/src/main/config/pmd/ruleset.xml 2010-09-10 20:13:54 UTC (rev 870) @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ruleset name="Plexus Ruleset" xmlns="http://pmd.sf.net/ruleset/1.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd" + xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd"> + + <!-- + Customized PMD ruleset for Plexus, see [0] for more information + [0] http://pmd.sourceforge.net/howtomakearuleset.html + --> + + <description> + This ruleset checks the code for discouraged programming constructs. + It contains almost every Java rule in PMD. + </description> + + <rule ref="rulesets/android.xml" /> + <rule ref="rulesets/basic.xml" /> + <rule ref="rulesets/braces.xml" /> + <rule ref="rulesets/clone.xml" /> + <rule ref="rulesets/codesize.xml" /> + <rule ref="rulesets/controversial.xml" /> + <rule ref="rulesets/coupling.xml" /> + <rule ref="rulesets/design.xml" /> + <rule ref="rulesets/finalizers.xml" /> + <rule ref="rulesets/imports.xml" /> + <rule ref="rulesets/j2ee.xml" /> + <rule ref="rulesets/javabeans.xml" /> + <rule ref="rulesets/junit.xml" /> + <rule ref="rulesets/logging-jakarta-commons.xml" /> + <rule ref="rulesets/logging-java.xml" /> + <rule ref="rulesets/migrating.xml" /> + <rule ref="rulesets/naming.xml" /> + <rule ref="rulesets/optimizations.xml" /> + <rule ref="rulesets/strictexception.xml" /> + <rule ref="rulesets/strings.xml" /> + <rule ref="rulesets/sunsecure.xml" /> + <rule ref="rulesets/typeresolution.xml" /> + <rule ref="rulesets/unusedcode.xml" /> + +</ruleset> Property changes on: trunk/plexus-graph/src/main/config/pmd/ruleset.xml ___________________________________________________________________ Added: svn:mime-type + text/xml Added: svn:keywords + Date Revision Id Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |