Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider 7f80e9ef rédigé par Julien DURILLON's avatar Julien DURILLON
Parcourir les fichiers

vrai final

parent a9341de6
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
package fr.alma.modele;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import fr.alma.modele.noyau.Frequence;
import fr.alma.modele.noyau.IContact;
import fr.alma.modele.noyau.IProjet;
import fr.alma.modele.noyau.ITache;
import fr.alma.observer.*;
/**
* Modèle abstrait.
* @author Université de Nantes
* @since 2009
* @version 1.0
*/
public abstract class AbstractModele implements Observable {
private static Long idUtilisateur;
private static IProjet projetRacine;
/**
* La liste d'observeurs (pattern observer)
*/
private ArrayList<Observer> observers = new ArrayList<Observer>();
/**
* Vérifie si l'utilisateur réussi sa connexion
* @param login le login de l'utilisateur
* @param mdp le mot de passe de l'utilisateur
* @return le code de validation/erreur
*/
public abstract Long existeUtilisateur(String login, char[] mdp);
/**
* Créer un compte utilisateur
* @param login le login de l'utilisateur
* @param password le mot de passe de l'utilisateur
* @param email l'adresse de l'utilisateur
*/
public abstract void creerCompte(String login, char[] password, String email);
/**
* Créer un contact
* @param nom nom du contact
* @param email l'adresse email du contact
* @param adresse l'adresse du contact
* @param tel le téléphone du contact
* @return Le contact créé
*/
public abstract IContact creerContact(String nom, String email, String adresse, String tel);
/**
* Créer une tâche
* @param nom nom de la tâche
* @param projet le projet dans lequel elle est contenu
* @param contexte le contexte de la tâche
* @param notesTache les notes de la tâche
* @param dateDedebut la date de commencement de la tâche
* @param echeance l'échéance de la tâche
* @param priorite la priorité de la tâche
* @param tauxEffort le taux d'effort demandé pour la tâche
* @param listeContact la liste de contacts associées à cette tâche
* @param frequence la fréquence d'utilisation de cette tâche
* @param arretFrequence la date d'arrêt de la fréquence de la tâche
* @param urls les urls de la tâche
* @param tags les références de la tâches
*/
public abstract void creerTache(String nom, IProjet projet, String contexte, String notesTache, Date dateDedebut,
Date echeance, Integer priorite, Integer tauxEffort, IContact[] listeContact, Frequence frequence,
Date arretFrequence, List<String> urls, List<String> tags);
/**
* Créer un projet
* @param nom nom du projet
* @param contexte contexte du projet
* @param notes notes du projet
* @param projetPere projet qui contient le projet courant
* @return l'identifiant du projet
*/
public abstract Long creerProjet(String nom, String contexte, String notes, IProjet projetPere);
/**
* Déplace un objet (tâche ou projet) dans la corbeille
* @param object
*/
public abstract void mettreDansCorbeille(Object object);
/**
* Edite une tâche
* @param tache la tâche
*/
public abstract void editerTache(ITache tache);
/**
* Edite un projet
* @param projet le projet
*/
public abstract void editerProjet(IProjet projet);
/**
* Supprime un contact
* @param contact le nom du contact à supprimer
*/
public abstract void supprimerContact(IContact contact);
/**
* vide la corbeille
* @param corbeille le projet corbeille
*/
public abstract void viderCorbeille(IProjet corbeille);
// Fonctionnalités non-implémentées
public abstract void commit();
public abstract void update();
public abstract void synchro();
//**************************************************
// IMPLEMENTATION PATTERN OBSERVER
//**************************************************
@Override
public void addObserver(Observer obs) {
this.observers.add(obs);
}
@Override
public void notifyObserver(AbstractModele modele) {
for (Observer obs : observers) {
obs.update(modele);
}
}
@Override
public void removeObserver() {
observers = new ArrayList<Observer>();
}
//**************************************************
// GETTERS AND SETTERS
//**************************************************
public static Long getIdUtilisateur() {
return idUtilisateur;
}
public static IProjet getProjetRacine() {
return projetRacine;
}
public static void setIdUtilisateur(Long idUtilisateur) {
AbstractModele.idUtilisateur = idUtilisateur;
}
public static void setProjetRacine(IProjet projetRacine) {
AbstractModele.projetRacine = projetRacine;
}
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter