|
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 |
|
9 case class SpssVariable(name: String, shortName: String, isNumeric: Boolean, |
|
10 index: Int, label: String, |
|
11 missingRange: Option[DoubleRange] = None, |
|
12 missing: List[Double] = Nil, |
|
13 missingStrings: List[String] = Nil, |
|
14 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 } |