--- /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