/**
   * Returns a TrainInfo object populated with train name, list of station and list of start dates.
   *
   * @param trainNumber train number
   * @return a TrainInfo object
   */
  public TrainInfo getTrainInfo(String trainNumber) {
    String trainInfoUrl = SEARCH_SERVICE_HOST + "search" + JSON + "?q=" + trainNumber;
    List<String> listOfStations = null;
    List<String> startDate = null;
    TrainInfo trainInfo = null;
    String jsonData = fetchData(trainInfoUrl);
    if (jsonData != null) {
      trainInfo = new TrainInfo();
      listOfStations = new ArrayList<String>();
      startDate = new ArrayList<String>();

      try {
        if ((new JSONArray(jsonData)).length() > 0) {
          JSONObject jsonTrainInfo = (new JSONArray(jsonData)).getJSONObject(0);
          trainInfo.setValidTrain(true);
          trainInfo.setExtendedTrainName(jsonTrainInfo.getString(EXTENDED_TRAIN_NAME));

          JSONObject routes = jsonTrainInfo.getJSONArray(ROUTES).getJSONObject(0);
          String[] stations = (routes.getString(STATIONS)).split(",");
          for (String station : stations) {
            listOfStations.add(station);
          }
          trainInfo.setListOfStations(listOfStations);

          String[] dates = (jsonTrainInfo.getString("start_dates")).split(",");
          for (String date : dates) {
            date = ((date.replaceAll("\"", "")).replaceAll("\\[", "")).replaceAll("\\]", "");
            startDate.add(date);
          }
          trainInfo.setStartDates(startDate);
        } else {
          trainInfo.setValidTrain(false);
        }
      } catch (JSONException jsonEx) {
        Log.e(tag, jsonEx.getMessage());
        trainInfo = null;
      }
    }
    return trainInfo;
  }
 @Override
 public int getItemCount() {
   return mItems.getRoute().size();
 }
 public TrainRouteAdapter(Context context, TrainInfo pc) {
   super();
   mItems = pc;
   routes = pc.getRoute();
   this.context = context;
 }