Updated for semver 1.2.0.

This commit is contained in:
Erik C. Thauvin 2019-04-01 17:43:10 -07:00
parent 2a9eccc632
commit 09ab2d5f8e

View file

@ -9,96 +9,31 @@ import java.time.*;
/** /**
* Provides semantic version information. * Provides semantic version information.
* *
* @author <a href="https://github.com/ethauvin/semver">Semantic Version * @author <a href="https://github.com/ethauvin/semver">Semantic Version Annotation Processor</a>
* Annotation Processor</a>
*/ */
public final class {{className}} { public final class {{className}} {
public final static String PRERELEASE_PREFIX = "-";
public final static String BUILDMETA_PREFIX = "+";
public final static String PROJECT = "{{project}}"; public final static String PROJECT = "{{project}}";
public final static LocalDateTime BUILDDATE = public final static LocalDateTime BUILDDATE =
LocalDateTime.ofInstant(Instant.ofEpochMilli({{epoch}}L), ZoneId.systemDefault()); LocalDateTime.ofInstant(Instant.ofEpochMilli({{epoch}}L), ZoneId.systemDefault());
public final static int MAJOR = {{major}}; public final static int MAJOR = {{major}};
public final static int MINOR = {{minor}}; public final static int MINOR = {{minor}};
public final static int PATCH = {{patch}}; public final static int PATCH = {{patch}};
public final static String PRERELEASE = "{{preRelease}}"; public final static String PRERELEASE = "{{preRelease}}";
public final static String BUILDMETA = "{{buildMeta}}"; public final static String BUILDMETA = "{{buildMeta}}";
/** /**
* The full version string. * The full semantic version string.
* <p>
* Formatted as:
* <blockquote>
* <code>MAJOR.MINOR.PATCH[-PRERELEASE][+BUILDMETADATA]</code>
* </blockquote>
* <p>
* For example:
* <ul>
* <li><code>1.0.0</code></li>
* <li><code>1.0.0-beta</code></li>
* <li><code>1.0.0+20160124144700</code></li>
* <li><code>1.0.0-alpha+001</code></li>
* </ul>
*/ */
public final static String VERSION = Integer.toString(MAJOR) + '.' public final static String VERSION = Integer.toString(MAJOR) + '.'
+ Integer.toString(MINOR) + '.' + Integer.toString(MINOR) + '.'
+ Integer.toString(PATCH) + Integer.toString(PATCH)
+ preReleaseWithPrefix() + buildMetaWithPrefix(); + ((!PRERELEASE.isEmpty()) ? "-" + PRERELEASE : "")
+ ((!BUILDMETA.isEmpty()) ? "+" + BUILDMETA : "");
/** /**
* Disables the default constructor. * Disables the default constructor.
*
* @throws UnsupportedOperationException If the constructor is called.
*/ */
private {{className}}() private {{className}}() {
throws UnsupportedOperationException {
throw new UnsupportedOperationException("Illegal constructor call."); throw new UnsupportedOperationException("Illegal constructor call.");
} }
}
/**
* Returns the build metadata with {@value #BUILDMETA_PREFIX} prefix.
*
* @return The build metadata, if any.
*/
public static String buildMetaWithPrefix() {
return buildMetaWithPrefix(BUILDMETA_PREFIX);
}
/**
* Returns the build metadata.
*
* @param prefix Prefix to prepend.
* @return The build metadata, if any.
*/
public static String buildMetaWithPrefix(final String prefix) {
if (BUILDMETA.length() > 0 && prefix.length() > 0) {
return prefix + BUILDMETA;
} else {
return BUILDMETA;
}
}
/**
* Returns the pre-release version with {@value #PRERELEASE_PREFIX} prefix.
*
* @return The pre-release version, if any.
*/
public static String preReleaseWithPrefix() {
return preReleaseWithPrefix(PRERELEASE_PREFIX);
}
/**
* Returns the pre-release version.
*
* @param prefix The prefix to prepend.
* @return The pre-release version, if any.
*/
public static String preReleaseWithPrefix(final String prefix) {
if (PRERELEASE.length() > 0 && prefix.length() > 0) {
return prefix + PRERELEASE;
} else {
return PRERELEASE;
}
}
}