You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by og...@apache.org on 2008/08/05 21:05:00 UTC

svn commit: r682872 - /maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactBasicMetadata.java

Author: ogusakov
Date: Tue Aug  5 12:05:00 2008
New Revision: 682872

URL: http://svn.apache.org/viewvc?rev=682872&view=rev
Log:
added relocations to basic metadata to capture all intermediate relocations

Modified:
    maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactBasicMetadata.java

Modified: maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactBasicMetadata.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactBasicMetadata.java?rev=682872&r1=682871&r2=682872&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactBasicMetadata.java (original)
+++ maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactBasicMetadata.java Tue Aug  5 12:05:00 2008
@@ -1,5 +1,10 @@
 package org.apache.maven.mercury.artifact;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import org.codehaus.plexus.util.StringUtils;
+
 
 /**
  * this is the most primitive metadata there is, usually used to query repository for "real" metadata.
@@ -22,6 +27,13 @@
   protected String artifactId;
 
   protected String version;
+  
+  /** 
+   * relocation chain after processing by
+   * ProjectBuilder
+   */
+  protected List<ArtifactCoordinates> relocations;
+  protected ArtifactCoordinates effectiveCoordinates;
 
   // This is Maven specific. jvz/
   protected String classifier;
@@ -34,8 +46,9 @@
 
   protected boolean optional;
 
-  /** transient helper object, used by DependencyBuilder */
+  /** transient helper objects, used by DependencyBuilder */
   transient Object tracker;
+  transient Boolean local = false;
     
   //------------------------------------------------------------------
   public ArtifactBasicMetadata()
@@ -260,7 +273,63 @@
   {
     return classifier == null;
   }
+
+  public Boolean isLocal()
+  {
+    return local;
+  }
+
+  public void setLocal( Boolean local )
+  {
+    this.local = local;
+  }
+  
+  public ArtifactCoordinates getEffectiveCoordinates()
+  {
+    if( relocations == null || relocations.isEmpty() )
+      return new ArtifactCoordinates( groupId, artifactId, version );
+    
+    return relocations.get( relocations.size() - 1 );
+  }
+  
+  public ArtifactBasicMetadata addRelocation( ArtifactCoordinates coord )
+  {
+    if( coord == null )
+      return this;
+
+    if( relocations == null )
+      relocations = new ArrayList<ArtifactCoordinates>(2);
+    
+    if( coord.getGroupId() == null )
+      coord.setGroupId( groupId );
+    
+    if( coord.getArtifactId() == null )
+      coord.setArtifactId( artifactId );
+    
+    if( coord.getVersion() == null )
+      coord.setVersion( version );
+    
+    relocations.add( coord );
+    effectiveCoordinates = coord;
     
+    return this;
+  }
+  
+  public String getEffectiveGroupId()
+  {
+    return effectiveCoordinates == null ? groupId: effectiveCoordinates.getGroupId();
+  }
+  
+  public String getEffectiveArtifactId()
+  {
+    return effectiveCoordinates == null ? artifactId: effectiveCoordinates.getArtifactId();
+  }
+  
+  public String getEffectiveersion()
+  {
+    return effectiveCoordinates == null ? version: effectiveCoordinates.getVersion();
+  }
+
   @Override
   public boolean equals( Object obj )
   {
@@ -269,6 +338,7 @@
     
     return toString().equals( obj.toString() );
   }
+  
   @Override
   public int hashCode()
   {