From 88c424ee62a33c349a485c5e03fa9f525ff2a22c Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Fri, 17 Feb 2017 22:29:54 +0100 Subject: [PATCH] add consts to loader and saver --- .../project/loader/json/PadLoader.scala | 7 ++--- .../project/loader/json/PageLoader.scala | 10 +++---- .../project/loader/json/ProjectLoader.scala | 5 ++-- .../server/project/loader/sql/PadLoader.scala | 19 +++++++------- .../project/loader/sql/PageLoader.scala | 17 ++++++------ .../project/loader/sql/ProjectLoader.scala | 12 ++++----- .../server/project/saver/json/PadSaver.scala | 3 +-- .../server/project/saver/json/PageSaver.scala | 3 +-- .../project/saver/json/ProjectSaver.scala | 3 +-- .../server/project/saver/sql/PadSaver.scala | 19 ++++++++++++++ .../server/project/saver/sql/PageSaver.scala | 21 +++++++++++++++ .../project/saver/sql/ProjectSaver.scala | 20 ++++++++++++++ .../server/project/{ => utils}/JsonDef.scala | 2 +- .../playpad/server/project/utils/SqlDef.scala | 26 +++++++++++++++++++ 14 files changed, 126 insertions(+), 41 deletions(-) create mode 100644 src/main/scala/de/tobias/playpad/server/project/saver/sql/PadSaver.scala create mode 100644 src/main/scala/de/tobias/playpad/server/project/saver/sql/PageSaver.scala create mode 100644 src/main/scala/de/tobias/playpad/server/project/saver/sql/ProjectSaver.scala rename src/main/scala/de/tobias/playpad/server/project/{ => utils}/JsonDef.scala (87%) create mode 100644 src/main/scala/de/tobias/playpad/server/project/utils/SqlDef.scala diff --git a/src/main/scala/de/tobias/playpad/server/project/loader/json/PadLoader.scala b/src/main/scala/de/tobias/playpad/server/project/loader/json/PadLoader.scala index 753974e..b60384d 100644 --- a/src/main/scala/de/tobias/playpad/server/project/loader/json/PadLoader.scala +++ b/src/main/scala/de/tobias/playpad/server/project/loader/json/PadLoader.scala @@ -3,8 +3,8 @@ 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 de.tobias.playpad.server.project.utils.JsonDef._ +import de.tobias.playpad.server.project.{Pad, Page} import scala.collection.JavaConverters @@ -12,7 +12,7 @@ import scala.collection.JavaConverters * Created by tobias on 17.02.17. */ class PadLoader { - def load(jsonArray: JsonArray): List[Pad] = { + def load(jsonArray: JsonArray, page: Page): List[Pad] = { val it = JavaConverters.asScalaIterator(jsonArray.iterator()) val pads = it.filter(_.isJsonObject).map(i => { val json = i.asInstanceOf[JsonObject] @@ -20,6 +20,7 @@ class PadLoader { val pad = new Pad() pad.id = UUID.fromString(json.get(PAD_ID).getAsString) pad.name = json.get(PAD_NAME).getAsString + pad.page = page pad }).toList diff --git a/src/main/scala/de/tobias/playpad/server/project/loader/json/PageLoader.scala b/src/main/scala/de/tobias/playpad/server/project/loader/json/PageLoader.scala index 2cd6532..de0a0d3 100644 --- a/src/main/scala/de/tobias/playpad/server/project/loader/json/PageLoader.scala +++ b/src/main/scala/de/tobias/playpad/server/project/loader/json/PageLoader.scala @@ -3,8 +3,8 @@ 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 de.tobias.playpad.server.project.utils.JsonDef._ +import de.tobias.playpad.server.project.{Page, Project} import scala.collection.JavaConverters @@ -12,8 +12,7 @@ import scala.collection.JavaConverters * Created by tobias on 17.02.17. */ class PageLoader { - - def load(jsonArray: JsonArray): List[Page] = { + def load(jsonArray: JsonArray, project: Project): List[Page] = { val it = JavaConverters.asScalaIterator(jsonArray.iterator()) val pages = it.filter(_.isJsonObject).map(i => { val json = i.asInstanceOf[JsonObject] @@ -23,8 +22,9 @@ class PageLoader { page.name = json.get(PAGE_NAME).getAsString val padLoader = new PadLoader - page.pads = padLoader.load(json.get(PAGE_PADS).getAsJsonArray) + page.pads = padLoader.load(json.get(PAGE_PADS).getAsJsonArray, page) + page.project = project page }).toList pages diff --git a/src/main/scala/de/tobias/playpad/server/project/loader/json/ProjectLoader.scala b/src/main/scala/de/tobias/playpad/server/project/loader/json/ProjectLoader.scala index 9a9556e..ce2831d 100644 --- a/src/main/scala/de/tobias/playpad/server/project/loader/json/ProjectLoader.scala +++ b/src/main/scala/de/tobias/playpad/server/project/loader/json/ProjectLoader.scala @@ -3,21 +3,20 @@ 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 +import de.tobias.playpad.server.project.utils.JsonDef._ /** * 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.pages = pageLoader.load(json.getAsJsonArray(PROJECT_PAGES), project) project } diff --git a/src/main/scala/de/tobias/playpad/server/project/loader/sql/PadLoader.scala b/src/main/scala/de/tobias/playpad/server/project/loader/sql/PadLoader.scala index c35454f..aa23225 100644 --- a/src/main/scala/de/tobias/playpad/server/project/loader/sql/PadLoader.scala +++ b/src/main/scala/de/tobias/playpad/server/project/loader/sql/PadLoader.scala @@ -3,28 +3,29 @@ package de.tobias.playpad.server.project.loader.sql import java.sql.Connection import java.util.UUID -import de.tobias.playpad.server.project.Pad +import de.tobias.playpad.server.project.utils.SqlDef._ +import de.tobias.playpad.server.project.{Pad, Page} /** * Created by tobias on 17.02.17. */ class PadLoader { - - def load(connection: Connection, pageId: UUID): List[Pad] = { - val sql = "SELECT * FROM Pad WHERE page_id = ?" + def load(connection: Connection, page: Page): List[Pad] = { + val sql = s"SELECT * FROM $PAD WHERE $PAD_PAGE_REF = ?" val preparedStatement = connection.prepareStatement(sql) - preparedStatement.setString(1, pageId.toString) + preparedStatement.setString(1, page.toString) val result = preparedStatement.executeQuery() var pads: List[Pad] = List() while (result.next()) { val pad = new Pad() - pad.id = UUID.fromString(result.getString("id")) - pad.name = result.getString("name") - pad.position = result.getInt("position") - pad.pageIndex = result.getInt("page") + pad.id = UUID.fromString(result.getString(PAD_ID)) + pad.name = result.getString(PAD_NAME) + pad.position = result.getInt(PAD_POSITION) + pad.pageIndex = result.getInt(PAD_PAGE) + pad.page = page pads = pad :: pads } diff --git a/src/main/scala/de/tobias/playpad/server/project/loader/sql/PageLoader.scala b/src/main/scala/de/tobias/playpad/server/project/loader/sql/PageLoader.scala index 6a55fd5..526be45 100644 --- a/src/main/scala/de/tobias/playpad/server/project/loader/sql/PageLoader.scala +++ b/src/main/scala/de/tobias/playpad/server/project/loader/sql/PageLoader.scala @@ -3,29 +3,30 @@ package de.tobias.playpad.server.project.loader.sql import java.sql.Connection import java.util.UUID -import de.tobias.playpad.server.project.Page +import de.tobias.playpad.server.project.utils.SqlDef._ +import de.tobias.playpad.server.project.{Page, Project} /** * Created by tobias on 17.02.17. */ class PageLoader { - - def load(connection: Connection, projectId: UUID): List[Page] = { - val sql = "SELECT * FROM Page WHERE project_id = ?" + def load(connection: Connection, project: Project): List[Page] = { + val sql = s"SELECT * FROM $PAGE WHERE $PAGE_PROJECT_REF = ?" val preparedStatement = connection.prepareStatement(sql) - preparedStatement.setString(1, projectId.toString) + preparedStatement.setString(1, project.id.toString) val result = preparedStatement.executeQuery() var pages: List[Page] = List() while (result.next()) { val page = new Page() - page.id = UUID.fromString(result.getString("id")) - page.name = result.getString("name") + page.id = UUID.fromString(result.getString(PAGE_ID)) + page.name = result.getString(PAGE_NAME) val padLoader = new PadLoader() - page.pads = padLoader.load(connection, page.id) + page.pads = padLoader.load(connection, page) + page.project = project pages = page :: pages } diff --git a/src/main/scala/de/tobias/playpad/server/project/loader/sql/ProjectLoader.scala b/src/main/scala/de/tobias/playpad/server/project/loader/sql/ProjectLoader.scala index 3d64809..dffb418 100644 --- a/src/main/scala/de/tobias/playpad/server/project/loader/sql/ProjectLoader.scala +++ b/src/main/scala/de/tobias/playpad/server/project/loader/sql/ProjectLoader.scala @@ -4,14 +4,14 @@ import java.sql.Connection import java.util.UUID import de.tobias.playpad.server.project.Project +import de.tobias.playpad.server.project.utils.SqlDef._ /** * Created by tobias on 17.02.17. */ class ProjectLoader { - def load(connection: Connection, id: UUID): List[Project] = { - val sql = "SELECT * FROM Project WHERE id = ?" + val sql = s"SELECT * FROM $PROJECT WHERE $PROJECT_ID = ?" val preparedStatement = connection.prepareStatement(sql) preparedStatement.setString(1, id.toString) val result = preparedStatement.executeQuery() @@ -20,12 +20,12 @@ class ProjectLoader { while (result.next()) { val project = new Project() - project.id = UUID.fromString(result.getString("id")) - project.name = result.getString("name") - project.accountId = result.getInt("account_id") + project.id = UUID.fromString(result.getString(PROJECT_ID)) + project.name = result.getString(PROJECT_NAME) + project.accountId = result.getInt(PROJECT_ACCOUNT_ID) val pageLoader = new PageLoader() - project.pages = pageLoader.load(connection, id) + project.pages = pageLoader.load(connection, project) projects = project :: projects } diff --git a/src/main/scala/de/tobias/playpad/server/project/saver/json/PadSaver.scala b/src/main/scala/de/tobias/playpad/server/project/saver/json/PadSaver.scala index ae16cde..71711c6 100644 --- a/src/main/scala/de/tobias/playpad/server/project/saver/json/PadSaver.scala +++ b/src/main/scala/de/tobias/playpad/server/project/saver/json/PadSaver.scala @@ -1,14 +1,13 @@ 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 +import de.tobias.playpad.server.project.utils.JsonDef._ /** * Created by tobias on 17.02.17. */ class PadSaver { - def save(pad: Pad): JsonElement = { val jsonObject = new JsonObject() diff --git a/src/main/scala/de/tobias/playpad/server/project/saver/json/PageSaver.scala b/src/main/scala/de/tobias/playpad/server/project/saver/json/PageSaver.scala index e59ef25..883b8b6 100644 --- a/src/main/scala/de/tobias/playpad/server/project/saver/json/PageSaver.scala +++ b/src/main/scala/de/tobias/playpad/server/project/saver/json/PageSaver.scala @@ -1,14 +1,13 @@ 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 +import de.tobias.playpad.server.project.utils.JsonDef._ /** * Created by tobias on 17.02.17. */ class PageSaver { - def save(page: Page): JsonElement = { val jsonObject = new JsonObject() diff --git a/src/main/scala/de/tobias/playpad/server/project/saver/json/ProjectSaver.scala b/src/main/scala/de/tobias/playpad/server/project/saver/json/ProjectSaver.scala index 942d897..28b2282 100644 --- a/src/main/scala/de/tobias/playpad/server/project/saver/json/ProjectSaver.scala +++ b/src/main/scala/de/tobias/playpad/server/project/saver/json/ProjectSaver.scala @@ -1,14 +1,13 @@ 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 +import de.tobias.playpad.server.project.utils.JsonDef._ /** * Created by tobias on 17.02.17. */ class ProjectSaver { - def save(project: Project): JsonObject = { val jsonObject = new JsonObject() diff --git a/src/main/scala/de/tobias/playpad/server/project/saver/sql/PadSaver.scala b/src/main/scala/de/tobias/playpad/server/project/saver/sql/PadSaver.scala new file mode 100644 index 0000000..52204c2 --- /dev/null +++ b/src/main/scala/de/tobias/playpad/server/project/saver/sql/PadSaver.scala @@ -0,0 +1,19 @@ +package de.tobias.playpad.server.project.saver.sql + +import java.sql.Connection + +import de.tobias.playpad.server.project.Pad +import de.tobias.playpad.server.project.utils.SqlDef._ +import de.tobias.playpad.server.server.SqlHelper + +/** + * Created by tobias on 17.02.17. + */ +class PadSaver { + def save(connection: Connection, pad: Pad): Unit = { + SqlHelper.insertOrUpdate(connection, PAD, pad.id, PAD_NAME, pad.name) + SqlHelper.insertOrUpdate(connection, PAD, pad.id, PAD_POSITION, pad.position) + SqlHelper.insertOrUpdate(connection, PAD, pad.id, PAD_PAGE, pad.pageIndex) + SqlHelper.insertOrUpdate(connection, PAD, pad.id, PAD_PAGE_REF, pad.page.id) + } +} diff --git a/src/main/scala/de/tobias/playpad/server/project/saver/sql/PageSaver.scala b/src/main/scala/de/tobias/playpad/server/project/saver/sql/PageSaver.scala new file mode 100644 index 0000000..6abdd60 --- /dev/null +++ b/src/main/scala/de/tobias/playpad/server/project/saver/sql/PageSaver.scala @@ -0,0 +1,21 @@ +package de.tobias.playpad.server.project.saver.sql + +import java.sql.Connection + +import de.tobias.playpad.server.project.Page +import de.tobias.playpad.server.project.utils.SqlDef._ +import de.tobias.playpad.server.server.SqlHelper + +/** + * Created by tobias on 17.02.17. + */ +class PageSaver { + def save(connection: Connection, page: Page): Unit = { + SqlHelper.insertOrUpdate(connection, PAGE, page.id, PAGE_NAME, page.name) + SqlHelper.insertOrUpdate(connection, PAGE, page.id, PAGE_POSITION, page.position) + SqlHelper.insertOrUpdate(connection, PAGE, page.id, PAGE_PROJECT_REF, page.project.id) + + val padSaver = new PadSaver + page.pads.foreach(padSaver.save(connection, _)) + } +} diff --git a/src/main/scala/de/tobias/playpad/server/project/saver/sql/ProjectSaver.scala b/src/main/scala/de/tobias/playpad/server/project/saver/sql/ProjectSaver.scala new file mode 100644 index 0000000..44ce810 --- /dev/null +++ b/src/main/scala/de/tobias/playpad/server/project/saver/sql/ProjectSaver.scala @@ -0,0 +1,20 @@ +package de.tobias.playpad.server.project.saver.sql + +import java.sql.Connection + +import de.tobias.playpad.server.project.Project +import de.tobias.playpad.server.project.utils.SqlDef._ +import de.tobias.playpad.server.server.SqlHelper + +/** + * Created by tobias on 17.02.17. + */ +class ProjectSaver { + def save(connection: Connection, project: Project): Unit = { + SqlHelper.insertOrUpdate(connection, PROJECT, project.id, PROJECT_NAME, project.name) + SqlHelper.insertOrUpdate(connection, PROJECT, project.id, PROJECT_ACCOUNT_ID, project.accountId) + + val pageSaver = new PageSaver + project.pages.foreach(pageSaver.save(connection, _)) + } +} diff --git a/src/main/scala/de/tobias/playpad/server/project/JsonDef.scala b/src/main/scala/de/tobias/playpad/server/project/utils/JsonDef.scala similarity index 87% rename from src/main/scala/de/tobias/playpad/server/project/JsonDef.scala rename to src/main/scala/de/tobias/playpad/server/project/utils/JsonDef.scala index f95c5fc..e5666f8 100644 --- a/src/main/scala/de/tobias/playpad/server/project/JsonDef.scala +++ b/src/main/scala/de/tobias/playpad/server/project/utils/JsonDef.scala @@ -1,4 +1,4 @@ -package de.tobias.playpad.server.project +package de.tobias.playpad.server.project.utils /** * Created by tobias on 17.02.17. diff --git a/src/main/scala/de/tobias/playpad/server/project/utils/SqlDef.scala b/src/main/scala/de/tobias/playpad/server/project/utils/SqlDef.scala new file mode 100644 index 0000000..63f2c4e --- /dev/null +++ b/src/main/scala/de/tobias/playpad/server/project/utils/SqlDef.scala @@ -0,0 +1,26 @@ +package de.tobias.playpad.server.project.utils + +/** + * Created by tobias on 17.02.17. + */ +object SqlDef { + + val PROJECT = "Project" + val PROJECT_ID = "id" + val PROJECT_NAME = "name" + val PROJECT_ACCOUNT_ID = "account_id" + + val PAGE = "Page" + val PAGE_ID = "id" + val PAGE_NAME = "name" + val PAGE_POSITION = "position" + val PAGE_PROJECT_REF = "project_id" + + val PAD = "Pad" + val PAD_ID = "id" + val PAD_NAME = "name" + val PAD_POSITION = "position" + val PAD_PAGE = "page" + val PAD_PAGE_REF = "page_id" + +} -- GitLab