You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ma...@apache.org on 2007/09/14 18:08:08 UTC

svn commit: r575736 - /maven/shared/trunk/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysis.java

Author: markh
Date: Fri Sep 14 09:08:07 2007
New Revision: 575736

URL: http://svn.apache.org/viewvc?rev=575736&view=rev
Log:
o Implemented hashCode, equals and toString
o Added convenience default constructor
o Better set handling

Modified:
    maven/shared/trunk/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysis.java

Modified: maven/shared/trunk/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysis.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysis.java?rev=575736&r1=575735&r2=575736&view=diff
==============================================================================
--- maven/shared/trunk/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysis.java (original)
+++ maven/shared/trunk/maven-dependency-analyzer/src/main/java/org/apache/maven/shared/dependency/analyzer/ProjectDependencyAnalysis.java Fri Sep 14 09:08:07 2007
@@ -19,6 +19,8 @@
  * under the License.
  */
 
+import java.util.Collections;
+import java.util.HashSet;
 import java.util.Set;
 
 /**
@@ -38,13 +40,18 @@
     private final Set unusedDeclaredArtifacts;
 
     // constructors -----------------------------------------------------------
+    
+    public ProjectDependencyAnalysis()
+    {
+        this( null, null, null );
+    }
 
     public ProjectDependencyAnalysis( Set usedDeclaredArtifacts, Set usedUndeclaredArtifacts,
                                       Set unusedDeclaredArtifacts )
     {
-        this.usedDeclaredArtifacts = usedDeclaredArtifacts;
-        this.usedUndeclaredArtifacts = usedUndeclaredArtifacts;
-        this.unusedDeclaredArtifacts = unusedDeclaredArtifacts;
+        this.usedDeclaredArtifacts = safeCopy(usedDeclaredArtifacts);
+        this.usedUndeclaredArtifacts = safeCopy(usedUndeclaredArtifacts);
+        this.unusedDeclaredArtifacts = safeCopy(unusedDeclaredArtifacts);
     }
 
     // public methods ---------------------------------------------------------
@@ -62,5 +69,89 @@
     public Set getUnusedDeclaredArtifacts()
     {
         return unusedDeclaredArtifacts;
+    }
+    
+    // Object methods ---------------------------------------------------------
+    
+    /*
+     * @see java.lang.Object#hashCode()
+     */
+    public int hashCode()
+    {
+        int hashCode = getUsedDeclaredArtifacts().hashCode();
+        hashCode = (hashCode * 37) + getUsedUndeclaredArtifacts().hashCode();
+        hashCode = (hashCode * 37) + getUnusedDeclaredArtifacts().hashCode();
+        
+        return hashCode;
+    }
+    
+    /*
+     * @see java.lang.Object#equals(java.lang.Object)
+     */
+    public boolean equals( Object object )
+    {
+        boolean equals;
+        
+        if ( object instanceof ProjectDependencyAnalysis )
+        {
+            ProjectDependencyAnalysis analysis = (ProjectDependencyAnalysis) object;
+            
+            equals = getUsedDeclaredArtifacts().equals( analysis.getUsedDeclaredArtifacts() )
+                && getUsedUndeclaredArtifacts().equals( analysis.getUsedUndeclaredArtifacts() )
+                && getUnusedDeclaredArtifacts().equals( analysis.getUnusedDeclaredArtifacts() );
+        }
+        else
+        {
+            equals = false;
+        }
+        
+        return equals;
+    }
+    
+    /*
+     * @see java.lang.Object#toString()
+     */
+    public String toString()
+    {
+        StringBuffer buffer = new StringBuffer();
+        
+        if ( !getUsedDeclaredArtifacts().isEmpty() )
+        {
+            buffer.append( "usedDeclaredArtifacts=" ).append( getUsedDeclaredArtifacts() );
+        }
+        
+        if ( !getUsedUndeclaredArtifacts().isEmpty() )
+        {
+            if ( buffer.length() > 0)
+            {
+                buffer.append( "," );
+            }
+            
+            buffer.append( "usedUndeclaredArtifacts=" ).append( getUsedUndeclaredArtifacts() );
+        }
+        
+        if ( !getUnusedDeclaredArtifacts().isEmpty() )
+        {
+            if ( buffer.length() > 0)
+            {
+                buffer.append( "," );
+            }
+            
+            buffer.append( "unusedDeclaredArtifacts=" ).append( getUnusedDeclaredArtifacts() );
+        }
+
+        buffer.insert( 0, "[" );
+        buffer.insert( 0, getClass().getName() );
+        
+        buffer.append( "]" );
+        
+        return buffer.toString();
+    }
+    
+    // private methods --------------------------------------------------------
+    
+    private Set safeCopy( Set set )
+    {
+        return ( set == null ) ? Collections.EMPTY_SET : Collections.unmodifiableSet( new HashSet( set ) );
     }
 }