/******************************************************************************* * * Copyright (c) 2010-2011 Sonatype, Inc. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * * * * *******************************************************************************/ package org.hudsonci.utils.common; /** * Utility supplying different ways to format a version number. * * @author Jamie Whitehouse * @since 2.1.0 */ class VersionFormatter { /** * @return a formatted version number containing the raw information */ public static String asRawVersion(String version, String timestamp, String sequence) { StringBuilder buff = new StringBuilder(); if (version == null) { version = VersionSupport.UNKNOWN; } buff.append(version); if (timestamp != null) { buff.append(",").append(timestamp); } if (sequence != null) { buff.append("#").append(sequence); } return buff.toString(); } /** * Generates an appropriate format based on the project being a release or * development version. Example: 0.2.1,201009291818#1 * * @return a formatted version number in the simplest and most significant * form */ public static String asCanonicalVersion(String version, String timestamp, String sequence) { String derivedVersion = version; if (derivedVersion == null) { derivedVersion = VersionSupport.UNKNOWN; } String snapshot = "-SNAPSHOT"; if (derivedVersion.contains(snapshot)) { derivedVersion = asRawVersion(version.replace(snapshot, ""), timestamp, sequence); } return derivedVersion; } }