From 072349a925967dae886890bbe1142e520aa6df72 Mon Sep 17 00:00:00 2001
From: meil <ics.sora.meil@gmail.com>
Date: Sun, 14 Jun 2020 22:31:58 +0900
Subject: [PATCH] fix broken placeholder when empty value

---
 .../librarian/plugin/entities/PomDeveloper.kt       |  5 +++--
 .../plugin/entities/PomDeveloperNoNameSpace.kt      |  5 +++--
 .../meilcli/librarian/plugin/entities/PomLicense.kt |  5 +++--
 .../plugin/entities/PomLicenseNoNameSpace.kt        |  5 +++--
 .../librarian/plugin/entities/PomOrganization.kt    |  3 ++-
 .../plugin/entities/PomOrganizationNoNameSpace.kt   |  3 ++-
 .../librarian/plugin/entities/PomParentProject.kt   |  7 ++++---
 .../plugin/entities/PomParentProjectNoNameSpace.kt  |  7 ++++---
 .../meilcli/librarian/plugin/entities/PomProject.kt | 13 +++++++------
 .../plugin/entities/PomProjectNoNameSpace.kt        | 13 +++++++------
 .../librarian/plugin/extensions/StringExtensions.kt |  5 +++++
 .../net/meilcli/librarian/plugin/PomFileTest.kt     |  4 ++--
 12 files changed, 45 insertions(+), 30 deletions(-)
 create mode 100644 plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/extensions/StringExtensions.kt

diff --git a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomDeveloper.kt b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomDeveloper.kt
index 11fd816..f471d22 100644
--- a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomDeveloper.kt
+++ b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomDeveloper.kt
@@ -1,6 +1,7 @@
 package net.meilcli.librarian.plugin.entities
 
 import kotlinx.serialization.Serializable
+import net.meilcli.librarian.plugin.extensions.toNullIfEmpty
 import nl.adaptivity.xmlutil.serialization.XmlSerialName
 import nl.adaptivity.xmlutil.serialization.XmlValue
 
@@ -26,8 +27,8 @@ data class PomDeveloper(
     )
 
     override val name: String?
-        get() = nameValue?.value
+        get() = nameValue?.value?.toNullIfEmpty()
 
     override val organization: String?
-        get() = organizationValue?.value
+        get() = organizationValue?.value?.toNullIfEmpty()
 }
\ No newline at end of file
diff --git a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomDeveloperNoNameSpace.kt b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomDeveloperNoNameSpace.kt
index 1defb09..27a600c 100644
--- a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomDeveloperNoNameSpace.kt
+++ b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomDeveloperNoNameSpace.kt
@@ -1,6 +1,7 @@
 package net.meilcli.librarian.plugin.entities
 
 import kotlinx.serialization.Serializable
+import net.meilcli.librarian.plugin.extensions.toNullIfEmpty
 import nl.adaptivity.xmlutil.serialization.XmlSerialName
 import nl.adaptivity.xmlutil.serialization.XmlValue
 
@@ -26,8 +27,8 @@ data class PomDeveloperNoNameSpace(
     )
 
     override val name: String?
-        get() = nameValue?.value
+        get() = nameValue?.value?.toNullIfEmpty()
 
     override val organization: String?
-        get() = organizationValue?.value
+        get() = organizationValue?.value?.toNullIfEmpty()
 }
\ No newline at end of file
diff --git a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomLicense.kt b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomLicense.kt
index 4546094..2752465 100644
--- a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomLicense.kt
+++ b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomLicense.kt
@@ -1,6 +1,7 @@
 package net.meilcli.librarian.plugin.entities
 
 import kotlinx.serialization.Serializable
+import net.meilcli.librarian.plugin.extensions.toNullIfEmpty
 import nl.adaptivity.xmlutil.serialization.XmlSerialName
 import nl.adaptivity.xmlutil.serialization.XmlValue
 
@@ -26,8 +27,8 @@ data class PomLicense(
     )
 
     override val name: String?
-        get() = nameValue?.value
+        get() = nameValue?.value?.toNullIfEmpty()
 
     override val url: String?
-        get() = urlValue?.value
+        get() = urlValue?.value?.toNullIfEmpty()
 }
\ No newline at end of file
diff --git a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomLicenseNoNameSpace.kt b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomLicenseNoNameSpace.kt
index 6926fd4..f19472f 100644
--- a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomLicenseNoNameSpace.kt
+++ b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomLicenseNoNameSpace.kt
@@ -1,6 +1,7 @@
 package net.meilcli.librarian.plugin.entities
 
 import kotlinx.serialization.Serializable
+import net.meilcli.librarian.plugin.extensions.toNullIfEmpty
 import nl.adaptivity.xmlutil.serialization.XmlSerialName
 import nl.adaptivity.xmlutil.serialization.XmlValue
 
@@ -26,8 +27,8 @@ data class PomLicenseNoNameSpace(
     )
 
     override val name: String?
