SAE201-DevApp/src/main/java/fr/univ_amu/iut/model/Discipline.java
2022-06-07 11:46:00 +02:00

96 lines
2.3 KiB
Java

package fr.univ_amu.iut.model;
import jakarta.persistence.*;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@NamedQueries({
@NamedQuery(name = "Discipline.findAll", query = "SELECT p FROM Discipline p"),
@NamedQuery(name = "Discipline.findById", query = "SELECT p FROM Discipline p WHERE p.id = :id"),
})
@Entity
public class Discipline implements Serializable {
private static final List<Discipline> INSTANCES = new ArrayList<>();
public static Discipline Toutes = new Discipline("Toutes disciplines");
public static Discipline HistoireGeographie = new Discipline("Histoire-géographie");
public static Discipline PhysiqueChimie = new Discipline("Physique-chimie");
public static Discipline ScienceEtVieDeLaTerre = new Discipline("SVT");
public static Discipline Technologie = new Discipline("Technologie");
public static Discipline Francais = new Discipline("Français");
public static Discipline EconomieGestion = new Discipline("Économie Gestion");
public static Discipline LangueVivante = new Discipline("Langue Vivante");
@Id
@GeneratedValue
int id;
@Column(unique = true)
String nom;
public Discipline() {
}
public Discipline(String nom) {
this.nom = nom;
INSTANCES.add(this);
}
public static List<Discipline> toutes() {
return INSTANCES;
}
public static Discipline getById(int id){
for(Discipline discipline : Discipline.toutes()) {
if (discipline.id == id) return discipline;
}
return null;
}
public int getId(){
return id;
}
public String getNom() {
return nom;
}
@Override
public String toString() {
return "Discipline{" +
"id=" + id +
", nom='" + nom + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Discipline that = (Discipline) o;
if (id != that.id) return false;
return nom.equals(that.nom);
}
@Override
public int hashCode() {
int result = id;
result = 31 * result + nom.hashCode();
return result;
}
}