package importation.xls;
import gui.MainWindow;
import gui.util.TaxiGuiUtil;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import modele.course.Trajet;
/**
* <p> XlsTrajetDecodeur c'est une classe qui implemente interface IXlsDecodeur<Trajet> </p>
* contruit une tourn�e � partir d'une ligne de donn�es
*
* @author Kasandra
*
*/
public class XlsTrajetDecodeur implements IXlsDecodeur<Trajet>{
private static final int INDEX_TOURNEE_ID = 0;
private static final int INDEX_CHAMP_ADRESSE_DEPART = 1;
private static final int INDEX_CHAMP_KM_TAXISMETRE_DEPART = 2;
private static final int INDEX_CHAMP_DATE_HEURE_DEPART = 3;
private static final int INDEX_CHAMP_ADRESSE_ARRIVEE = 4;
private static final int INDEX_CHAMP_KM_TAXISMETRE_ARRIVE = 5;
private static final int INDEX_CHAMP_DATE_HEURE_ARRIVEE = 6;
private static final int INDEX_CHAMP_PRIX_COURSE = 7;
private static final int INDEX_CHAMP_PRIX_SUPPLEMENT = 8;
public int[] colonnesALire() {
return new int[]{INDEX_TOURNEE_ID, INDEX_CHAMP_ADRESSE_DEPART, INDEX_CHAMP_KM_TAXISMETRE_DEPART, INDEX_CHAMP_DATE_HEURE_DEPART,INDEX_CHAMP_ADRESSE_ARRIVEE,
INDEX_CHAMP_KM_TAXISMETRE_ARRIVE , INDEX_CHAMP_DATE_HEURE_ARRIVEE, INDEX_CHAMP_PRIX_COURSE, INDEX_CHAMP_PRIX_SUPPLEMENT};
}
/**
*
*/
public Trajet decode(Map<Integer,String> ligne) {
Trajet trajet = new Trajet();
trajet.setAddresseDepart(ligne.get(INDEX_CHAMP_ADRESSE_DEPART));
trajet.setKilometrageTaximetreDepart(Long.parseLong(ligne.get(INDEX_CHAMP_KM_TAXISMETRE_DEPART)));
Date dateDebutTrajet = null;
try {
dateDebutTrajet = new SimpleDateFormat(gui.MotsCleProjet.TIME_FORMAT).parse(ligne.get(INDEX_CHAMP_DATE_HEURE_DEPART));
} catch (ParseException e) {
e.printStackTrace();
TaxiGuiUtil.MessageBox(MainWindow.desktop(), "Le format de date d�but trajet est invalide : attendu " + gui.MotsCleProjet.DATE_TIME_FORMAT, "Erreur");
}
trajet.setHeureDepart(dateDebutTrajet);
trajet.setAddresseArrivee(ligne.get(INDEX_CHAMP_ADRESSE_ARRIVEE));
trajet.setKilometrageTaximetreArrivee(Long.parseLong(ligne.get(INDEX_CHAMP_KM_TAXISMETRE_ARRIVE)));
Date dateFinTrajet = null;
try {
dateFinTrajet = new SimpleDateFormat(gui.MotsCleProjet.TIME_FORMAT).parse(ligne.get(INDEX_CHAMP_DATE_HEURE_ARRIVEE));
} catch (ParseException e) {
e.printStackTrace();
TaxiGuiUtil.MessageBox(MainWindow.desktop(), "Le format de date fin trajet est invalide : attendu " + gui.MotsCleProjet.DATE_TIME_FORMAT, "Erreur");
}
trajet.setHeureArrivee(dateFinTrajet);
trajet.setPrixCourse(new BigDecimal(ligne.get(INDEX_CHAMP_PRIX_COURSE)));
trajet.setPrixSupplementaire(new BigDecimal(ligne.get(INDEX_CHAMP_PRIX_SUPPLEMENT)));
return trajet;
}
}