-        get() = nameValue?.value
+        get() = nameValue?.value?.toNullIfEmpty()
 
     override val url: String?
-        get() = urlValue?.value
+        get() = urlValue?.value?.toNullIfEmpty()
 }
\ No newline at end of file
diff --git a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomOrganization.kt b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomOrganization.kt
index 5c88351..1ea7f92 100644
--- a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomOrganization.kt
+++ b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomOrganization.kt
@@ -1,6 +1,7 @@
 package net.meilcli.librarian.plugin.entities
 
 import kotlinx.serialization.Serializable
+import net.meilcli.librarian.plugin.extensions.toNullIfEmpty
 import nl.adaptivity.xmlutil.serialization.XmlSerialName
 import nl.adaptivity.xmlutil.serialization.XmlValue
 
@@ -18,5 +19,5 @@ data class PomOrganization(
     )
 
     override val name: String?
-        get() = nameValue?.value
+        get() = nameValue?.value?.toNullIfEmpty()
 }
\ No newline at end of file
diff --git a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomOrganizationNoNameSpace.kt b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomOrganizationNoNameSpace.kt
index 771dae5..ebece8b 100644
--- a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomOrganizationNoNameSpace.kt
+++ b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomOrganizationNoNameSpace.kt
@@ -1,6 +1,7 @@
 package net.meilcli.librarian.plugin.entities
 
 import kotlinx.serialization.Serializable
+import net.meilcli.librarian.plugin.extensions.toNullIfEmpty
 import nl.adaptivity.xmlutil.serialization.XmlSerialName
 import nl.adaptivity.xmlutil.serialization.XmlValue
 
@@ -18,5 +19,5 @@ data class PomOrganizationNoNameSpace(
     )
 
     override val name: String?
-        get() = nameValue?.value
+        get() = nameValue?.value?.toNullIfEmpty()
 }
\ No newline at end of file
diff --git a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomParentProject.kt b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomParentProject.kt
index 9ef238c..d1448b2 100644
--- a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomParentProject.kt
+++ b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomParentProject.kt
@@ -1,6 +1,7 @@
 package net.meilcli.librarian.plugin.entities
 
 import kotlinx.serialization.Serializable
+import net.meilcli.librarian.plugin.extensions.toNullIfEmpty
 import nl.adaptivity.xmlutil.serialization.XmlSerialName
 import nl.adaptivity.xmlutil.serialization.XmlValue
 
@@ -34,11 +35,11 @@ data class PomParentProject(
     )
 
     override val group: String?
-        get() = groupValue?.value
+        get() = groupValue?.value?.toNullIfEmpty()
 
     override val artifact: String?
-        get() = artifactValue?.value
+        get() = artifactValue?.value?.toNullIfEmpty()
 
     override val version: String?
-        get() = versionValue?.value
+        get() = versionValue?.value?.toNullIfEmpty()
 }
\ No newline at end of file
diff --git a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomParentProjectNoNameSpace.kt b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomParentProjectNoNameSpace.kt
index cdee9cf..7420c1e 100644
--- a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomParentProjectNoNameSpace.kt
+++ b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomParentProjectNoNameSpace.kt
@@ -1,6 +1,7 @@
 package net.meilcli.librarian.plugin.entities
 
 import kotlinx.serialization.Serializable
+import net.meilcli.librarian.plugin.extensions.toNullIfEmpty
 import nl.adaptivity.xmlutil.serialization.XmlSerialName
 import nl.adaptivity.xmlutil.serialization.XmlValue
 
@@ -34,11 +35,11 @@ data class PomParentProjectNoNameSpace(
     )
 
     override val group: String?
-        get() = groupValue?.value
+        get() = groupValue?.value?.toNullIfEmpty()
 
     override val artifact: String?
-        get() = artifactValue?.value
+        get() = artifactValue?.value?.toNullIfEmpty()
 
     override val version: String?
-        get() = versionValue?.value
+        get() = versionValue?.value?.toNullIfEmpty()
 }
\ No newline at end of file
diff --git a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomProject.kt b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomProject.kt
index 049584c..d027a0c 100644
--- a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomProject.kt
+++ b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomProject.kt
@@ -1,6 +1,7 @@
 package net.meilcli.librarian.plugin.entities
 
 import kotlinx.serialization.Serializable
+import net.meilcli.librarian.plugin.extensions.toNullIfEmpty
 import nl.adaptivity.xmlutil.serialization.XmlChildrenName
 import nl.adaptivity.xmlutil.serialization.XmlSerialName
 import nl.adaptivity.xmlutil.serialization.XmlValue
@@ -69,37 +70,37 @@ data class PomProject(
     )
 
     override var group: String?
-        get() = groupValue?.value
+        get() = groupValue?.value?.toNullIfEmpty()
         set(value) {
             groupValue = value?.let { PomGroup(it) }
         }
 
     override var artifact: String?
