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

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

package com.innovenso.townplanner.io.concepts
import com.innovenso.townplanner.io.concepts.ExcelFields._
import com.innovenso.townplanner.model.EnterpriseArchitecture
import com.innovenso.townplanner.model.concepts.BusinessCapability
import com.innovenso.townplanner.model.concepts.properties.{ArchitectureVerdict, Description}
import com.innovenso.townplanner.model.meta.{Key, SortKey}

import javax.swing.border.TitledBorder

object BusinessCapabilityExcelIO extends ConceptExcelIO[BusinessCapability] {
  override def conceptClass: Class[BusinessCapability] =
    classOf[BusinessCapability]

  override def sheetName: String = "Business Capabilities"

  override def headerLabels: List[String] =
    List(
      TITLE,
      DESCRIPTION,
      ARCHITECTURE_VERDICT,
      ARCHITECTURE_VERDICT_EXPLANATION
    )

  override def cellValues(concept: BusinessCapability): List[String] = List(
    concept.title,
    concept.descriptions.map(_.value).mkString("\n\n"),
    concept.architectureVerdict.name,
    concept.architectureVerdict.description
  )

  override def concept(
      props: ConceptProperties,
      ea: EnterpriseArchitecture
  ): Unit = {
    val capability = ea describes BusinessCapability(
      key = props.key,
      title = props.title,
      sortKey = props.sortKey
    ) as { it =>
      props.descriptions
        .foreach(d => it has d)

      it should props.architectureVerdict
    }
    println(s"imported $capability")
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy