diff -r 3a70d40db0fd -r 7461111ce9ed jvm/src/net/tz/spss/SpssReader.scala --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jvm/src/net/tz/spss/SpssReader.scala Thu Mar 14 15:06:13 2019 +0100 @@ -0,0 +1,25 @@ +package net.tz.spss + +import java.io.File + +import com.bedatadriven.spss.SpssDataFileReader + +import scala.collection.JavaConverters._ +import scala.language.postfixOps + +class SpssReader(private val r: SpssDataFileReader) + extends Iterator[Map[SpssVariable, SpssValue]] { + + lazy val variables: List[SpssVariable] = + r.getVariables.asScala.toList map(SpssVariable(_)) + + override def hasNext: Boolean = r.readNextCase() + + override def next(): Map[SpssVariable, SpssValue] = + variables map(v => (v, SpssValue(r, v))) toMap + +} + +object SpssReader { + def apply(f: File): SpssReader = new SpssReader(new SpssDataFileReader(f)) +} \ No newline at end of file