From c65c0033e2051a7bccccad3366c3403b55bdfc58 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 26 Apr 2017 11:19:01 -0700 Subject: [PATCH] Added packageName annotation element. --- README.md | 25 ++++++++++--------- .../java/net/thauvin/erik/semver/Version.java | 2 ++ .../net/thauvin/erik/semver/VersionInfo.java | 1 + .../thauvin/erik/semver/VersionProcessor.java | 4 ++- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 0a5c2de..ef5aa42 100644 --- a/README.md +++ b/README.md @@ -112,18 +112,19 @@ Please also look at this [example](https://github.com/ethauvin/mobibot/blob/mast The following annotation elements and properties are available: -Element | Property | Description | Default -:------------|:---------------------|:----------------------------------|:---------------- -`project` | `version.project` | The project name. | -`major` | `version.major` | The major version number. | `1` -`minor` | `version.major` | The minor version number. | `0` -`patch` | `version.patch` | The patch version number. | `0` -`preRelease` | `version.prerelease` | The pre-release version. | -`buildMeta` | `version.buildmeta` | The build metadata version. | -`className` | | The name of the generated class. | `GeneratedVersion` -`properties` | | The properties file. | -`template` | | The template file. | `version.mustache` -`type` | | Either `java` or `kt` for Kotlin. | `java` +Element | Property | Description | Default +:-------------|:---------------------|:----------------------------------|:------------------------- +`project` | `version.project` | The project name. | +`major` | `version.major` | The major version number. | `1` +`minor` | `version.major` | The minor version number. | `0` +`patch` | `version.patch` | The patch version number. | `0` +`preRelease` | `version.prerelease` | The pre-release version. | +`buildMeta` | `version.buildmeta` | The build metadata version. | +`packageName` | | The package name. | _Same as annotated class_ +`className` | | The name of the generated class. | `GeneratedVersion` +`properties` | | The properties file. | +`template` | | The template file. | `version.mustache` +`type` | | Either `java` or `kt` for Kotlin. | `java` In order to easily incorporate with existing projects, the property keys may be assigned custom values: diff --git a/src/main/java/net/thauvin/erik/semver/Version.java b/src/main/java/net/thauvin/erik/semver/Version.java index 3ebc381..677aa7b 100644 --- a/src/main/java/net/thauvin/erik/semver/Version.java +++ b/src/main/java/net/thauvin/erik/semver/Version.java @@ -62,6 +62,8 @@ public @interface Version { int patch() default Constants.DEFAULT_PATCH; + String packageName() default Constants.EMPTY; + String patchKey() default Constants.KEY_VERSION_PATCH; String preRelease() default Constants.EMPTY; diff --git a/src/main/java/net/thauvin/erik/semver/VersionInfo.java b/src/main/java/net/thauvin/erik/semver/VersionInfo.java index 3bd19ab..18d6c91 100644 --- a/src/main/java/net/thauvin/erik/semver/VersionInfo.java +++ b/src/main/java/net/thauvin/erik/semver/VersionInfo.java @@ -78,6 +78,7 @@ public class VersionInfo { preRelease = version.preRelease(); project = version.project(); className = version.className(); + packageName = version.packageName(); } /** diff --git a/src/main/java/net/thauvin/erik/semver/VersionProcessor.java b/src/main/java/net/thauvin/erik/semver/VersionProcessor.java index f012f62..1e5381e 100644 --- a/src/main/java/net/thauvin/erik/semver/VersionProcessor.java +++ b/src/main/java/net/thauvin/erik/semver/VersionProcessor.java @@ -156,7 +156,9 @@ public class VersionProcessor extends AbstractProcessor { final PackageElement packageElement = (PackageElement) enclosingElement; try { final VersionInfo versionInfo = findValues(version); - versionInfo.setPackageName(packageElement.getQualifiedName().toString()); + if (version.packageName().equals(Constants.EMPTY)) { + versionInfo.setPackageName(packageElement.getQualifiedName().toString()); + } note("Found version: " + versionInfo.getVersion()); final String template; if (version.template().equals(Constants.DEFAULT_JAVA_TEMPLATE) &&