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

com.innovenso.townplanner.io.concepts.LinkPropertyExcelIO.scala Maven / Gradle / Ivy

package com.innovenso.townplanner.io.concepts
import com.innovenso.townplanner.io.concepts.ExcelFields._
import com.innovenso.townplanner.model.{EnterpriseArchitecture, TownPlan}
import com.innovenso.townplanner.model.concepts.properties.{HasLinks, Link}
import com.innovenso.townplanner.model.meta.Key
import org.apache.poi.ss.usermodel.{Row, Sheet}
import org.apache.poi.xssf.usermodel.XSSFWorkbook

object LinkPropertyExcelIO extends PropertiesExcelIO[HasLinks, Link] {
  override def sheetName: String = "Links"

  override def headerLabels: List[String] = List(URL, TITLE, TYPE)

  override def cellValues(property: Link): List[String] =
    List(property.url, property.title, property.name)

  override def properties(holder: HasLinks): List[Link] = holder.links

  override def propertyClass: Class[Link] = classOf[Link]

  override def propertyHolderClass: Class[HasLinks] = classOf[HasLinks]

  override protected def readProperty(
      props: PropertyProperties,
      enterpriseArchitecture: EnterpriseArchitecture
  ): Unit = {
    val modelComponent = enterpriseArchitecture.hasProperty(
      props.conceptKey,
      Link.fromString(props(TYPE), props(URL), props.option(TITLE))
    )
    println(s"added link property to $modelComponent")
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy