Попробуйте определить фабрику в объекте-компаньоне , например,
final case class Lines(value: Int, line1: String, line2: String)
object Lines {
def apply(value: Int): Lines = {
if (value > 0)
Lines(value, line1 = "positive", line2 = "value")
else
Lines(value, line1 = "negative", line2 = "integer")
}
}
, что дает
Lines(1)
res0: Lines = Lines(1,positive,value)
Lines(-1)
res1: Lines = Lines(-1,negative,integer)