shared/net/tz/spss/SpssVariable.scala
author Tomas Zeman <tzeman@volny.cz>
Thu, 14 Mar 2019 15:06:13 +0100
changeset 2 7461111ce9ed
child 5 44aad285dc66
permissions -rw-r--r--
Spss variable, value and reader wrapper.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     1
package net.tz.spss
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     2
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     3
import net.tz.spss.SpssVariable.DoubleRange
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     4
import com.bedatadriven.spss.{SpssVariable => JVar}
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     5
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     6
import scala.collection.JavaConverters._
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     7
import scala.language.postfixOps
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     8
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     9
case class SpssVariable(name: String, shortName: String, isNumeric: Boolean,
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    10
  index: Int, label: String,
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    11
  missingRange: Option[DoubleRange] = None,
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    12
  missing: List[Double] = Nil,
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    13
  missingStrings: List[String] = Nil,
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    14
  labels: Map[Double, String] = Map())
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    15
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    16
object SpssVariable {
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    17
  type DoubleRange = (Double, Double)
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    18
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    19
  def apply(v: JVar): SpssVariable = SpssVariable(
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    20
    name = v.getVariableName,
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    21
    shortName = v.getShortName,
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    22
    isNumeric = v.isNumeric,
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    23
    index = v.getIndex,
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    24
    label = v.getVariableLabel,
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    25
    missingRange = if (v.isHasMissingRange)
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    26
      Some((v.getMissingMin.doubleValue(), v.getMissingMax.doubleValue()))
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    27
    else None,
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    28
    missing = v.getMissing.asScala.map(_.doubleValue()).toList,
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    29
    missingStrings = v.getMissingStrings.asScala.toList,
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    30
    labels = v.getValueLabels.asScala.map { case (k,x) =>
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    31
      (k.doubleValue(), x) } toMap)
7461111ce9ed Spss variable, value and reader wrapper.
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    32
}