Commit 1a750cbb authored by sunye's avatar sunye
Browse files

Simplify command behavior for Compte, Contexte, Projet, and tache creation

parent 61a26a85
package fr.alma.gtd.server.main.commande;
import java.rmi.RemoteException;
/**
* Interface des commandes.
* author Nobody
* author Nobody
*
* @version 1.0.0
*/
public interface Commande {
/**
* Execute la commande.
* @throws RemoteException
*/
void execute() throws RemoteException;
/**
* Execute la commande.
*/
void execute();
}
package fr.alma.gtd.server.main.commande;
import fr.alma.gtd.server.persistence.data.Participant;
import fr.alma.gtd.server.persistence.data.Utilisateur;
import fr.alma.gtd.server.persistence.sessions.IUtilisateurServiceRemote;
import fr.alma.gtd.server.core.CallBack;
import fr.alma.gtd.server.main.donnees.Compte;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.rmi.RemoteException;
import java.util.Date;
import java.util.Properties;
/**
* Commande de creation du compte.
* author Nobody
* author Nobody
*
* @version 1.0.0
*/
public final class CommandeCreerCompte implements Commande {
/**
* Le nom d'utilisateur.
*/
private final String username;
/**
* Le mot de passe.
*/
private final String password;
/**
* Le pseudo.
*/
private final String pseudo;
/**
* Le callback.
*/
private final CallBack<String> callback;
/**
* Le service de gestion d'utilisateurs.
*/
private IUtilisateurServiceRemote utilisateurServiceRemote;
/**
* Le constructeur?
* @param u Le nom d'utilisateur.
* @param p Le mot de passe.
* @param ps Le pseudo.
* @param c Le callback.
*/
public CommandeCreerCompte(final String u, final String p, final String ps, final CallBack<String> c) {
super();
this.username = u;
this.password = p;
this.pseudo = ps;
this.callback = c;
final Properties env = new Properties();
env.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
env.setProperty("java.naming.provider.url", "localhost:1099");
env.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
try {
final Context context = new InitialContext(env);
this.utilisateurServiceRemote = (IUtilisateurServiceRemote) context.lookup("UtilisateurService/local");
} catch (NamingException e) {
e.printStackTrace();
}
}
@Override
public void execute() throws RemoteException {
final Utilisateur util = new Utilisateur();
util.setLogin(this.username);
util.setPassword(this.password);
final Participant par = new Participant();
par.setDateDeDerniereModification(new Date());
par.setPseudonyme(this.pseudo);
util.setParticipantAssocie(par);
if (this.utilisateurServiceRemote.getUtilisateurByLogin(this.username) == null) {
this.utilisateurServiceRemote.creerUtilisateur(new Utilisateur());
this.callback.onSucces("Utilisateur enregistre");
} else {
this.callback.onFailure(new Exception("Utilisateur existant"));
}
}
/**
* Le nom d'utilisateur.
*/
private final String username;
/**
* Le mot de passe.
*/
private final String password;
/**
* Le pseudo.
*/
private final String pseudo;
/**
* Le callback.
*/
private final CallBack<String> callback;
/**
* Le constructeur?
*
* @param u Le nom d'utilisateur.
* @param p Le mot de passe.
* @param ps Le pseudo.
* @param c Le callback.
*/
public CommandeCreerCompte(final String u, final String p, final String ps, final CallBack<String> c) {
super();
this.username = u;
this.password = p;
this.pseudo = ps;
this.callback = c;
}
@Override
public void execute() {
Compte nouvelleCompte = new Compte(username, password, pseudo);
}
}
package fr.alma.gtd.server.main.commande;
import fr.alma.gtd.server.main.donnees.Contexte;
import fr.alma.gtd.server.persistence.data.Utilisateur;
import fr.alma.gtd.server.persistence.sessions.IContexteServiceRemote;
import fr.alma.gtd.server.persistence.sessions.IUtilisateurServiceRemote;
......@@ -58,33 +59,10 @@ public final class CommandeCreerContexte implements Commande {
this.contexte = co;
this.callback = ca;
final Properties env = new Properties();
env.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
env.setProperty("java.naming.provider.url", "localhost:1099");
env.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
try {
final Context context = new InitialContext(env);
this.contexteServiceRemote = (IContexteServiceRemote) context.lookup("ContexteService/local");
this.utilisateurServiceRemote = (IUtilisateurServiceRemote) context.lookup("UtilisateurService/local");
} catch (NamingException e) {
e.printStackTrace();
}
}
@Override
public void execute() throws RemoteException {
final IContexte ctx = this.contexteServiceRemote.getContexteById(this.contexte.getIdentifiantServeur());
final Utilisateur uti = this.utilisateurServiceRemote.getUtilisateurById(this.contexte.getCreateur().getIdentifiantServeur());
if ((ctx == null) && (uti != null) && (this.identification.equalsIgnoreCase(uti.getIdentifiantServeur()))) {
this.callback.onSucces(this.contexteServiceRemote.creerContexte(this.contexte));
} else {
if (ctx != null) {
this.callback.onFailure(new Exception("Contexte deja existant"));
} else {
this.callback.onFailure(new Exception("Identifiant utilisateur invalide"));
}
}
public void execute() {
Contexte nouveauContexte = new Contexte(contexte);
}
}
......@@ -62,7 +62,7 @@ public final class CommandeCreerIdee implements Commande {
}
@Override
public void execute() throws RemoteException {
public void execute() {
IIdee nouvelleIdee = new Idee(this.idee);
}
......
package fr.alma.gtd.server.main.commande;
import fr.alma.gtd.server.persistence.data.Utilisateur;
import fr.alma.gtd.server.persistence.sessions.IProjetServiceRemote;
import fr.alma.gtd.server.persistence.sessions.IUtilisateurServiceRemote;
import fr.alma.gtd.server.core.CallBack;
import fr.alma.gtd.server.core.IProjet;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.rmi.RemoteException;
import java.util.Properties;
import fr.alma.gtd.server.main.donnees.Projet;
import fr.alma.gtd.server.persistence.sessions.IProjetServiceRemote;
import fr.alma.gtd.server.persistence.sessions.IUtilisateurServiceRemote;
/**
* Commande de creation d'un projet.
......@@ -55,31 +49,11 @@ public final class CommandeCreerProjet implements Commande {
this.identification = i;
this.projet = p;
this.callback = c;
final Properties env = new Properties();
env.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
env.setProperty("java.naming.provider.url", "localhost:1099");
env.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
try {
final Context context = new InitialContext(env);
this.projetServiceRemote = (IProjetServiceRemote) context.lookup("ProjetService/local");
this.utilisateurServiceRemote = (IUtilisateurServiceRemote) context.lookup("UtilisateurService/local");
} catch (NamingException e) {
e.printStackTrace();
}
}
@Override
public void execute() throws RemoteException {
final IProjet proj = this.projetServiceRemote.getProjetById(this.projet.getIdentifiantServeur());
final Utilisateur uti = this.utilisateurServiceRemote.getUtilisateurById(this.projet.getCreateur().getIdentifiantServeur());
if ((proj == null) && (uti != null) && (this.identification.equalsIgnoreCase(this.projet.getCreateur().getIdentifiantServeur()))) {
this.callback.onSucces(this.projetServiceRemote.creerProjet(this.projet));
} else {
this.callback.onFailure(new Exception("Projet deja existante"));
}
public void execute() {
Projet nouveauProjet = new Projet(projet);
}
}
package fr.alma.gtd.server.main.commande;
import fr.alma.gtd.server.main.donnees.Tache;
import fr.alma.gtd.server.persistence.data.Utilisateur;
import fr.alma.gtd.server.persistence.sessions.ITacheServiceRemote;
import fr.alma.gtd.server.persistence.sessions.IUtilisateurServiceRemote;
......@@ -54,34 +55,10 @@ public final class CommandeCreerTache implements Commande {
this.identification = i;
this.tache = t;
this.callback = c;
final Properties env = new Properties();
env.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
env.setProperty("java.naming.provider.url", "localhost:1099");
env.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
try {
final Context context = new InitialContext(env);
this.tacheServiceRemote = (ITacheServiceRemote) context.lookup("TacheService/local");
this.utilisateurServiceRemote = (IUtilisateurServiceRemote) context.lookup("UtilisateurService/local");
} catch (NamingException e) {
e.printStackTrace();
}
}
@Override
public void execute() throws RemoteException {
final ITache tac = this.tacheServiceRemote.getTacheById(this.tache.getIdentifiantServeur());
final Utilisateur uti = this.utilisateurServiceRemote.getUtilisateurById(this.tache.getCreateur().getIdentifiantServeur());
if ((tac == null) && (uti != null) && (this.identification.equalsIgnoreCase(this.tache.getCreateur().getIdentifiantServeur()))) {
this.callback.onSucces(this.tacheServiceRemote.creerTache(this.tache));
} else {
if (tac != null) {
this.callback.onFailure(new Exception("Tache deja existante"));
} else {
this.callback.onFailure(new Exception("Identifiant utilisateur invalide"));
}
}
public void execute() {
Tache nouvelleTache = new Tache(tache);
}
}
......@@ -70,18 +70,7 @@ public final class CommandeCreerTag implements Commande {
}
@Override
public void execute() throws RemoteException {
final ITag ta = this.tagServiceRemote.getTagById(this.tag.getIdentifiantServeur());
final Utilisateur uti = this.utilisateurServiceRemote.getUtilisateurById(this.tag.getCreateur().getIdentifiantServeur());
if ((ta == null) && (uti != null) && (this.identification.equalsIgnoreCase(this.tag.getCreateur().getIdentifiantServeur()))) {
this.callback.onSucces(this.tagServiceRemote.creerTag(this.tag));
} else {
if (ta != null) {
this.callback.onFailure(new Exception("Tag deja existant"));
} else {
this.callback.onFailure(new Exception("Identifiant utilisateur invalide"));
}
}
public void execute() {
}
}
......@@ -79,27 +79,7 @@ public final class CommandeEnvoyerContexte implements Commande {
}
@Override
public void execute() throws RemoteException {
final IContexte ctx = this.contexteServiceRemote.getContexteById(this.contexte.getIdentifiantServeur());
final Utilisateur uti = this.utilisateurServiceRemote.getUtilisateurById(this.contexte.getCreateur().getIdentifiantServeur());
if ((ctx != null) && (uti != null) && (this.identification.equalsIgnoreCase(uti.getIdentifiantServeur()))) {
if (this.mode == ModeDeMiseAJour.FORCE) {
this.callback.onSucces(this.contexteServiceRemote.updateContexte(this.contexte.getIdentifiantServeur(), this.contexte));
} else if (this.mode == ModeDeMiseAJour.WARNING) {
if (this.contexte.getDateDeDerniereModification().before(
this.contexteServiceRemote.getContexteById(this.contexte.getIdentifiantServeur()).getDateDeDerniereModification())) {
this.callback.onFailure(new Exception("Contexte existant mais version plus recente en ligne"));
} else {
this.callback.onSucces(this.contexteServiceRemote.updateContexte(this.contexte.getIdentifiantServeur(), this.contexte));
}
}
} else {
if (ctx == null) {
this.callback.onFailure(new Exception("Contexte inexistant"));
} else {
this.callback.onFailure(new Exception("Identifiant utilisateur invalide"));
}
}
public void execute() {
}
}
......@@ -79,28 +79,8 @@ public final class CommandeEnvoyerIdee implements Commande {
}
@Override
public void execute() throws RemoteException {
final IIdee ide = this.ideeServiceRemote.getIdeeById(this.idee.getIdentifiantServeur());
final Utilisateur uti = this.utilisateurServiceRemote.getUtilisateurById(this.idee.getCreateur().getIdentifiantServeur());
if ((ide != null) && (uti != null) && (this.identification.equalsIgnoreCase(uti.getIdentifiantServeur()))) {
if (this.mode == ModeDeMiseAJour.FORCE) {
this.callback.onSucces(this.ideeServiceRemote.updateIdee(this.idee.getIdentifiantServeur(), this.idee));
} else if (this.mode == ModeDeMiseAJour.WARNING) {
if (this.idee.getDateDeDerniereModification().before(
this.ideeServiceRemote.getIdeeById(this.idee.getIdentifiantServeur()).getDateDeDerniereModification())) {
this.callback.onFailure(new Exception("Idee existante mais version plus recente en ligne"));
} else {
this.callback.onSucces(this.ideeServiceRemote.updateIdee(this.idee.getIdentifiantServeur(), this.idee));
}
}
} else {
if (ide == null) {
this.callback.onFailure(new Exception("Idee inexistante"));
} else {
this.callback.onFailure(new Exception("Identifiant utilisateur invalide"));
}
}
public void execute() {
}
}
......@@ -79,30 +79,8 @@ public final class CommandeEnvoyerProjet implements Commande {
}
@Override
public void execute() throws RemoteException {
final IProjet proj = this.projetServiceRemote.getProjetById(this.projet.getIdentifiantServeur());
final Utilisateur uti = this.utilisateurServiceRemote.getUtilisateurById(this.projet.getCreateur().getIdentifiantServeur());
if ((proj != null) && (uti != null) && (this.identification.equalsIgnoreCase(this.projet.getCreateur().getIdentifiantServeur()))) {
if (this.mode == ModeDeMiseAJour.FORCE) {
this.callback.onSucces(this.projetServiceRemote.updateProjet(this.projet.getIdentifiantServeur(), this.projet));
} else if (this.mode == ModeDeMiseAJour.WARNING) {
if (this.projet.getDateDeDerniereModification().before(
this.projetServiceRemote.getProjetById(this.projet.getIdentifiantServeur()).getDateDeDerniereModification())) {
this.callback.onFailure(new Exception("Projet existant mais version plus recente en ligne"));
} else {
this.callback.onSucces(this.projetServiceRemote.updateProjet(this.projet.getIdentifiantServeur(), this.projet));
}
}
} else {
if (proj == null) {
this.callback.onFailure(new Exception("Projet inexistant"));
} else {
this.callback.onFailure(new Exception("Identifiant utilisateur invalide"));
}
}
public void execute() {
}
}
......@@ -79,28 +79,8 @@ public final class CommandeEnvoyerTache implements Commande {
}
@Override
public void execute() throws RemoteException {
final ITache tac = this.tacheServiceRemote.getTacheById(this.tache.getIdentifiantServeur());
final Utilisateur uti = this.utilisateurServiceRemote.getUtilisateurById(this.tache.getCreateur().getIdentifiantServeur());
if ((tac != null) && (uti != null) && (this.identification.equalsIgnoreCase(this.tache.getCreateur().getIdentifiantServeur()))) {
if (this.mode == ModeDeMiseAJour.FORCE) {
this.callback.onSucces(this.tacheServiceRemote.updateTache(this.tache.getIdentifiantServeur(), this.tache));
} else if (this.mode == ModeDeMiseAJour.WARNING) {
if (this.tache.getDateDeDerniereModification().before(
this.tacheServiceRemote.getTacheById(this.tache.getIdentifiantServeur()).getDateDeDerniereModification())) {
this.callback.onFailure(new Exception("Tache existante mais version plus recente en ligne"));
} else {
this.callback.onSucces(this.tacheServiceRemote.updateTache(this.tache.getIdentifiantServeur(), this.tache));
}
}
} else {
if (tac == null) {
this.callback.onFailure(new Exception("Tache inexistante"));
} else {
this.callback.onFailure(new Exception("Identifiant utilisateur invalide"));
}
}
public void execute() {
}
}
......@@ -78,30 +78,8 @@ public final class CommandeEnvoyerTag implements Commande {
}
@Override
public void execute() throws RemoteException {
final ITag ta = this.tagServiceRemote.getTagById(this.tag.getIdentifiantServeur());
final Utilisateur uti = this.utilisateurServiceRemote.getUtilisateurById(this.tag.getCreateur().getIdentifiantServeur());
if ((ta != null) && (uti != null) && (this.identification.equalsIgnoreCase(this.tag.getCreateur().getIdentifiantServeur()))) {
if (this.mode == ModeDeMiseAJour.FORCE) {
this.callback.onSucces(this.tagServiceRemote.updateTag(this.tag.getIdentifiantServeur(), this.tag));
} else if (this.mode == ModeDeMiseAJour.WARNING) {
if (this.tag.getDateDeDerniereModification().before(
this.tagServiceRemote.getTagById(this.tag.getIdentifiantServeur()).getDateDeDerniereModification())) {
this.callback.onFailure(new Exception("Tag existant mais version plus recente en ligne"));
} else {
this.callback.onSucces(this.tagServiceRemote.updateTag(this.tag.getIdentifiantServeur(), this.tag));
}
}
} else {
if (ta == null) {
this.callback.onFailure(new Exception("Contexte inexistant"));
} else {
this.callback.onFailure(new Exception("Identifiant utilisateur invalide"));
}
}
public void execute() {
}
}
......@@ -34,11 +34,7 @@ public final class CommandeQueue {
* @param c La commande a executer.
*/
public synchronized void executionCommande(final Commande c) {
try {
c.execute();
} catch (RemoteException e) {
e.printStackTrace();
}
c.execute();
}
}
......@@ -71,23 +71,7 @@ public final class CommandeSupprimerContexte implements Commande {
}
@Override
public void execute() throws RemoteException {
final IContexte ctx = this.contexteServiceRemote.getContexteById(this.contexte.getIdentifiantServeur());
final Utilisateur uti = this.utilisateurServiceRemote.getUtilisateurById(this.contexte.getCreateur().getIdentifiantServeur());
if ((ctx != null) && (uti != null) && (this.identification.equalsIgnoreCase(uti.getIdentifiantServeur()))) {
try {
this.contexteServiceRemote.removeContexteById(ctx.getIdentifiantServeur());
this.callback.onSucces("Contexte supprime");
} catch (final Exception e) {
this.callback.onFailure(new Exception("Contexte utilise par un autre element"));
}
} else {
if (ctx == null) {
this.callback.onFailure(new Exception("Contexte inexistant"));
} else {
this.callback.onFailure(new Exception("Identifiant utilisateur invalide"));
}
}
public void execute() {
}
}
......@@ -72,20 +72,8 @@ public final class CommandeSupprimerIdee implements Commande {
}
@Override
public void execute() throws RemoteException {
final IIdee ide = this.ideeServiceRemote.getIdeeById(this.idee.getIdentifiantServeur());
final Utilisateur uti = this.utilisateurServiceRemote.getUtilisateurById(this.idee.getCreateur().getIdentifiantServeur());
if ((ide != null) && (uti != null) && (this.identification.equalsIgnoreCase(uti.getIdentifiantServeur()))) {
this.ideeServiceRemote.removeIdeeById(ide.getIdentifiantServeur());
this.callback.onSucces("Idee supprimee");
} else {
if (ide == null) {
this.callback.onFailure(new Exception("Idee inexistante"));
} else {
this.callback.onFailure(new Exception("Identifiant utilisateur invalide"));
}