jvm/src/net/tz/spss/SpssReader.scala
changeset 2 7461111ce9ed
child 5 44aad285dc66
equal deleted inserted replaced
1:3a70d40db0fd 2:7461111ce9ed
       
     1 package net.tz.spss
       
     2 
       
     3 import java.io.File
       
     4 
       
     5 import com.bedatadriven.spss.SpssDataFileReader
       
     6 
       
     7 import scala.collection.JavaConverters._
       
     8 import scala.language.postfixOps
       
     9 
       
    10 class SpssReader(private val r: SpssDataFileReader)
       
    11   extends Iterator[Map[SpssVariable, SpssValue]] {
       
    12 
       
    13   lazy val variables: List[SpssVariable] =
       
    14     r.getVariables.asScala.toList map(SpssVariable(_))
       
    15 
       
    16   override def hasNext: Boolean = r.readNextCase()
       
    17 
       
    18   override def next(): Map[SpssVariable, SpssValue] =
       
    19     variables map(v => (v, SpssValue(r, v))) toMap
       
    20 
       
    21 }
       
    22 
       
    23 object SpssReader {
       
    24   def apply(f: File): SpssReader = new SpssReader(new SpssDataFileReader(f))
       
    25 }