shared/net/tz/spss/SpssVariable.scala
changeset 5 44aad285dc66
parent 2 7461111ce9ed
equal deleted inserted replaced
4:dbc63b7c43ce 5:44aad285dc66
     1 package net.tz.spss
     1 package net.tz.spss
     2 
       
     3 import net.tz.spss.SpssVariable.DoubleRange
       
     4 import com.bedatadriven.spss.{SpssVariable => JVar}
       
     5 
       
     6 import scala.collection.JavaConverters._
       
     7 import scala.language.postfixOps
       
     8 
     2 
     9 case class SpssVariable(name: String, shortName: String, isNumeric: Boolean,
     3 case class SpssVariable(name: String, shortName: String, isNumeric: Boolean,
    10   index: Int, label: String,
     4   index: Int, label: String,
    11   missingRange: Option[DoubleRange] = None,
     5   missingRange: Option[DoubleRange] = None,
    12   missing: List[Double] = Nil,
     6   missing: List[Double] = Nil,
    13   missingStrings: List[String] = Nil,
     7   missingStrings: List[String] = Nil,
    14   labels: Map[Double, String] = Map())
     8   labels: Map[Double, String] = Map())
    15 
       
    16 object SpssVariable {
       
    17   type DoubleRange = (Double, Double)
       
    18 
       
    19   def apply(v: JVar): SpssVariable = SpssVariable(
       
    20     name = v.getVariableName,
       
    21     shortName = v.getShortName,
       
    22     isNumeric = v.isNumeric,
       
    23     index = v.getIndex,
       
    24     label = v.getVariableLabel,
       
    25     missingRange = if (v.isHasMissingRange)
       
    26       Some((v.getMissingMin.doubleValue(), v.getMissingMax.doubleValue()))
       
    27     else None,
       
    28     missing = v.getMissing.asScala.map(_.doubleValue()).toList,
       
    29     missingStrings = v.getMissingStrings.asScala.toList,
       
    30     labels = v.getValueLabels.asScala.map { case (k,x) =>
       
    31       (k.doubleValue(), x) } toMap)
       
    32 }