List of usage examples for org.joda.time DateTime parse
public static DateTime parse(String str, DateTimeFormatter formatter)
From source file:com.application.actify.lifecycle.ActivityFragment.java
License:Apache License
private void inflateTimerRow(final ActivityInstance ai, final ActivityPause ap) { scroller.setBackgroundResource(android.R.color.transparent); int activityid = ai.getactivityid(); ActivitySetting as = Actify.findActivitySettingById(activityid); final String strActivity = as.getActivity(); final String strLocation = as.getLocation(); final int mode = ai.getMode(); final long oriStart = ai.getStart().getTimeInMillis(); LayoutInflater inflater = (LayoutInflater) act.getSystemService(Context.LAYOUT_INFLATER_SERVICE); final View rowView = inflater.inflate(R.layout.activity_row, null); final Chronometer mChronometer = (Chronometer) rowView.findViewById(R.id.chronometer); long base;/*from ww w .ja va2 s . co m*/ if (mode == Actify.MODE_RUNNING) { base = SystemClock.elapsedRealtime() - (Calendar.getInstance().getTimeInMillis() - ai.getStart().getTimeInMillis()); mChronometer.setBase(base); mChronometer.start(); } else if (mode == Actify.MODE_PAUSED) { base = SystemClock.elapsedRealtime() - ai.getEnd().getTimeInMillis(); mChronometer.setBase(base); } final View idColor = (View) rowView.findViewById(R.id.idColor); idColor.setBackgroundColor(Color.parseColor(Actify.colorAdapter.getItem(ai.getactivityid()).toString())); final TextView txtActivity = (TextView) rowView.findViewById(R.id.txtActivity); final TextView txtStart = (TextView) rowView.findViewById(R.id.txtStart); txtStart.setText(Actify.datetimeFormat.format(ai.getStart().getTime())); if (mode == Actify.MODE_PAUSED) { txtActivity.setText(strActivity + getResources().getString(R.string.paused)); } else { txtActivity.setText(strActivity); } final Button btnStop = (Button) rowView.findViewById(R.id.btnStop); btnStop.setOnClickListener(new OnClickListener() { public void onClick(View v) { /*alarmManager.cancel(Actify.pendingIntents.get(ai.getId())); Actify.pendingIntents.remove(ai.getId()); Actify.pendingIntentTimes.remove(ai.getId()); Actify.printIntents(); */ ReminderUtil.cancelAlarm(getActivity(), ai.getId()); mChronometer.stop(); timer_container.removeView(rowView); Calendar calEnd = Calendar.getInstance(); if (ai.getMode() == Actify.MODE_PAUSED) { ap.setEnd(calEnd); db.updateActivityPause(ap); } ai.setEnd(calEnd); ai.setMode(Actify.MODE_INSERT); db.updateActivity(ai); db.deleteLatestActivityLog(); db.updateActivityPause(ai.getId(), ai.getSync(), ai.getMode()); String query = db.activityGuestQueryBuilder(Actify.VIEW_TIMER, Actify.MODE_RUNNING, ai.getId()); List<ActivityGuest> insertList = db.getActivityGuestList(query); for (ActivityGuest ag : insertList) { ag.setMode(Actify.MODE_INSERT); db.updateActivityGuest(ag); } query = db.activityGuestQueryBuilder(Actify.VIEW_TIMER, Actify.MODE_DELETE, ai.getId()); List<ActivityGuest> deleteList = db.getActivityGuestList(query); for (ActivityGuest ag : deleteList) { db.deleteActivityGuest(ag); } Toast.makeText(act, strActivity + res.getString(R.string.toastActivitySaved), Toast.LENGTH_SHORT) .show(); if (timer_container.getChildCount() == 0) { //setIdleReminder(); ReminderUtil.setIdleReminder(getActivity()); } } }); final Button btnPause = (Button) rowView.findViewById(R.id.btnPause); btnPause.setOnClickListener(new OnClickListener() { public void onClick(View v) { switch (ai.getMode()) { case Actify.MODE_RUNNING: { // pausing Calendar calStart = Calendar.getInstance(); ap.setStart(calStart); ActivityPause newap = db.addActivityPause(ap); ap.setId(newap.getId()); Calendar calPaused = Calendar.getInstance(); calPaused.setTimeInMillis(SystemClock.elapsedRealtime() - mChronometer.getBase()); mChronometer.stop(); ai.setMode(Actify.MODE_PAUSED); ai.setEnd(calPaused); db.updateActivity(ai); btnPause.setBackgroundResource(R.drawable.button_selector_resume); btnPause.setText(R.string.btnResume); txtActivity.setText(strActivity + getResources().getString(R.string.paused)); break; } case Actify.MODE_PAUSED: { // resuming ai.setMode(Actify.MODE_RUNNING); db.updateActivity(ai); Calendar calResumed = Calendar.getInstance(); ap.setEnd(calResumed); db.updateActivityPause(ap); db.deleteLatestActivityPauseLog(); mChronometer.start(); btnPause.setBackgroundResource(R.drawable.button_selector_pause); btnPause.setText(R.string.btnPause); txtActivity.setText(strActivity); break; } } } }); if (mode == Actify.MODE_PAUSED) { btnPause.setBackgroundResource(R.drawable.button_selector_resume); btnPause.setText(R.string.btnResume); } final TextView txtLocation = (TextView) rowView.findViewById(R.id.txtLocation); txtLocation.setText(getResources().getString(R.string.txtLocation) + strLocation); final TextView txtGuest = (TextView) rowView.findViewById(R.id.txtGuest); List<String> guestList = db.getActivityGuestStringList(ai.getId()); if (guestList.isEmpty()) txtGuest.setText(""); else { String guestNames = ""; for (String s : guestList) { guestNames += s + " "; } txtGuest.setText(getResources().getString(R.string.txtGuests) + guestNames); } final LinearLayout ll = (LinearLayout) rowView.findViewById(R.id.ll); ll.setOnClickListener(new OnClickListener() { public void onClick(View v) { /********************************* Activity Edit *************************************/ final AlertDialog activityEditDialog = new AlertDialog.Builder(act).create(); LayoutInflater inflater = act.getLayoutInflater(); View dialogView = inflater.inflate(R.layout.activity_edit, null); final Spinner spinnerActivity = (Spinner) dialogView.findViewById(R.id.spinnerActivity); spinnerActivity.setAdapter(Actify.activityAdapter); spinnerActivity.setSelection(Actify.findActivitySettingById(ai.getactivityid()).getOrder()); spinnerActivity.setPadding(2, 2, 2, 2); final Spinner spinnerLocation = (Spinner) dialogView.findViewById(R.id.spinnerLocation); spinnerLocation.setAdapter(Actify.locationAdapter); spinnerLocation.setSelection(ai.getlocationid()); spinnerLocation.setPadding(2, 2, 2, 2); final Button btnStart = (Button) dialogView.findViewById(R.id.btnStart); btnStart.setText(Actify.datetimeFormat.format(ai.getStart().getTime())); btnStart.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { dateTimePicker = new DateTimePicker(act, ai.getStart(), new DateTimePickerListener(btnStart, ai), res.getString(R.string.editActivityHeaderStartTime)); dateTimePicker.set24HourFormat(true); dateTimePicker.showDialog(); } }); String dtReminderString = settings.getString("reminder_" + ai.getId(), ""); DateTime dtReminder = DateTime.parse(dtReminderString, Actify.datetimeFormatJoda); DateTime dtNow = new DateTime(); Duration duration = new Duration(dtNow, dtReminder); int hours = (int) duration.getStandardHours(); int minutes = (int) duration.getStandardMinutes(); int seconds = (int) duration.getStandardSeconds(); String durationStr; if (seconds > 30) { minutes = minutes + 1; if (minutes % 60 == 0) { hours = minutes / 60; } } if (hours > 0) { minutes = minutes - (hours * 60); durationStr = hours + "h " + minutes + "m from now"; } else { durationStr = minutes + "m from now"; } final int oldMinutes = minutes; final int oldHours = hours; changeReminder = false; final Button btnReminder = (Button) dialogView.findViewById(R.id.btnReminder); btnReminder.setText(durationStr); btnReminder.setOnClickListener(new OnClickListener() { TimePickerDialog.OnTimeSetListener nextAlarmSettingListener = new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hour, int minute) { newHour = hour; newMinute = minute; String durationStr; if (newHour > 0) durationStr = newHour + " hours " + newMinute + " mins"; else durationStr = newMinute + " mins"; btnReminder.setText(durationStr); changeReminder = true; } }; @Override public void onClick(View v) { TimePickerDialog tpDialog = new TimePickerDialog(ActivityFragment.this.getActivity(), nextAlarmSettingListener, oldHours, oldMinutes, true); tpDialog.setTitle("Reminder"); tpDialog.setMessage("Remind me after (HH:MM)"); tpDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { dialog.dismiss(); } }); tpDialog.show(); } }); final Button btnPauses = (Button) dialogView.findViewById(R.id.btnPauses); btnPauses.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { /********************************* Pauses Edit *************************************/ String query = db.activityPauseQueryBuilder(Actify.VIEW_TIMER, ai.getId()); List<ActivityPause> activityPauses = db.getActivityPauseList(query); if (activityPauses.isEmpty()) { Toast.makeText(act, res.getString(R.string.toastActivityNoPauses), Toast.LENGTH_SHORT) .show(); } else { final AlertDialog dialogPause = new AlertDialog.Builder(act).create(); ScrollView sv = new ScrollView(act); final LinearLayout ll = new LinearLayout(act); ll.setOrientation(LinearLayout.VERTICAL); for (int i = 0; i < activityPauses.size(); i++) { final ActivityPause ap = activityPauses.get(i); LayoutInflater inflater = (LayoutInflater) act .getSystemService(Context.LAYOUT_INFLATER_SERVICE); final View pauseRowView = inflater.inflate(R.layout.activity_pause_row, null); final Button btnStart = (Button) pauseRowView.findViewById(R.id.btnStart); final String start = Actify.dateFormat.format(ap.getStart().getTime()) + "\n" + Actify.timeFormat.format(ap.getStart().getTime()); btnStart.setText(start); btnStart.setId(START); btnStart.setOnClickListener(new OnClickListener() { public void onClick(View v) { dateTimePicker = new DateTimePicker(act, ap.getStart(), new DateTimePickerListener(btnStart, ap), res.getString(R.string.datetimePickerHeader)); dateTimePicker.set24HourFormat(true); dateTimePicker.showDialog(); } }); final Button btnEnd = (Button) pauseRowView.findViewById(R.id.btnEnd); final String end = Actify.dateFormat.format(ap.getEnd().getTime()) + "\n" + Actify.timeFormat.format(ap.getEnd().getTime()); btnEnd.setText(end); btnEnd.setId(END); btnEnd.setOnClickListener(new OnClickListener() { public void onClick(View v) { dateTimePicker = new DateTimePicker(act, ap.getEnd(), new DateTimePickerListener(btnEnd, ap), res.getString(R.string.datetimePickerHeader)); dateTimePicker.set24HourFormat(true); dateTimePicker.showDialog(); } }); final ImageButton btnDelete = (ImageButton) pauseRowView .findViewById(R.id.btnDelete); btnDelete.setOnClickListener(new OnClickListener() { public void onClick(View v) { AlertDialog alertDialog = new AlertDialog.Builder(act).create(); alertDialog.setMessage(res.getString(R.string.editPauseDeleteMsg)); alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, res.getString(R.string.btnYes), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { db.deleteActivityPause(ap); ll.removeView(pauseRowView); activityEditDialog.dismiss(); dialog.dismiss(); } }); alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, res.getString(R.string.btnNo), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); alertDialog.show(); } }); ll.addView(pauseRowView); } sv.addView(ll); dialogPause.setView(sv); dialogPause.setTitle(res.getString(R.string.editActivityTitlePauses)); dialogPause.setButton(AlertDialog.BUTTON_POSITIVE, res.getString(R.string.btnOk), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); dialogPause.setButton(AlertDialog.BUTTON_NEGATIVE, res.getString(R.string.btnCancel), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); dialogPause.show(); } } }); final ArrayList<Guest> addGuests = new ArrayList<Guest>(); final ArrayList<Guest> delGuests = new ArrayList<Guest>(); final Button btnGuests = (Button) dialogView.findViewById(R.id.btnGuests); btnGuests.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { /********************************* Activity Guests Edit *************************************/ String query = db.guestQueryBuilder(ai, householdid); final List<Guest> guests = db.getGuestList(query); if (guests.isEmpty()) { Toast.makeText(act, res.getString(R.string.editActivityToastNoGuest), Toast.LENGTH_SHORT).show(); } else { final AlertDialog dialogGuest = new AlertDialog.Builder(act).create(); ScrollView sv = new ScrollView(act); final LinearLayout ll = new LinearLayout(act); ll.setOrientation(LinearLayout.VERTICAL); for (int i = 0; i < guests.size(); i++) { Guest g = guests.get(i); CheckBox ch = new CheckBox(act); if (db.isActivityGuest(ai.getId(), g.getId())) { ch.setChecked(true); } else ch.setChecked(false); String start = Actify.datetimeFormat.format(g.getStart().getTime()); String end = "..."; if (g.getMode() != Actify.MODE_RUNNING) end = Actify.datetimeFormat.format(g.getEnd().getTime()); String text = g.getName() + " (" + start + " - " + end + ")"; ch.setText(text); ch.setTextSize(14); ll.addView(ch); } sv.addView(ll); dialogGuest.setView(sv); dialogGuest.setTitle(res.getString(R.string.editActivityTitleGuest)); dialogGuest.setMessage(res.getString(R.string.editActivityMsgGuest)); dialogGuest.setButton(AlertDialog.BUTTON_POSITIVE, res.getString(R.string.btnOk), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { for (int i = 0; i < guests.size(); i++) { CheckBox ch = (CheckBox) ll.getChildAt(i); if (ch.isChecked()) { addGuests.add(guests.get(i)); } else delGuests.add(guests.get(i)); } dialog.dismiss(); } }); dialogGuest.setButton(AlertDialog.BUTTON_NEGATIVE, res.getString(R.string.btnCancel), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); dialogGuest.show(); } } }); activityEditDialog.setView(dialogView); activityEditDialog.setTitle(res.getString(R.string.editActivityTitleDialog)); activityEditDialog.setButton(AlertDialog.BUTTON_POSITIVE, res.getString(R.string.btnOk), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { int activityid = Actify .findActivitySettingByOrder(spinnerActivity.getSelectedItemPosition()) .getId(); int locationid = spinnerLocation.getSelectedItemPosition(); ai.setactivityid(activityid); ai.setlocationid(locationid); db.updateActivity(ai); for (Guest g : addGuests) { ActivityGuest ag = new ActivityGuest(ai.getId(), g.getId()); ag.setMode(Actify.MODE_RUNNING); db.addActivityGuest(ag); } for (Guest g : delGuests) { ActivityGuest ag = new ActivityGuest(ai.getId(), g.getId()); ag.setMode(Actify.MODE_DELETE); db.updateActivityGuest(ag); } List<String> guestList = db.getActivityGuestStringList(ai.getId()); if (guestList.isEmpty()) txtGuest.setText(""); else { String guestNames = ""; for (String s : guestList) { guestNames += s + " "; } txtGuest.setText(getResources().getString(R.string.txtGuests) + guestNames); } idColor.setBackgroundColor( Color.parseColor(Actify.colorAdapter.getItem(activityid).toString())); txtLocation.setText(getResources().getString(R.string.txtLocation) + Actify.locationAdapter.getItem(locationid).toString()); txtStart.setText(Actify.datetimeFormat.format(ai.getStart().getTime())); long changeStart = ai.getStart().getTimeInMillis() - oriStart; long base; String activityStr = Actify.findActivitySettingById(ai.getactivityid()) .getActivity(); if (ai.getMode() == Actify.MODE_RUNNING) { txtActivity.setText(activityStr); mChronometer.stop(); base = SystemClock.elapsedRealtime() - (Calendar.getInstance().getTimeInMillis() - ai.getStart().getTimeInMillis()); mChronometer.setBase(base); mChronometer.start(); } else if (ai.getMode() == Actify.MODE_PAUSED) { base = SystemClock.elapsedRealtime() - ai.getEnd().getTimeInMillis() + changeStart; mChronometer.setBase(base); mChronometer.stop(); txtActivity.setText(activityStr + res.getString(R.string.paused)); } if (changeReminder) { ReminderUtil.cancelAlarm(getActivity(), ai.getId()); ActivitySetting as = Actify.findActivitySettingById(activityid); ReminderUtil.setActivityReminder(getActivity(), ai.getId(), newHour * 60 + newMinute, as.getActivity()); } dialog.dismiss(); } }); activityEditDialog.setButton(AlertDialog.BUTTON_NEGATIVE, res.getString(R.string.btnCancel), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); activityEditDialog.show(); } }); timer_container.addView(rowView, timer_container.getChildCount()); }
From source file:com.avid.central.obsplugin.inewslibrary.OBSRundown.java
public DateTime GetFileDate() { try {/* www . ja v a2s .c om*/ DateTimeParser[] parsers = { DateTimeFormat.forPattern("dd MMMM YYYY").getParser(), DateTimeFormat.forPattern("dd-MMMM-YYYY").getParser() }; DateTimeFormatter dtf = new DateTimeFormatterBuilder().append(null, parsers).toFormatter(); DateTime dt = DateTime.parse(Date, dtf); return dt; } catch (Exception ex) { String s = ex.getMessage(); } return new DateTime(0); }
From source file:com.belatrix.legal.jiraintegrationservice.greenhopper.GreenHopperField.java
License:Open Source License
/** * Gets a date-time from the given object. * * @param dt Date-Time as a string//from w ww . j a v a2s . c o m * * @return the date-time or null */ public static DateTime getDateTime(Object dt) { if (dt == null || ((String) dt).equals(NO_DATE)) { return null; } return DateTime.parse((String) dt, DateTimeFormat.forPattern(DATE_TIME_FORMAT)); }
From source file:com.blackducksoftware.integration.jira.config.TicketCreationError.java
License:Apache License
public DateTime getTimeStampDateTime() { DateTime errorTime = DateTime.parse(timeStamp, ERROR_TIME_FORMAT); return errorTime; }
From source file:com.cinchapi.concourse.Timestamp.java
License:Apache License
/** * Parses a {@code Timestamp} from the specified string using a formatter. * //ww w .ja v a2s.com * @param str the string to parse, not null * @param formatter the formatter to use, not null * @return the parsed timestamp */ public static Timestamp parse(String str, DateTimeFormatter formatter) { return new Timestamp(DateTime.parse(str, formatter)); }
From source file:com.citrix.g2w.webdriver.pages.recordings.RecordingViewData.java
License:Open Source License
public RecordingViewData(String name, String email, String date, String time, String pattern, Locale locale) { date = date.trim();// www .java2 s . co m time = time.trim(); pattern = pattern.trim(); this.name = name; this.email = email; // Ignoring time zone data for tests since currently no good way to parse timezone unambiguously this.viewTime = DateTime.parse(date + " " + time.substring(0, time.lastIndexOf(" ")), DateTimeFormat.forPattern(pattern.substring(0, pattern.lastIndexOf(" "))).withLocale(locale)); }
From source file:com.cloudera.director.client.common.Version.java
License:Apache License
public void setCurrentServerTime(String currentServerTime) { this.currentServerTime = DateTime.parse(currentServerTime, SERVER_TIME_FORMAT); }
From source file:com.court.controller.HomeFXMLController.java
/** * Initializes the controller class./*from ww w . j av a2s . c o m*/ */ @Override public void initialize(URL url, ResourceBundle rb) { XYChart.Series<String, Number> series_1 = new XYChart.Series<>(); Map<String, Number> map = getLoanReleasedData(); for (Map.Entry<String, Number> entry : map.entrySet()) { String key = new SimpleDateFormat("MMM") .format(DateTime.parse(entry.getKey(), DateTimeFormat.forPattern("yyyy-MM-dd")).toDate()); Number value = entry.getValue(); series_1.getData().add(new XYChart.Data<>(key, value)); } //================================================================================================ XYChart.Series<String, Number> series_2 = new XYChart.Series<>(); Map<String, Number> map1 = getLoanCollectionData(); for (Map.Entry<String, Number> entry : map1.entrySet()) { String key = new SimpleDateFormat("MMM") .format(DateTime.parse(entry.getKey(), DateTimeFormat.forPattern("yyyy-MM-dd")).toDate()); Number value = entry.getValue(); series_2.getData().add(new XYChart.Data<>(key, value)); } loan_release_chart.getData().add(series_1); loan_collection_chart.getData().add(series_2); //live update time tile ============================= FxUtilsHandler.startTimeOf(timeTile); updateMemberCountTile(mbr_count_txt); updateMonthlyCollection(tot_col_txt); updateLoanAmtCollectionCurrentMonth(ln_amt_tot_label); //========================= collection_tile.setText("TOTAL COLLECTION - " + new SimpleDateFormat("MMMMM").format(new Date())); ln_amt_total_tile.setText("TOTAL LOAN AMOUNT GIVEN - " + new SimpleDateFormat("MMMMM").format(new Date())); }
From source file:com.dataartisans.flinktraining.exercises.datastream_java.datatypes.ConnectedCarEvent.java
License:Apache License
public static ConnectedCarEvent fromString(String line) { String[] tokens = line.split("(,|;)\\s*"); if (tokens.length != 23) { throw new RuntimeException("Invalid record: " + line); }// w ww .j av a2 s .c o m ConnectedCarEvent event = new ConnectedCarEvent(); try { event.id = tokens[1]; event.carId = tokens[0]; event.timestamp = DateTime.parse(tokens[22], timeFormatter).getMillis(); event.longitude = tokens[20].length() > 0 ? Float.parseFloat(tokens[20]) : 0.0f; event.latitude = tokens[21].length() > 0 ? Float.parseFloat(tokens[21]) : 0.0f; event.consumption = tokens[7].length() > 0 ? Float.parseFloat(tokens[7]) : 0.0f; event.speed = tokens[9].length() > 0 ? Float.parseFloat(tokens[9]) : 0.0f; event.throttle = tokens[12].length() > 0 ? Float.parseFloat(tokens[12]) : 0.0f; event.engineload = tokens[19].length() > 0 ? Float.parseFloat(tokens[19]) : 0.0f; } catch (NumberFormatException nfe) { throw new RuntimeException("Invalid field: " + line, nfe); } return event; }
From source file:com.dataartisans.flinktraining.exercises.datastream_java.datatypes.TaxiRide.java
License:Apache License
public static TaxiRide fromString(String line) { String[] tokens = line.split(","); if (tokens.length != 9) { throw new RuntimeException("Invalid record: " + line); }// www .j a v a2 s . co m TaxiRide ride = new TaxiRide(); try { ride.rideId = Long.parseLong(tokens[0]); ride.time = DateTime.parse(tokens[1], timeFormatter); ride.startLon = tokens[3].length() > 0 ? Float.parseFloat(tokens[3]) : 0.0f; ride.startLat = tokens[4].length() > 0 ? Float.parseFloat(tokens[4]) : 0.0f; ride.endLon = tokens[5].length() > 0 ? Float.parseFloat(tokens[5]) : 0.0f; ride.endLat = tokens[6].length() > 0 ? Float.parseFloat(tokens[6]) : 0.0f; ride.passengerCnt = Short.parseShort(tokens[7]); ride.travelDistance = tokens[8].length() > 0 ? Float.parseFloat(tokens[8]) : 0.0f; switch (tokens[2]) { case "START": ride.isStart = true; break; case "END": ride.isStart = false; break; default: throw new RuntimeException("Invalid record: " + line); } } catch (NumberFormatException nfe) { throw new RuntimeException("Invalid record: " + line, nfe); } return ride; }