diff -r 3a70d40db0fd -r 7461111ce9ed shared/net/tz/spss/SpssVariable.scala --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/shared/net/tz/spss/SpssVariable.scala Thu Mar 14 15:06:13 2019 +0100 @@ -0,0 +1,32 @@ +package net.tz.spss + +import net.tz.spss.SpssVariable.DoubleRange +import com.bedatadriven.spss.{SpssVariable => JVar} + +import scala.collection.JavaConverters._ +import scala.language.postfixOps + +case class SpssVariable(name: String, shortName: String, isNumeric: Boolean, + index: Int, label: String, + missingRange: Option[DoubleRange] = None, + missing: List[Double] = Nil, + missingStrings: List[String] = Nil, + labels: Map[Double, String] = Map()) + +object SpssVariable { + type DoubleRange = (Double, Double) + + def apply(v: JVar): SpssVariable = SpssVariable( + name = v.getVariableName, + shortName = v.getShortName, + isNumeric = v.isNumeric, + index = v.getIndex, + label = v.getVariableLabel, + missingRange = if (v.isHasMissingRange) + Some((v.getMissingMin.doubleValue(), v.getMissingMax.doubleValue())) + else None, + missing = v.getMissing.asScala.map(_.doubleValue()).toList, + missingStrings = v.getMissingStrings.asScala.toList, + labels = v.getValueLabels.asScala.map { case (k,x) => + (k.doubleValue(), x) } toMap) +}