Remove custom picklers

- sbt/serialization supports these
This commit is contained in:
Eugene Yokota 2015-03-09 21:14:23 -04:00
parent 8a0e8ef74e
commit 3afb941ad2
5 changed files with 1 additions and 110 deletions

View File

@ -126,7 +126,7 @@ object Artifact {
val tag = implicitly[FastTypeTag[Artifact]] val tag = implicitly[FastTypeTag[Artifact]]
def unpickle(tpe: String, reader: PReader): Any = { def unpickle(tpe: String, reader: PReader): Any = {
reader.pushHints() reader.pushHints()
reader.hintTag(tag) // reader.hintTag(tag)
reader.beginEntry() reader.beginEntry()
val name = stringPickler.unpickleEntry(reader.readField("name")).asInstanceOf[String] val name = stringPickler.unpickleEntry(reader.readField("name")).asInstanceOf[String]
val tp = stringPickler.unpickleEntry(reader.readField("type")).asInstanceOf[String] val tp = stringPickler.unpickleEntry(reader.readField("type")).asInstanceOf[String]

View File

@ -1,35 +0,0 @@
package sbt
import sbt.serialization._
import java.{ util => ju }
private[sbt] object DatePicklers {
private val longTag = implicitly[FastTypeTag[Long]]
implicit val datePickler: Pickler[ju.Date] = new Pickler[ju.Date] {
val tag = implicitly[FastTypeTag[ju.Date]]
def pickle(a: ju.Date, builder: PBuilder): Unit = {
builder.pushHints()
builder.hintTag(tag)
builder.beginEntry(a)
builder.putField("value", { b =>
b.hintTag(longTag)
longPickler.pickle(a.getTime, b)
})
builder.endEntry()
builder.popHints()
}
}
implicit val dateUnpickler: Unpickler[ju.Date] = new Unpickler[ju.Date] {
val tag = implicitly[FastTypeTag[ju.Date]]
def unpickle(tpe: String, reader: PReader): Any = {
reader.pushHints()
reader.hintTag(tag)
reader.beginEntry()
val a0 = longPickler.unpickleEntry(reader.readField("value")).asInstanceOf[Long]
val result = new ju.Date(a0)
reader.endEntry()
reader.popHints()
result
}
}
}

View File

@ -1,22 +0,0 @@
package sbt
import java.io.File
import sbt.serialization._
import java.net.URI
object FileMapPicklers {
implicit def fileMapPickler[A: Pickler: Unpickler: FastTypeTag]: Pickler[Map[File, A]] with Unpickler[Map[File, A]] = new Pickler[Map[File, A]] with Unpickler[Map[File, A]] {
val tag = implicitly[FastTypeTag[Map[File, A]]]
val stringAMapPickler = implicitly[Pickler[Map[String, A]]]
val stringAMapUnpickler = implicitly[Unpickler[Map[String, A]]]
def pickle(m: Map[File, A], builder: PBuilder): Unit =
stringAMapPickler.pickle(Map(m.toSeq map { case (k, v) => (k.toURI.toASCIIString, v) }: _*), builder)
def unpickle(tpe: String, reader: PReader): Any =
Map(stringAMapUnpickler.unpickle(tpe, reader).asInstanceOf[Map[String, A]].toSeq map {
case (k, v) =>
(new File(new URI(k)), v)
}: _*).asInstanceOf[Map[File, A]]
}
}

View File

@ -1,44 +0,0 @@
package sbt
import sbt.serialization._
private[sbt] object PairPicklers {
implicit def pairPickler[A1: FastTypeTag: Pickler: Unpickler, A2: FastTypeTag: Pickler: Unpickler](): Pickler[(A1, A2)] with Unpickler[(A1, A2)] =
new Pickler[(A1, A2)] with Unpickler[(A1, A2)] {
val a1Tag = implicitly[FastTypeTag[A1]]
val a2Tag = implicitly[FastTypeTag[A2]]
val tag = implicitly[FastTypeTag[(A1, A2)]]
val a1Pickler = implicitly[Pickler[A1]]
val a1Unpickler = implicitly[Unpickler[A1]]
val a2Pickler = implicitly[Pickler[A2]]
val a2Unpickler = implicitly[Unpickler[A2]]
def pickle(a: (A1, A2), builder: PBuilder): Unit = {
builder.pushHints()
builder.hintTag(tag)
builder.beginEntry(a)
builder.putField("_1", { b =>
b.hintTag(a1Tag)
a1Pickler.pickle(a._1, b)
})
builder.putField("_2", { b =>
b.hintTag(a2Tag)
a2Pickler.pickle(a._2, b)
})
builder.endEntry()
builder.popHints()
}
def unpickle(tpe: String, reader: PReader): Any = {
reader.pushHints()
reader.hintTag(tag)
reader.beginEntry()
val a0 = a1Unpickler.unpickleEntry(reader.readField("_1")).asInstanceOf[A1]
val a1 = a2Unpickler.unpickleEntry(reader.readField("_2")).asInstanceOf[A2]
val result = (a0, a1)
reader.endEntry()
reader.popHints()
result
}
}
}

View File

@ -159,13 +159,6 @@ object ModuleReport {
def apply(module: ModuleID, artifacts: Seq[(Artifact, File)], missingArtifacts: Seq[Artifact]): ModuleReport = def apply(module: ModuleID, artifacts: Seq[(Artifact, File)], missingArtifacts: Seq[Artifact]): ModuleReport =
new ModuleReport(module, artifacts, missingArtifacts, None, None, None, None, new ModuleReport(module, artifacts, missingArtifacts, None, None, None, None,
false, None, None, None, None, Map(), None, None, Nil, Nil, Nil) false, None, None, None, None, Map(), None, None, Nil, Nil, Nil)
import PairPicklers._
import DatePicklers._
private implicit val afPairPickler: Pickler[(Artifact, File)] with Unpickler[(Artifact, File)] =
pairPickler[Artifact, File]
private implicit def tuplePickler2: Pickler[(String, Option[String])] with Unpickler[(String, Option[String])] =
pairPickler[String, Option[String]]
implicit val pickler: Pickler[ModuleReport] with Unpickler[ModuleReport] = PicklerUnpickler.generate[ModuleReport] implicit val pickler: Pickler[ModuleReport] with Unpickler[ModuleReport] = PicklerUnpickler.generate[ModuleReport]
} }
@ -289,7 +282,6 @@ object UpdateReport {
} }
} }
import FileMapPicklers._
private val vectorConfigurationReportPickler = implicitly[Pickler[Vector[ConfigurationReport]]] private val vectorConfigurationReportPickler = implicitly[Pickler[Vector[ConfigurationReport]]]
private val vectorConfigurationReportUnpickler = implicitly[Unpickler[Vector[ConfigurationReport]]] private val vectorConfigurationReportUnpickler = implicitly[Unpickler[Vector[ConfigurationReport]]]
private val updateStatsPickler = implicitly[Pickler[UpdateStats]] private val updateStatsPickler = implicitly[Pickler[UpdateStats]]