--- /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)
+}