-        get() = artifactValue?.value
+        get() = artifactValue?.value?.toNullIfEmpty()
         set(value) {
             artifactValue = value?.let { PomArtifact(it) }
         }
 
     override var version: String?
-        get() = versionValue?.value
+        get() = versionValue?.value?.toNullIfEmpty()
         set(value) {
             versionValue = value?.let { PomVersion(it) }
         }
 
     override var name: String?
-        get() = nameValue?.value
+        get() = nameValue?.value?.toNullIfEmpty()
         set(value) {
             nameValue = value?.let { PomName(it) }
         }
 
     override var description: String?
-        get() = descriptionValue?.value
+        get() = descriptionValue?.value?.toNullIfEmpty()
         set(value) {
             descriptionValue = value?.let { PomDescription(it) }
         }
 
     override var url: String?
-        get() = urlValue?.value
+        get() = urlValue?.value?.toNullIfEmpty()
         set(value) {
             urlValue = value?.let { PomUrl(it) }
         }
diff --git a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomProjectNoNameSpace.kt b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomProjectNoNameSpace.kt
index 5f31ccc..6b2d7a5 100644
--- a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomProjectNoNameSpace.kt
+++ b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/entities/PomProjectNoNameSpace.kt
@@ -1,6 +1,7 @@
 package net.meilcli.librarian.plugin.entities
 
 import kotlinx.serialization.Serializable
+import net.meilcli.librarian.plugin.extensions.toNullIfEmpty
 import nl.adaptivity.xmlutil.serialization.XmlChildrenName
 import nl.adaptivity.xmlutil.serialization.XmlSerialName
 import nl.adaptivity.xmlutil.serialization.XmlValue
@@ -69,37 +70,37 @@ data class PomProjectNoNameSpace(
     )
 
     override var group: String?
-        get() = groupValue?.value
+        get() = groupValue?.value?.toNullIfEmpty()
         set(value) {
             groupValue = value?.let { PomGroup(it) }
         }
 
     override var artifact: String?
-        get() = artifactValue?.value
+        get() = artifactValue?.value?.toNullIfEmpty()
         set(value) {
             artifactValue = value?.let { PomArtifact(it) }
         }
 
     override var version: String?
-        get() = versionValue?.value
+        get() = versionValue?.value?.toNullIfEmpty()
         set(value) {
             versionValue = value?.let { PomVersion(it) }
         }
 
     override var name: String?
-        get() = nameValue?.value
+        get() = nameValue?.value?.toNullIfEmpty()
         set(value) {
             nameValue = value?.let { PomName(it) }
         }
 
     override var description: String?
-        get() = descriptionValue?.value
+        get() = descriptionValue?.value?.toNullIfEmpty()
         set(value) {
             descriptionValue = value?.let { PomDescription(it) }
         }
 
     override var url: String?
-        get() = urlValue?.value
+        get() = urlValue?.value?.toNullIfEmpty()
         set(value) {
             urlValue = value?.let { PomUrl(it) }
         }
diff --git a/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/extensions/StringExtensions.kt b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/extensions/StringExtensions.kt
new file mode 100644
index 0000000..02660da
--- /dev/null
+++ b/plugin-core/src/main/kotlin/net/meilcli/librarian/plugin/extensions/StringExtensions.kt
@@ -0,0 +1,5 @@
+package net.meilcli.librarian.plugin.extensions
+
+fun String.toNullIfEmpty(): String? {
+    return if (isEmpty()) null else this
+}
\ No newline at end of file
diff --git a/plugin-core/src/test/kotlin/net/meilcli/librarian/plugin/PomFileTest.kt b/plugin-core/src/test/kotlin/net/meilcli/librarian/plugin/PomFileTest.kt
index b238dcf..e109f0d 100644
--- a/plugin-core/src/test/kotlin/net/meilcli/librarian/plugin/PomFileTest.kt
+++ b/plugin-core/src/test/kotlin/net/meilcli/librarian/plugin/PomFileTest.kt
@@ -61,7 +61,7 @@ class PomFileTest {
         assertEquals("1.0.0", project.version)
         assertEquals("test-name", project.name)
         assertEquals("test-description", project.description)
-        assertEquals("", project.url)
+        assertNull(project.url)
         assertEquals(1, project.licenses?.size)
         assertEquals("The Apache License, Version 2.0", project.licenses?.first()?.name)
         assertEquals("http://www.apache.org/licenses/LICENSE-2.0.txt", project.licenses?.first()?.url)
@@ -85,7 +85,7 @@ class PomFileTest {
         assertEquals("1.0.0", project.version)
         assertEquals("test-name", project.name)
         assertEquals("test-description", project.description)
-        assertEquals("", project.url)
+        assertNull(project.url)
         assertEquals(1, project.licenses?.size)
         assertEquals("The Apache License, Version 2.0", project.licenses?.first()?.name)
         assertEquals("http://www.apache.org/licenses/LICENSE-2.0.txt", project.licenses?.first()?.url)