Skip to content
Snippets Groups Projects
Commit 06d1ce8d authored by Tobias Ullerich's avatar Tobias Ullerich
Browse files

Add json loader, move sql loader, add json field name to JsonDef

parent 0e99bf3b
Branches
No related tags found
No related merge requests found
Showing
with 125 additions and 15 deletions
package de.tobias.playpad.server.project
/**
* Created by tobias on 17.02.17.
*/
object JsonDef {
val PROJECT_ID = "id"
val PROJECT_NAME = "name"
val PROJECT_PAGES = "pages"
val PAGE_ID = "id"
val PAGE_NAME = "name"
val PAGE_POSITION = "position"
val PAGE_PADS = "pads"
val PAD_ID = "id"
val PAD_NAME = "name"
val PAD_POSITION = "position"
val PAD_PAGE = "page"
}
package de.tobias.playpad.server.project.loader.json
import java.util.UUID
import com.google.gson.{JsonArray, JsonObject}
import de.tobias.playpad.server.project.JsonDef._
import de.tobias.playpad.server.project.Pad
import scala.collection.JavaConverters
/**
* Created by tobias on 17.02.17.
*/
class PadLoader {
def load(jsonArray: JsonArray): List[Pad] = {
val it = JavaConverters.asScalaIterator(jsonArray.iterator())
val pads = it.filter(_.isJsonObject).map(i => {
val json = i.asInstanceOf[JsonObject]
val pad = new Pad()
pad.id = UUID.fromString(json.get(PAD_ID).getAsString)
pad.name = json.get(PAD_NAME).getAsString
pad
}).toList
pads
}
}
package de.tobias.playpad.server.project.loader.json
import java.util.UUID
import com.google.gson.{JsonArray, JsonObject}
import de.tobias.playpad.server.project.JsonDef._
import de.tobias.playpad.server.project.Page
import scala.collection.JavaConverters
/**
* Created by tobias on 17.02.17.
*/
class PageLoader {
def load(jsonArray: JsonArray): List[Page] = {
val it = JavaConverters.asScalaIterator(jsonArray.iterator())
val pages = it.filter(_.isJsonObject).map(i => {
val json = i.asInstanceOf[JsonObject]
val page = new Page()
page.id = UUID.fromString(json.get(PAGE_ID).getAsString)
page.name = json.get(PAGE_NAME).getAsString
val padLoader = new PadLoader
page.pads = padLoader.load(json.get(PAGE_PADS).getAsJsonArray)
page
}).toList
pages
}
}
package de.tobias.playpad.server.project.loader.json
import java.util.UUID
import com.google.gson.JsonObject
import de.tobias.playpad.server.project.JsonDef._
import de.tobias.playpad.server.project.Project
/**
* Created by tobias on 17.02.17.
*/
class ProjectLoader {
def load(json: JsonObject): Project = {
val project = new Project()
project.id = UUID.fromString(json.get(PROJECT_ID).getAsString)
project.name = json.get(PROJECT_NAME).getAsString
val pageLoader = new PageLoader
project.pages = pageLoader.load(json.getAsJsonArray(PROJECT_PAGES))
project
}
}
package de.tobias.playpad.server.project.loader
package de.tobias.playpad.server.project.loader.sql
import java.sql.Connection
import java.util.UUID
import de.tobias.playpad.server.project.{Pad, Page}
import de.tobias.playpad.server.project.Pad
/**
* Created by tobias on 17.02.17.
......
package de.tobias.playpad.server.project.loader
package de.tobias.playpad.server.project.loader.sql
import java.sql.Connection
import java.util.UUID
......
package de.tobias.playpad.server.project.loader
package de.tobias.playpad.server.project.loader.sql
import java.sql.Connection
import java.util.UUID
import de.tobias.playpad.server.project.Project
import scala.collection.mutable.ListBuffer
/**
* Created by tobias on 17.02.17.
*/
......
package de.tobias.playpad.server.project.saver.json
import com.google.gson.{JsonElement, JsonObject}
import de.tobias.playpad.server.project.JsonDef._
import de.tobias.playpad.server.project.Pad
/**
......@@ -11,10 +12,10 @@ class PadSaver {
def save(pad: Pad): JsonElement = {
val jsonObject = new JsonObject()
jsonObject.addProperty("id", pad.id.toString)
jsonObject.addProperty("name", pad.name)
jsonObject.addProperty("position", pad.position)
jsonObject.addProperty("page", pad.pageIndex)
jsonObject.addProperty(PAD_ID, pad.id.toString)
jsonObject.addProperty(PAD_NAME, pad.name)
jsonObject.addProperty(PAD_POSITION, pad.position)
jsonObject.addProperty(PAD_PAGE, pad.pageIndex)
jsonObject
}
......
package de.tobias.playpad.server.project.saver.json
import com.google.gson.{JsonArray, JsonElement, JsonObject}
import de.tobias.playpad.server.project.JsonDef._
import de.tobias.playpad.server.project.Page
/**
......@@ -15,9 +16,10 @@ class PageSaver {
val padArray = new JsonArray()
page.pads.foreach(pad => padArray.add(padSaver.save(pad)))
jsonObject.addProperty("name", page.name)
jsonObject.addProperty("position", page.position)
jsonObject.add("pads", padArray)
jsonObject.addProperty(PAGE_ID, page.id.toString)
jsonObject.addProperty(PAGE_NAME, page.name)
jsonObject.addProperty(PAGE_POSITION, page.position)
jsonObject.add(PAGE_PADS, padArray)
jsonObject
}
......
package de.tobias.playpad.server.project.saver.json
import com.google.gson.{JsonArray, JsonObject}
import de.tobias.playpad.server.project.JsonDef._
import de.tobias.playpad.server.project.Project
/**
......@@ -15,8 +16,9 @@ class ProjectSaver {
val pageArray = new JsonArray
project.pages.foreach(page => pageArray.add(pageSaver.save(page)))
jsonObject.addProperty("name", project.name)
jsonObject.add("pages", pageArray)
jsonObject.addProperty(PROJECT_ID, project.id.toString)
jsonObject.addProperty(PROJECT_NAME, project.name)
jsonObject.add(PROJECT_PAGES, pageArray)
jsonObject
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment