make Developer email optional as it is not obligatory and some people don`t want to expose it

This commit is contained in:
0lejk4 2019-03-14 00:10:26 +02:00
parent 6d35f329b6
commit 0878b9db14
4 changed files with 15 additions and 10 deletions

View File

@ -7,7 +7,7 @@ package sbt.librarymanagement
final class Developer private (
val id: String,
val name: String,
val email: String,
val email: Option[String],
val url: java.net.URL) extends Serializable {
@ -22,7 +22,7 @@ final class Developer private (
override def toString: String = {
"Developer(" + id + ", " + name + ", " + email + ", " + url + ")"
}
private[this] def copy(id: String = id, name: String = name, email: String = email, url: java.net.URL = url): Developer = {
private[this] def copy(id: String = id, name: String = name, email: Option[String] = email, url: java.net.URL = url): Developer = {
new Developer(id, name, email, url)
}
def withId(id: String): Developer = {
@ -31,7 +31,7 @@ final class Developer private (
def withName(name: String): Developer = {
copy(name = name)
}
def withEmail(email: String): Developer = {
def withEmail(email: Option[String]): Developer = {
copy(email = email)
}
def withUrl(url: java.net.URL): Developer = {
@ -40,5 +40,5 @@ final class Developer private (
}
object Developer {
def apply(id: String, name: String, email: String, url: java.net.URL): Developer = new Developer(id, name, email, url)
def apply(id: String, name: String, email: Option[String], url: java.net.URL): Developer = new Developer(id, name, email, url)
}

View File

@ -13,7 +13,7 @@ implicit lazy val DeveloperFormat: JsonFormat[sbt.librarymanagement.Developer] =
unbuilder.beginObject(js)
val id = unbuilder.readField[String]("id")
val name = unbuilder.readField[String]("name")
val email = unbuilder.readField[String]("email")
val email = unbuilder.readField[Option[String]]("email")
val url = unbuilder.readField[java.net.URL]("url")
unbuilder.endObject()
sbt.librarymanagement.Developer(id, name, email, url)

View File

@ -328,10 +328,10 @@
"target": "Scala",
"type": "record",
"fields": [
{ "name": "id", "type": "String" },
{ "name": "name", "type": "String" },
{ "name": "email", "type": "String" },
{ "name": "url", "type": "java.net.URL" }
{ "name": "id", "type": "String" },
{ "name": "name", "type": "String" },
{ "name": "email", "type": "Option[String]" },
{ "name": "url", "type": "java.net.URL" }
]
},
{

View File

@ -206,8 +206,13 @@ class MakePom(val log: Logger) {
<developer>
<id>{ developer.id }</id>
<name>{ developer.name }</name>
<email>{ developer.email }</email>
<url>{ developer.url }</url>
{
developer.email match {
case Some(e)=> <email>{ e }</email>
case _ => NodeSeq.Empty
}
}
</developer>
}
}