All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.homedepot.bigbricks.data.ScriptDBImport.scala Maven / Gradle / Ivy

The newest version!
package com.homedepot.bigbricks.data

import net.liftweb.json._

/**
  * Created by fjacob on 8/2/15.
  */
object ScriptDBImport {

  implicit val formats = DefaultFormats

  def get(json: JValue, nodes: String*) = {
    nodes.map(f => (json \ f).values)

  }

  def extractJobs(jobsText: String): List[ScriptDBJob] = {
    for (job <- parse(jobsText).asInstanceOf[JArray].children)
      yield getJob(job)
  }

  def getJob(json: JValue, nodes: String*): ScriptDBJob = {
    json.extract[ScriptDBJob]

  }

  def extractTemplates(templateText: String): List[ScriptDBTemplate] = {
    for (template <- parse(templateText).asInstanceOf[JArray].children)
      yield getTemplate(template)
  }

  def getTemplate(json: JValue, nodes: String*): ScriptDBTemplate = {
    json.extract[ScriptDBTemplate]

  }

  def extractProjects(projectsText: String): List[ScriptDBProject] = {

    for (project <- parse(projectsText).asInstanceOf[JArray].children)
      yield getProject(project)


  }

  def getProject(json: JValue, nodes: String*): ScriptDBProject = {
    json.extract[ScriptDBProject]

  }

  case class ScriptDBTemplate(templateName: String, template: String)

  case class ScriptDBProject(projectLocation: String, projectName: String, jarName: String)

  case class ScriptDBJob(projectName: String, templateName: String, mainClassName: String,
                         programArguments: Map[String, String], vmArguments: Map[String, String])
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy