org.apache.maven.shared.release.versions
Class DefaultVersionInfo

java.lang.Object
  extended by org.apache.maven.shared.release.versions.DefaultVersionInfo
All Implemented Interfaces:
Comparable<VersionInfo>, VersionInfo

public class DefaultVersionInfo
extends Object
implements VersionInfo

This compares and increments versions for a common java versioning scheme.

The supported version scheme has the following parts.
component-digits-annotation-annotationRevision-buildSpecifier
Example:
my-component-1.0.1-alpha-2-SNAPSHOT

Digits is the only required piece of the version string, and must contain at lease one "." period.

Implementation details:
The separators "_" and "-" between components are also optional (though they are usually recommended).
Example:
log4j-1.2.9-beta-9-SNAPSHOT == log4j1.2.9beta9SNAPSHOT == log4j_1.2.9_beta_9_SNAPSHOT

Leading zeros are significant when performing comparisons.

TODO: this parser is better than DefaultArtifactVersion - replace it with this (but align naming) and then remove this from here.


Field Summary
static Pattern ALTERNATE_PATTERN
           
static Pattern STANDARD_PATTERN
           
 
Constructor Summary
DefaultVersionInfo(List<String> digits, String annotation, String annotationRevision, String buildSpecifier, String annotationSeparator, String annotationRevSeparator, String buildSeparator)
           
DefaultVersionInfo(String version)
          Constructs this object and parses the supplied version string.
 
Method Summary
 int compareTo(VersionInfo obj)
          Compares this DefaultVersionInfo to the supplied DefaultVersionInfo to determine which version is greater.
 boolean equals(Object obj)
           
 String getAnnotation()
           
 String getAnnotationRevision()
           
 String getBuildSpecifier()
           
 List<String> getDigits()
           
 VersionInfo getNextVersion()
          Returns a VersionInfo object which represents the next version of this object.
 String getReleaseVersionString()
          Returns a string representing the version without a snapshot specification.
 String getSnapshotVersionString()
          Returns a string representing the version with a snapshot specification
protected static String getVersionString(DefaultVersionInfo info, String buildSpecifier, String buildSeparator)
           
protected  String incrementVersionString(String s)
          Takes a string and increments it as an integer.
 boolean isSnapshot()
          Returns whether this represents a snapshot version.
protected static String joinDigitString(List<String> digits)
          Simply joins the items in the list with "." period
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

STANDARD_PATTERN

public static final Pattern STANDARD_PATTERN

ALTERNATE_PATTERN

public static final Pattern ALTERNATE_PATTERN
Constructor Detail

DefaultVersionInfo

public DefaultVersionInfo(String version)
                   throws VersionParseException
Constructs this object and parses the supplied version string.

Parameters:
version -
Throws:
VersionParseException

DefaultVersionInfo

public DefaultVersionInfo(List<String> digits,
                          String annotation,
                          String annotationRevision,
                          String buildSpecifier,
                          String annotationSeparator,
                          String annotationRevSeparator,
                          String buildSeparator)
Method Detail

isSnapshot

public boolean isSnapshot()
Description copied from interface: VersionInfo
Returns whether this represents a snapshot version.

Specified by:
isSnapshot in interface VersionInfo
Returns:

getNextVersion

public VersionInfo getNextVersion()
Description copied from interface: VersionInfo
Returns a VersionInfo object which represents the next version of this object.

Specified by:
getNextVersion in interface VersionInfo
Returns:

compareTo

public int compareTo(VersionInfo obj)
Compares this DefaultVersionInfo to the supplied DefaultVersionInfo to determine which version is greater.

Specified by:
compareTo in interface Comparable<VersionInfo>
Parameters:
obj - the comparison version
Returns:
the comparison value
Throws:
IllegalArgumentException - if the components differ between the objects or if either of the annotations can not be determined.

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

incrementVersionString

protected String incrementVersionString(String s)
Takes a string and increments it as an integer. Preserves any lpad of "0" zeros.

Parameters:
s -

getSnapshotVersionString

public String getSnapshotVersionString()
Description copied from interface: VersionInfo
Returns a string representing the version with a snapshot specification

Specified by:
getSnapshotVersionString in interface VersionInfo
Returns:

getReleaseVersionString

public String getReleaseVersionString()
Description copied from interface: VersionInfo
Returns a string representing the version without a snapshot specification.

Specified by:
getReleaseVersionString in interface VersionInfo
Returns:

toString

public String toString()
Overrides:
toString in class Object

getVersionString

protected static String getVersionString(DefaultVersionInfo info,
                                         String buildSpecifier,
                                         String buildSeparator)

joinDigitString

protected static String joinDigitString(List<String> digits)
Simply joins the items in the list with "." period

Parameters:
digits -

getDigits

public List<String> getDigits()

getAnnotation

public String getAnnotation()

getAnnotationRevision

public String getAnnotationRevision()

getBuildSpecifier

public String getBuildSpecifier()


Copyright © 2002-2012 The Apache Software Foundation. All Rights Reserved.