+ /**
+ * Format the given field and append to the given buffer for saving
+ * @param inBuffer buffer to append to
+ * @param inPoint point object
+ * @param inField field object
+ * @param inCoordFormat coordinate format
+ * @param inAltitudeFormat altitude format
+ * @param inTimestampFormat timestamp format
+ */
+ private void saveField(StringBuffer inBuffer, DataPoint inPoint, Field inField,
+ int inCoordFormat, Altitude.Format inAltitudeFormat, int inTimestampFormat)
+ {
+ // Output field according to type
+ if (inField == Field.LATITUDE)
+ {
+ inBuffer.append(inPoint.getLatitude().output(inCoordFormat));
+ }
+ else if (inField == Field.LONGITUDE)
+ {
+ inBuffer.append(inPoint.getLongitude().output(inCoordFormat));
+ }
+ else if (inField == Field.ALTITUDE)
+ {
+ try
+ {
+ inBuffer.append(inPoint.getAltitude().getStringValue(inAltitudeFormat));
+ }
+ catch (NullPointerException npe) {}
+ }
+ else if (inField == Field.TIMESTAMP)
+ {
+ if (inPoint.hasTimestamp())
+ {
+ if (inTimestampFormat == Timestamp.FORMAT_ORIGINAL) {
+ // output original string
+ inBuffer.append(inPoint.getTimestamp().getText(Timestamp.FORMAT_ORIGINAL));
+ }
+ else {
+ // format value accordingly
+ inBuffer.append(inPoint.getTimestamp().getText(inTimestampFormat));
+ }
+ }
+ }
+ else
+ {
+ String value = inPoint.getFieldValue(inField);
+ if (value != null)
+ {
+ inBuffer.append(value);
+ }
+ }
+ }
+
+