Skip to content
......@@ -4,10 +4,35 @@
*/
package fr.ldnr.starWars.services;
import fr.ldnr.starWars.domains.Chasseur;
import fr.ldnr.starWars.enumerations.EtatChasseur;
import fr.ldnr.starWars.enumerations.TypeChasseur;
import java.util.List;
/**
*
* @author stag
*/
public interface ChasseurService {
Iterable<Chasseur> findAll();
Chasseur save(Chasseur chasseur);
public List<Chasseur> findByEtat(EtatChasseur etat);
public Iterable<Chasseur> trouverParId(Long id_chasseur);
public Iterable<Chasseur> trouverParEtat(EtatChasseur etat);
public Iterable<Chasseur> trouverParType(TypeChasseur type);
public Iterable<Chasseur> modifierEtat(Long id_chasseur, EtatChasseur nouvelEtat);
public Iterable<TypeChasseur> listeTypeChasseur();
public Chasseur findById(Integer idChasseur);
public Iterable<EtatChasseur> listeEtatChasseur();
}
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package fr.ldnr.starWars.services;
import fr.ldnr.starWars.domains.Chasseur;
import fr.ldnr.starWars.enumerations.EtatChasseur;
import fr.ldnr.starWars.enumerations.TypeChasseur;
import fr.ldnr.starWars.repositories.ChasseurRepository;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.springframework.stereotype.Service;
/**
*
* @author stag
*/
public class ChasseurServiceImpl {
@Service
public class ChasseurServiceImpl implements ChasseurService {
@PersistenceContext
private EntityManager em;
ChasseurRepository chasseurRepository;
public ChasseurServiceImpl(ChasseurRepository cr) {
chasseurRepository = cr;
}
@Override
public Iterable<Chasseur> findAll() {
return chasseurRepository.findAll();
}
@Override
public Chasseur save(Chasseur chasseur) {
return chasseurRepository.save(chasseur);
}
@Override
public Iterable<Chasseur> trouverParEtat(EtatChasseur etat) {
List<Chasseur> list = new ArrayList<>();
list = em.createQuery("FROM Chasseur c WHERE c.chasseur.etat = :etat")
.setParameter("etat", etat)
.getResultList();
return list;
}
@Override
public Iterable<TypeChasseur> listeTypeChasseur() {
List<TypeChasseur> list = Arrays.asList(TypeChasseur.values());
return list;
}
@Override
public Iterable<EtatChasseur> listeEtatChasseur() {
List<EtatChasseur> list = Arrays.asList(EtatChasseur.values());
return list;
}
@Override
public Iterable<Chasseur> trouverParId(Long id_chasseur) {
List<Chasseur> list = new ArrayList();
list = em.createQuery("FROM Chasseur c WHERE c.id = :id")
.setParameter("id", id_chasseur)
.getResultList();
return list;
}
@Override
public Iterable<Chasseur> trouverParType(TypeChasseur type) {
List<Chasseur> list = new ArrayList();
list = em.createQuery("FROM Chasseur c WHERE c.type = :type")
.setParameter("type", type)
.getResultList();
return list;
}
@Override
public Iterable<Chasseur> modifierEtat(Long id_chasseur, EtatChasseur nouvelEtat) {
Chasseur chasseurModif = em.find(Chasseur.class, id_chasseur);
chasseurModif.setEtat(nouvelEtat);
em.merge(chasseurModif);
return (Iterable<Chasseur>) chasseurModif;
}
@Override
public List<Chasseur> findByEtat(EtatChasseur etat) {
return chasseurRepository.findByEtat(etat);
}
@Override
public Chasseur findById(Integer idChasseur) {
Chasseur chasseur = new Chasseur();
chasseur = (Chasseur) em.createQuery("SELECT c FROM Chasseur c WHERE c.idChasseur= :id")
.setParameter("id", idChasseur).getSingleResult();
return chasseur;
}
}
......@@ -4,10 +4,28 @@
*/
package fr.ldnr.starWars.services;
import fr.ldnr.starWars.domains.Mission;
import fr.ldnr.starWars.enumerations.ResultatMission;
import fr.ldnr.starWars.enumerations.StatutMission;
import fr.ldnr.starWars.enumerations.TypeMission;
import java.util.List;
/**
*
* @author stag
* @author Vincent
*/
public interface MissionService {
Iterable<Mission> findAll();
Mission save(Mission mission);
public Iterable<TypeMission> listMission();
public Iterable<ResultatMission> resultatMission();
public Mission findById(Integer idMission);
List<Mission> findByStatut(StatutMission statut);
}
......@@ -4,10 +4,68 @@
*/
package fr.ldnr.starWars.services;
import fr.ldnr.starWars.domains.Chasseur;
import fr.ldnr.starWars.domains.Mission;
import fr.ldnr.starWars.domains.Pilote;
import fr.ldnr.starWars.enumerations.ResultatMission;
import fr.ldnr.starWars.enumerations.StatutMission;
import fr.ldnr.starWars.enumerations.TypeMission;
import fr.ldnr.starWars.repositories.MissionRepository;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import java.util.Arrays;
import java.util.List;
import org.springframework.stereotype.Service;
/**
*
* @author stag
* @author Vincent
*/
public class MissionServiceImpl {
@Service
public class MissionServiceImpl implements MissionService {
@PersistenceContext
private EntityManager entityManager;
MissionRepository missionRepository;
public MissionServiceImpl(MissionRepository missionRepository) {
this.missionRepository = missionRepository;
}
@Override
public Iterable<Mission> findAll() {
return missionRepository.findAll();
}
@Override
public Iterable<TypeMission> listMission() {
List<TypeMission> list = Arrays.asList(TypeMission.values());
return list;
}
@Override
public Iterable<ResultatMission> resultatMission() {
List<ResultatMission> resultat = Arrays.asList(ResultatMission.values());
return resultat;
}
@Override
public Mission save(Mission mission) {
return missionRepository.save(mission);
}
@Override
public Mission findById(Integer idMission) {
Mission mission = new Mission();
mission = (Mission) entityManager.createQuery("SELECT m FROM Mission m WHERE m.idMission = :id")
.setParameter("id", idMission).getSingleResult();
return mission;
}
@Override
public List<Mission> findByStatut(StatutMission statut) {
return missionRepository.findByStatut(statut);
}
}
......@@ -4,10 +4,43 @@
*/
package fr.ldnr.starWars.services;
import fr.ldnr.starWars.domains.Pilote;
import fr.ldnr.starWars.enumerations.EtatPilote;
import fr.ldnr.starWars.enumerations.GradePilote;
import fr.ldnr.starWars.enumerations.RacePilote;
import fr.ldnr.starWars.enumerations.TypePilote;
import java.util.List;
/**
*
* @author stag
*/
public interface PiloteService {
public Iterable<Pilote> findAll();
public Pilote findByNom(String nom);
public List<Pilote> findByEtat(EtatPilote etat);
public List<Pilote> findByGrade(GradePilote grade);
public List<Pilote> findByType(TypePilote type);
public List<Pilote> findByRace(RacePilote race);
public List<Pilote> findByEtatAndType(EtatPilote etat, TypePilote type);
public Iterable<RacePilote> listRace();
public Iterable<TypePilote> listType();
public Iterable<GradePilote> listGrade();
public Iterable<EtatPilote> listEtat();
public Pilote save(Pilote pilote);
public Pilote findById(Integer id_pilote);
}
......@@ -4,10 +4,103 @@
*/
package fr.ldnr.starWars.services;
import fr.ldnr.starWars.domains.Pilote;
import fr.ldnr.starWars.enumerations.EtatPilote;
import fr.ldnr.starWars.enumerations.GradePilote;
import fr.ldnr.starWars.enumerations.RacePilote;
import fr.ldnr.starWars.enumerations.TypePilote;
import fr.ldnr.starWars.repositories.PiloteRepository;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import java.util.Arrays;
import java.util.List;
import org.springframework.stereotype.Service;
/**
*
* @author stag
*/
public class PiloteServiceImpl {
@Service
public class PiloteServiceImpl implements PiloteService {
@PersistenceContext
private EntityManager entityManager;
PiloteRepository piloteRepository;
public PiloteServiceImpl(PiloteRepository piloteRepository) {
this.piloteRepository = piloteRepository;
}
@Override
public Iterable<Pilote> findAll() {
return piloteRepository.findAll();
}
@Override
public Iterable<RacePilote> listRace() {
List<RacePilote> list = Arrays.asList(RacePilote.values());
return list;
}
@Override
public Iterable<TypePilote> listType() {
List<TypePilote> list = Arrays.asList(TypePilote.values());
return list;
}
@Override
public Iterable<GradePilote> listGrade() {
List<GradePilote> list = Arrays.asList(GradePilote.values());
return list;
}
@Override
public Iterable<EtatPilote> listEtat() {
List<EtatPilote> list = Arrays.asList(EtatPilote.values());
return list;
}
@Override
public Pilote save(Pilote pilote) {
return piloteRepository.save(pilote);
}
@Override
public Pilote findById(Integer idPilote) {
Pilote pilote = new Pilote();
pilote = (Pilote) entityManager.createQuery("SELECT p FROM Pilote p WHERE p.idPilote = :id")
.setParameter("id", idPilote).getSingleResult();
return pilote;
}
@Override
public List<Pilote> findByEtat(EtatPilote etat) {
return piloteRepository.findByEtat(etat);
}
@Override
public Pilote findByNom(String nom) {
return piloteRepository.findByNom(nom);
}
@Override
public List<Pilote> findByGrade(GradePilote grade) {
return piloteRepository.findByGrade(grade);
}
@Override
public List<Pilote> findByType(TypePilote type) {
return piloteRepository.findByType(type);
}
@Override
public List<Pilote> findByRace(RacePilote race) {
return piloteRepository.findByRace(race);
}
@Override
public List<Pilote> findByEtatAndType(EtatPilote etat, TypePilote type) {
return piloteRepository.findByEtatAndType(etat, type);
}
}
spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:0522e6bf-5e28-43c6-933d-03fbb6b4bc6e;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1
spring.datasource.user=SA
\ No newline at end of file
@startuml Diagramme de classe
package domains <<Folder>> {
class Chasseur {
id_chasseur : Integer
type_chasseur : String
etat_chasseur : EtatChasseur
}
class Pilote {
id_pilote : Integer
nom : String
prenom : String
ddn : Date
race : RacePilote
date_inscription : Date
etat_pilote : EtatPilote
grade : GradePilote
}
class Mission {
id_mission : Integer
titre : String
type_mission : TypeMission
date_debut : Date
date_fin : Date
}
class Affectation {
id_pilote : Integer
id_chasseur : Integer
id_mission : Integer
}
}
class Calculs {
{static} calculAge()
{static} calculNbHeure()
}
class Chasseur implements EtatChasseur
class Pilote implements RacePilote, EtatPilote, GradePilote
class Mission implements TypeMission
enum EtatChasseur {
OPERATIONNEL
EN_MISSION
MAINTENANCE
DETRUIT
}
enum EtatPilote {
DISPONIBLE
EN_MISSION
BLESSE
TUE
}
enum GradePilote {
APPRENTI
OFFICIER
LIUTENANT
CAPITAINE
COMMANDANT
}
enum RacePilote {
CHALACTEENS
CHISS
HUMAINS
ITHORIENS
MIRIALANS
KELDOR
KIFFARS
MIRALUKAS
NAGAIS
NEIMOIDIENS
NIKTOS
NOGHRIS
ONGREES
PAUANS
QUERMIENS
RAKATA
RODIENS
THISSPASIENS
TOGRUTAS
WOOKIES
WRONIANS
ZABRAKS
}
enum TypeMission {
ENTRAINEMENT
COMBAT
}
Pilote "1" --> "n" Affectation
Chasseur "1" --> "n" Affectation
Mission "1" *--> "n" Affectation
package repositories <<Folder>> {
interface PiloteRepository
interface ChasseurRepository
interface MissionRepository
interface AffectationRepository
}
package services <<Folder>> {
interface PiloteService {
findAll()
findById()
}
interface ChasseurService {
findAll()
findById()
}
interface MissionService {
findAll()
findById()
}
interface AffectationService
class PiloteServiceImpl implements PiloteService {
findByName()
findByEtat()
findByGrade()
findByType()
}
class ChasseurServiceImpl implements ChasseurService {
findByType()
findByEtat()
}
class MissionServiceImpl implements MissionService {
findByEtat()
findByResultat()
}
class AffectationServiceImpl implements AffectationService
}
package controllers <<Folder>> {
class ChasseurController
class FicheChasseurController
class PiloteController
class FichePiloteController
class FinMissionController implements Calculs {
modifierEtatPilote()
modifierEtatChasseur()
modifierGrade()
}
class InscriptionPiloteController implements Calculs {
inscrirePilote()
}
class MissionController
class NouveauChasseurController {
ajouterChasseur
}
class NouvelleMissionController {
ajouterMission()
}
class AffectationController
}
PiloteServiceImpl "1" --> "1" PiloteRepository
ChasseurServiceImpl "1" --> "1" ChasseurRepository
MissionServiceImpl "1" --> "1" MissionRepository
AffectationServiceImpl "1" --> "1" AffectationRepository
PiloteService "1" --> "1" PiloteController
ChasseurService "1" --> "1" ChasseurController
MissionService "1" --> "1" MissionController
AffectationService "1" --> "1" AffectationController
@enduml
\ No newline at end of file
license: Freeware, Non-Commercial
link: https://www.fontspace.com/starkiller-font-f35874
\ No newline at end of file
The FontStruction “AnakinMono”
(http://fontstruct.com/fontstructions/show/773756) by “opipik” is licensed
under a Creative Commons Attribution Share Alike license
(http://creativecommons.org/licenses/by-sa/3.0/).