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

Add Project, Page, Pad classes and sql loader and json saver classes

parent 2f57242d
No related branches found
No related tags found
No related merge requests found
Showing with 233 additions and 0 deletions
package de.tobias.playpad.server.project
import java.util.UUID
/**
* Created by tobias on 17.02.17.
*/
class Pad() {
var id: UUID = UUID.randomUUID()
var name: String = _
var position: Int = _
var pageIndex: Int = _
var design: Design = _
var page: Page = _
}
package de.tobias.playpad.server.project
import java.util.UUID
/**
* Created by tobias on 17.02.17.
*/
class Page {
var id: UUID = UUID.randomUUID()
var name: String = _
var position: Int = _
var pads: List[Pad] = List()
var project: Project = _ // FOREIGN KEY
}
package de.tobias.playpad.server.project
import java.util.UUID
/**
* Created by tobias on 17.02.17.
*/
class Project {
var id: UUID = UUID.randomUUID()
var name: String = _
var accountId: Int = _ // Account that own this project
var pages: List[Page] = _
}
package de.tobias.playpad.server.project.loader
import java.sql.Connection
import java.util.UUID
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 = ?"
val preparedStatement = connection.prepareStatement(sql)
preparedStatement.setString(1, pageId.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")
pads = pad :: pads
}
result.close()
preparedStatement.close()
pads
}
}
package de.tobias.playpad.server.project.loader
import java.sql.Connection
import java.util.UUID
import de.tobias.playpad.server.project.Page
/**
* 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 = ?"
val preparedStatement = connection.prepareStatement(sql)
preparedStatement.setString(1, projectId.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")
val padLoader = new PadLoader()
page.pads = padLoader.load(connection, page.id)
pages = page :: pages
}
result.close()
preparedStatement.close()
pages
}
}
package de.tobias.playpad.server.project.loader
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.
*/
class ProjectLoader {
def load(connection: Connection, id: UUID): List[Project] = {
val sql = "SELECT * FROM Project WHERE id = ?"
val preparedStatement = connection.prepareStatement(sql)
preparedStatement.setString(1, id.toString)
val result = preparedStatement.executeQuery()
var projects: List[Project] = List()
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")
val pageLoader = new PageLoader()
project.pages = pageLoader.load(connection, id)
projects = project :: projects
}
result.close()
preparedStatement.close()
projects
}
}
package de.tobias.playpad.server.project.server.json
import com.google.gson.{JsonElement, JsonObject}
import de.tobias.playpad.server.project.Pad
/**
* Created by tobias on 17.02.17.
*/
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
}
}
package de.tobias.playpad.server.project.server.json
import com.google.gson.{JsonArray, JsonElement, JsonObject}
import de.tobias.playpad.server.project.Page
/**
* Created by tobias on 17.02.17.
*/
class PageSaver {
def save(page: Page): JsonElement = {
val jsonObject = new JsonObject()
val padSaver = new PadSaver()
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
}
}
package de.tobias.playpad.server.project.server.json
import com.google.gson.{JsonArray, JsonObject}
import de.tobias.playpad.server.project.Project
/**
* Created by tobias on 17.02.17.
*/
class ProjectSaver {
def save(project: Project): JsonObject = {
val jsonObject = new JsonObject()
val pageSaver = new PageSaver()
val pageArray = new JsonArray
project.pages.foreach(page => pageArray.add(pageSaver.save(page)))
jsonObject.addProperty("name", project.name)
jsonObject.add("pages", pageArray)
jsonObject
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment