/*
  * (non-Javadoc)
  *
  * @see nl.cybercompany.treinadvies.web.pages.application.business.ReisplannerService#planReis(nl.
  * cybercompany.treinadvies.domain.Station,
  * nl.cybercompany.treinadvies.web.pages.application.domain.Station)
  */
 @Override
 @Cacheable(cacheName = "reisadviesCache")
 public ReisAdvies planReis(ReisVraag reisVraag) throws NoResultException {
   return convert(
       nsApiClient.getReisAdvies(
           Station.createSimple(reisVraag.getVertrekStation()),
           Station.createSimple(reisVraag.getAankomstStation()),
           reisVraag.getTijd()),
       reisVraag);
 }
  /**
   * Create {@link List} of {@link Punt} from {@link List} of {@link ReisStop}.
   *
   * @param reisStops
   * @return
   */
  private List<Punt> convert(List<ReisStop> reisStops) {
    List<Punt> punten = new ArrayList<Punt>();

    for (Iterator iterator = reisStops.iterator(); iterator.hasNext(); ) {
      ReisStop reisStop = (ReisStop) iterator.next();
      Punt punt;

      if (reisStop.getSpoor() != null) {
        punt =
            StationTransferPunt.create(
                reisStop.getTijd(),
                Station.createSimple(reisStop.getNaam()),
                reisStop.getSpoor().getValue());
      } else {
        punt = Punt.createPunt(reisStop.getTijd(), Station.createSimple(reisStop.getNaam()));
      }

      punten.add(punt);
    }

    return punten;
  }