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/16 04:49:30 UTC

svn commit: r686440 - in /maven/sandbox/trunk/mercury/mercury-artifact/src: main/java/org/apache/maven/mercury/artifact/QualityRange.java test/java/org/apache/maven/mercury/artifact/QualityTest.java

Author: ogusakov
Date: Fri Aug 15 19:49:30 2008
New Revision: 686440

URL: http://svn.apache.org/viewvc?rev=686440&view=rev
Log:
added flexible upper boundary to version ranges

Added:
    maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/QualityRange.java
    maven/sandbox/trunk/mercury/mercury-artifact/src/test/java/org/apache/maven/mercury/artifact/QualityTest.java

Added: maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/QualityRange.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/QualityRange.java?rev=686440&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/QualityRange.java (added)
+++ maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/QualityRange.java Fri Aug 15 19:49:30 2008
@@ -0,0 +1,59 @@
+package org.apache.maven.mercury.artifact;
+
+/**
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class QualityRange
+{
+  public static final QualityRange SNAPSHOTS_ONLY = new QualityRange( Quality.SNAPSHOT_QUALITY, true, Quality.SNAPSHOT_TS_QUALITY, true );
+  public static final QualityRange ALPHA_ONLY     = new QualityRange( Quality.SNAPSHOT_QUALITY, false, Quality.BETA_QUALITY, false );
+  public static final QualityRange BETA_ONLY      = new QualityRange( Quality.ALPHA_QUALITY, false, Quality.RELEASE_QUALITY, false );
+  public static final QualityRange RELEASES_ONLY  = new QualityRange( Quality.RELEASE_QUALITY, true, Quality.RELEASE_QUALITY, true );
+  public static final QualityRange ALL            = new QualityRange( Quality.SNAPSHOT_QUALITY, true, Quality.RELEASE_QUALITY, true );
+  
+  protected Quality qualityFrom = Quality.SNAPSHOT_QUALITY;
+  protected boolean fromInclusive = true;
+  protected Quality qualityTo   = Quality.RELEASE_QUALITY;
+  protected boolean toInclusive = true;
+
+  /**
+   * @param qualityFrom
+   * @param fromInclusive
+   * @param qualityTo
+   * @param toInclusive
+   */
+  public QualityRange(
+      Quality qualityFrom,
+      boolean fromInclusive,
+      Quality qualityTo,
+      boolean toInclusive )
+  {
+    this.qualityFrom = qualityFrom;
+    this.fromInclusive = fromInclusive;
+    
+    this.qualityTo = qualityTo;
+    this.toInclusive = toInclusive;
+  }
+  
+  //---------------------------------------------------------------------------
+  public boolean isAcceptedQuality( Quality quality )
+  {
+    if( quality == null )
+      return false;
+
+    int from = quality.compareTo( qualityFrom );
+    if( from == 0 )
+      return fromInclusive;
+    
+    int to = quality.compareTo( qualityTo );
+    if( to == 0 )
+      return toInclusive;
+    
+    return from > 0 && to < 0;
+  }
+
+}

Added: maven/sandbox/trunk/mercury/mercury-artifact/src/test/java/org/apache/maven/mercury/artifact/QualityTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-artifact/src/test/java/org/apache/maven/mercury/artifact/QualityTest.java?rev=686440&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-artifact/src/test/java/org/apache/maven/mercury/artifact/QualityTest.java (added)
+++ maven/sandbox/trunk/mercury/mercury-artifact/src/test/java/org/apache/maven/mercury/artifact/QualityTest.java Fri Aug 15 19:49:30 2008
@@ -0,0 +1,98 @@
+package org.apache.maven.mercury.artifact;
+
+import junit.framework.TestCase;
+
+/**
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class QualityTest
+    extends TestCase
+{
+  
+  public void testParser()
+  {
+    Quality q = new Quality("a-b_a-1");
+    
+    assertNotNull( q.quality );
+    assertEquals( QualityEnum.release, q.getQuality() );
+    assertEquals( Quality.DEFAULT_QUANTITY, q.getQuantity() );
+  }
+  
+  public void testSn1()
+  {
+    Quality q = new Quality("5.5-SNAPSHOT");
+    
+    assertNotNull( q.quality );
+    assertEquals( QualityEnum.snapshot, q.getQuality() );
+    assertEquals( Quality.DEFAULT_QUANTITY, q.getQuantity() );
+  }
+  
+  public void testSn2()
+  {
+    Quality q = new Quality("5.5-20080815.231708-12");
+    
+    assertNotNull( q.quality );
+    assertEquals( QualityEnum.snapshot, q.getQuality() );
+    assertEquals( Quality.SNAPSHOT_TS_QUANTITY, q.getQuantity() );
+  }
+  
+  public void testSn3()
+  {
+    Quality q = new Quality("5.5-20080815.231708-");
+    
+    assertNotNull( q.quality );
+    assertEquals( QualityEnum.release, q.getQuality() );
+  }
+  
+  public void testSn4()
+  {
+    Quality q = new Quality("5.5-20080815.23-15");
+    
+    assertNotNull( q.quality );
+    assertEquals( QualityEnum.release, q.getQuality() );
+  }
+  
+  public void testAlpha()
+  {
+    Quality q = new Quality("5.5-alpha-12");
+    
+    assertNotNull( q.quality );
+    assertEquals( QualityEnum.alpha, q.getQuality() );
+    assertEquals( 12, q.getQuantity() );
+  }
+  
+  public void testBeta()
+  {
+    Quality q = new Quality("5.5-beta-1");
+    
+    assertNotNull( q.quality );
+    assertEquals( QualityEnum.beta, q.getQuality() );
+    assertEquals( 1, q.getQuantity() );
+  }
+  
+  public void testCompateQ()
+  {
+    Quality u   = Quality.UNKNOWN_QUALITY;
+    Quality sn   = new Quality("5.5-SNAPSHOT");
+    Quality snts = new Quality("5.5-5.5-20080815.231708-12");
+    Quality a1 = new Quality("5.5-5.5-alpha-1");
+    Quality a2 = new Quality("5.5-5.5-alpha-20");
+    Quality b1 = new Quality("5.5-5.5-beta-1");
+    Quality b2 = new Quality("5.5-5.5-beta-10");
+    Quality r  = new Quality("5.5");
+
+    assertTrue( u.compareTo( sn ) < 0 );
+    assertTrue( sn.compareTo( snts ) == 0 );
+    assertTrue( snts.compareTo( a1 ) < 0 );
+    assertEquals( 0, a1.compareTo( a1 ) );
+    assertTrue( a1.compareTo( a2 ) < 0 );
+    assertTrue( a2.compareTo( b1 ) < 0 );
+    assertTrue( b1.compareTo( b2 ) < 0 );
+    assertTrue( b2.compareTo( r ) < 0 );
+    assertEquals( 0, r.compareTo( r ) );
+  }
+}