[Plexus-svn] SF.net SVN: plexus:[888] trunk/plexus-graph/src/test/java/com/phoenixst/ plexus/Simpl
Status: Alpha
Brought to you by:
rconner
From: <rc...@us...> - 2010-09-15 22:38:02
|
Revision: 888 http://plexus.svn.sourceforge.net/plexus/?rev=888&view=rev Author: rconner Date: 2010-09-15 22:37:56 +0000 (Wed, 15 Sep 2010) Log Message: ----------- Clean up the code. Modified Paths: -------------- trunk/plexus-graph/src/test/java/com/phoenixst/plexus/SimpleObjectEdge.java Modified: trunk/plexus-graph/src/test/java/com/phoenixst/plexus/SimpleObjectEdge.java =================================================================== --- trunk/plexus-graph/src/test/java/com/phoenixst/plexus/SimpleObjectEdge.java 2010-09-15 22:22:57 UTC (rev 887) +++ trunk/plexus-graph/src/test/java/com/phoenixst/plexus/SimpleObjectEdge.java 2010-09-15 22:37:56 UTC (rev 888) @@ -1,7 +1,7 @@ /* * $Id$ * - * Copyright (C) 1994-2006 by Phoenix Software Technologists, + * Copyright (C) 1994-2010 by Phoenix Software Technologists, * Inc. and others. All rights reserved. * * THIS PROGRAM AND DOCUMENTATION IS PROVIDED UNDER THE TERMS OF THE @@ -19,18 +19,16 @@ /** - * An <code>Edge</code> which defines {@link #equals(Object) equals( - * Object )} differently for testing purposes. Because of how {@link - * #equals(Object) equals( Object )} is defined, instances of this - * class may only be used by multigraphs when the endpoints and - * contained user-defined object are sufficient to distinguish - * distinct edges. + * An <code>Edge</code> which defines {@link #equals(Object) equals( Object )} + * differently for testing purposes. Because of how {@link #equals(Object) + * equals( Object )} is defined, instances of this class may only be used by + * multigraphs when the endpoints and contained user-defined object are + * sufficient to distinguish distinct edges. * - * @author Ray A. Conner + * @author rconner */ public class SimpleObjectEdge extends DefaultObjectEdge { - private static final long serialVersionUID = 2L; @@ -38,13 +36,10 @@ // Constructor //////////////////////////////////////// - /** - * Creates a new <code>SimpleObjectEdge</code>. + * Creates a new <code>SimpleObjectEdge</code>. */ - public SimpleObjectEdge( Object object, - Object tail, Object head, - boolean directed ) + public SimpleObjectEdge( Object object, Object tail, Object head, boolean directed ) { super( object, tail, head, directed ); } @@ -54,41 +49,47 @@ // Other methods //////////////////////////////////////// + private boolean equals( Object tail, Object head ) + { + return GraphUtils.equals( getTail(), tail ) + && GraphUtils.equals( getHead(), head ); + } /** - * Two <code>SimpleObjectEdges</code> are equal if they have the - * same directedness, have equal endpoints, and contain the same - * user-defined object. + * Two <code>SimpleObjectEdges</code> are equal if they have the same + * directedness, have equal endpoints, and contain the same user-defined + * object. */ @Override public boolean equals( Object object ) { - if( !(object instanceof SimpleObjectEdge) ) { + if( !( object instanceof SimpleObjectEdge ) ) { return false; } SimpleObjectEdge edge = (SimpleObjectEdge) object; - if( isDirected() ) { - return edge.isDirected() - && GraphUtils.equals( getUserObject(), edge.getUserObject() ) - && GraphUtils.equals( getTail(), edge.getTail() ) - && GraphUtils.equals( getHead(), edge.getHead() ); + if( !isDirected() == edge.isDirected() ) { + return false; } - return !edge.isDirected() - && GraphUtils.equals( getUserObject(), edge.getUserObject() ) - && ( (GraphUtils.equals( getTail(), edge.getTail() ) && GraphUtils.equals( getHead(), edge.getHead() )) - || (GraphUtils.equals( getTail(), edge.getHead() ) && GraphUtils.equals( getHead(), edge.getTail() )) ); + if( !GraphUtils.equals( getUserObject(), edge.getUserObject() ) ) { + return false; + } + if( equals( edge.getTail(), edge.getHead() ) ) { + return true; + } + return !isDirected() + && equals( edge.getHead(), edge.getTail() ); } + private int hashCode( Object object ) + { + return object == null ? 0 : object.hashCode(); + } @Override public int hashCode() { - Object tail = getTail(); - Object head = getHead(); - Object object = getUserObject(); - return ((tail == null) ? 0 : tail.hashCode()) - ^ ((head == null) ? 0 : head.hashCode()) - ^ ((object == null) ? 0 : object.hashCode()); + return hashCode( getUserObject() ) + ^ hashCode( getTail() ) + ^ hashCode( getHead() ); } - } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |