Pour compiler, vous avez besoin de Maven.
mvn package
dans un terminal dans le répertoire source du projet.Puis vous pouvez executer le programme en allant dans le dossier target/classes et taper la commande java parking.business.App
Vous pouvez convertir le projet en projet eclipse avec
mvn eclipse:eclipse
Importez alors dans eclipse (Projet existant dans l'espace de travail) Vous avez besoin de paramétrer une variable M2_REPO de build pour les dépendances (JUnit)
Allez dans la barre de menu, Window > Preferences
Dans la barre de coté. Java > Build Path > Classpath Variables.
Faite New.
Creer une variable qui s'appelle M2_REPO.
Donnez lui pour valeur le chemin des repo de maven.
Sous linux, il y a un dossier caché .m2 dans votre home et dedans il y a un dossier repository.
Donc un exemple de valeur correcte serai /home/[user]/.m2/repository
Aucune idée de la valeur correcte sous windows, je sais juste que le nom du repertoire est aussi repository.
Enfin, comme dirait Nedjar : Un développeur n'ayant pas un Unix sur sa machine ne peut pas être raisonnablement considéré comme un vrai développeur.
Vous pouvez alors ouvrir la classe qui contient le main et lancer le programme.
Lors de vos commits, ne commitez que les fichiers que vous modifiez, les .java, pas de .class ou autre merdes d'eclipse.
Vous n'avez pas les droits d'acces sur ce repot, vous les obtiendrez quand vous vous montrerez a peu pres capable d'utiliser git.
Contentez vous de fork ce repot (le bouton en haut), et de faire un git clone [url de votre fork]
dans un terminal
Vous aurez alors un dossier projet-java dans le dossier ou vous avez effectuer la commande.
Vous pouvez taper votre code, cool.
Configurez votre git
git config --global user.name [username de github]
git config --global user.email [email de github]
Quand vous avez fini, vous allez commit votre code.
git add [fichiers modifiés]
git commit -m ["Description des modification apportées"]
git push
Entrez votre mot de passe et votre code est sur votre fork.
Ensuite allez sur github et appuyez sur le bouton vert, pour faire une "pull request" (PR)
Une pull request est une demande a ce que votre code soit incorporé (merge) dans la base existante.
L'avantage, c'est que on peut eviter que du code non-fonctionnel se retrouve dans le repo principal. Lorsque vous ferez votre pull request, vous verrez des icones qui indique un status, c'est Travis qui fait sont boulot. Il compile et lance les test unitaire sur le code qui resultera du merge, pour confirmer que le code est fonctionnel. Vous pouvez voir en haut de ce readme une petite image qui montre l'etat du build.
Note: Le java permet les nom de variable et de classe accentué, genre Véhicule.
Classes:
Parking | Singleton | Description |
---|---|---|
instance | Parking | |
getInstance | Parking | Renvoie l'instance unique du parking |
places | ArrayList | Contient les places du parking |
vehiculeExiste(Vehicule v) | bool | Renvois true si le vehicule est stationé |
park(Vehicule v) | void, throws | Gare un vehicule |
park(Vehicule v, int place) | void, throws | Pareil mais a une place donnée |
unpark(int place) | Vehicule | Enleve un véhicule |
etatParking | void | Affiche l'état du parking(Places, et infos sur les voiture stationnée) |
bookPlace | Place | Renvois la premiere place libre trouvée |
bookPlace(int) | Place | Renvois une place si celle a l'indice est vide |
freePlace() | void | throw. Libere une place reservee |
getLocation(String immat) | int | Renvoie le num de la place d'une voiture selon son immat |
retirerVehicule(immat) | Voiture | Retire une voiture de sa place et la renvoie, null si non trouvé |
reorganiserPlace | void | Deplace les vehicules sur les place transporteur si une place normal est liberée |
Abstraite: Place | Description | |
---|---|---|
Place | Contructeur privé | |
bool reserve | vrai si la place est reservée | |
reserver(bool) | void | Reserve la place throw |
liberer() | void | libere la place, throw |
Abstraite: park(ITransporteur) | Gare un vehicule transporteur | |
park(IParticulier) | Gare un vehicule particulier |
park(IParticulier) n'a pas besoin d'etre abstraite car on sait que quoi qu'il arrive, un vehicule particulier peut se garer sur n'importe quel type de place
PlaceTransporteur | Place | Description |
---|---|---|
park(ITransporteur) | gare un transporteur |
PlaceParticulier | Place | Description |
---|---|---|
park(ITransporteur) | Throw, on ne peut pas garer un transporteur ici ! |
Abstraite: Vehicule |
String immatricule |
String modele |
String marque |
String Proprietaire |
Voiture | Vehicule | implémente IParticulier |
todo: Trouver des caracteristique de voiture |
Moto | Vehicule | implémente IParticulier |
todo: Trouver des caracteristique de moto |
Camion | Vehicule | implémente ITranporteur |
todo: Trouver des caracteristique de camion |
Interfaces:
ITransporteur | Interface vide qui garanti qu'un vehicule est transporteur |
IParticulier | Interface vide qui garanti qu'un vehicule est Particulier |
On verra plus tard pour l'interface graphique(swing/AWT) et les factures(serialisable).