blob: 15efe9fb554ad774670606b5bc58d260219ce484 [file] [log] [blame]
package org.apache.s2graph.s2jobs.wal.transformer
import org.apache.s2graph.core.JSONParser
import org.apache.s2graph.s2jobs.task.TaskConf
import org.apache.s2graph.s2jobs.wal.{DimVal, WalLog}
import play.api.libs.json.{JsObject, Json}
class ExtractServiceName(taskConf: TaskConf) extends Transformer(taskConf) {
val serviceDims = Json.parse(taskConf.options.getOrElse("serviceDims", "[]")).as[Set[String]]
val domainServiceMap = Json.parse(taskConf.options.getOrElse("domainServiceMap", "{}")).as[JsObject].fields.map { case (k, v) =>
k -> JSONParser.jsValueToString(v)
}.toMap
val serviceDimName = taskConf.options.getOrElse("serviceDimName", "serviceDimName")
override def toDimValLs(walLog: WalLog, propertyKey: String, propertyValue: String): Seq[DimVal] = {
if (!serviceDims(propertyKey)) Nil
else {
val serviceName = domainServiceMap.getOrElse(propertyValue, propertyValue)
Seq(DimVal(serviceDimName, serviceName))
}
}
}