package org.syzygy.gps.midp; import org.syzygy.gps.Location; import org.syzygy.gps.LocationListener; import org.syzygy.util.WrappedException; import org.syzygy.util.midp.StreamUtil; import javax.microedition.io.Connector; import javax.microedition.io.file.FileConnection; import java.io.DataOutputStream; import java.io.IOException; final class FileRecorder implements LocationListener { public FileRecorder(String fileName) throws IOException { this.file = (FileConnection) Connector.open(fileName, Connector.WRITE); if (!file.exists()) file.create(); this.output = file.openDataOutputStream(); } public void notifyLocation(Location location) { if (location == null) close(); else try { output.writeUTF(location.toString()); } catch (IOException _) { // bleah } } public void notifySignals(int[] signals) { } public void notifyError(WrappedException e) { } private void close() { StreamUtil.safeClose(output); StreamUtil.safeClose(file); } private final FileConnection file; private final DataOutputStream output; }