jvm/src/net/tz/spss/SpssReader.scala
changeset 9 0bcde61ea869
parent 5 44aad285dc66
equal deleted inserted replaced
8:7d705a7b1867 9:0bcde61ea869
    18   override def next(): Map[SpssVariable, SpssValue] =
    18   override def next(): Map[SpssVariable, SpssValue] =
    19     variables map(v => (v, asValue(v))) toMap
    19     variables map(v => (v, asValue(v))) toMap
    20 
    20 
    21   private def asValue(variable: SpssVariable): SpssValue = {
    21   private def asValue(variable: SpssVariable): SpssValue = {
    22     val i = variable.index
    22     val i = variable.index
    23     if (r.isSystemMissing(i))
    23     if (r.isSystemMissing(i)) {
    24       SystemMissing
    24       SystemMissing
    25     else
    25     } else if (variable.isNumeric) {
    26       Option(r.getDoubleValue(i)) map(x =>
    26       Option(r.getDoubleValue(i)) map(x =>
    27         if (r.isValueMissing(i, x)) MissingDouble(x) else DoubleValue(x)
    27         if (r.isValueMissing(i, x)) MissingDouble(x) else DoubleValue(x)
    28         ) orElse (Option(r.getStringValue(i)) map StringValue
       
    29         ) getOrElse SystemMissing
    28         ) getOrElse SystemMissing
       
    29     } else {
       
    30       Option(r.getStringValue(i)) map StringValue getOrElse SystemMissing
       
    31     }
    30   }
    32   }
    31 }
    33 }
    32 
    34 
    33 object SpssReader {
    35 object SpssReader {
    34   def apply(f: File): SpssReader = new SpssReader(new SpssDataFileReader(f))
    36   def apply(f: File): SpssReader = new SpssReader(new SpssDataFileReader(f))