in shared/src/main/scala/org/jetbrains/sbt/structure/dataSerializers.scala [501:536]
override def deserialize(what: Node): Either[Throwable,ProjectData] = {
val id = (what \ "id").text
val buildURI = (what \ "buildURI").text.uri
val name = (what \ "name").text
val organization = (what \ "organization").text
val version = (what \ "version").text
val base = (what \ "base").text.file
val testSourceDirectories = (what \ "testSourceDir").map(_.text.file)
val mainSourceDirectories = (what \ "mainSourceDir").map(_.text.file)
val packagePrefix = (what \ "packagePrefix").headOption.map(_.text)
val basePackages = (what \ "basePackage").map(_.text)
val target = (what \ "target").text.file
val configurations = (what \ "configuration").deserialize[ConfigurationData]
val java = (what \ "java").deserialize[JavaData].headOption
val scala = (what \ "scala").deserialize[ScalaData].headOption
val compileOrder = (what \ "compileOrder").text
val resolvers = (what \ "resolver").deserialize[ResolverData].toSet
val play2 = (what \ "play2").deserialize[Play2Data].headOption
val settings = (what \ "setting").deserialize[SettingData]
val tasks = (what \ "task").deserialize[TaskData]
val commands = (what \ "command").deserialize[CommandData]
val generatedManagedSources = (what \ "generatedManagedSources").headOption.map(_.text).flatMap { text =>
Try(text.toBoolean).toOption
}.getOrElse(false)
val tryDeps = (what \ "dependencies").deserializeOne[DependencyData]
tryDeps.right.map { dependencies =>
ProjectData(id, buildURI, name, organization, version, base, packagePrefix, basePackages,
target, configurations, java, scala, compileOrder,
dependencies, resolvers, play2, settings, tasks, commands, mainSourceDirectories, testSourceDirectories, generatedManagedSources)
}
}