Commit e0fdb378 authored by Glenn PLOUHINEC's avatar Glenn PLOUHINEC
Browse files

Fix #5 - Ajout d'une classe abstraite 'CommandeContexte'

parent 530f0455
package fr.alma.gtd.commande;
import fr.alma.gtd.donneespartagees.IContexte;
import fr.alma.gtd.isessions.IContexteServiceRemote;
import fr.alma.gtd.isessions.IUtilisateurServiceRemote;
import java.rmi.RemoteException;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public abstract class CommandeContexte implements Commande{
/**
* L'identifiant de l'utilisateur.
*/
protected final String identification;
/**
* Le contexte.
*/
protected final IContexte contexte;
/**
* Le service de gestion des contextes.
*/
IContexteServiceRemote contexteServiceRemote;
/**
* Le service de gestion d'utilisateurs.
*/
IUtilisateurServiceRemote utilisateurServiceRemote;
/**
* Le constructeur.
* @param i L'identifiant de l'utilisateur.
* @param c Le contexte.
*/
CommandeContexte(final String i, final IContexte c) {
super();
this.identification = i;
this.contexte = 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.contexteServiceRemote = (IContexteServiceRemote) context.lookup("ContexteService/local");
this.utilisateurServiceRemote = (IUtilisateurServiceRemote) context.lookup("UtilisateurService/local");
} catch (NamingException e) {
e.printStackTrace();
}
}
public abstract void execute() throws RemoteException;
}
......@@ -3,87 +3,47 @@ package fr.alma.gtd.commande;
import fr.alma.gtd.donneespartagees.IContexte;
import fr.alma.gtd.donneesserveur.Utilisateur;
import fr.alma.gtd.interfacedistante.CallBack;
import fr.alma.gtd.isessions.IContexteServiceRemote;
import fr.alma.gtd.isessions.IUtilisateurServiceRemote;
import java.rmi.RemoteException;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
/**
* Commande de creation d'un contexte.
*
* @author Stephane Begaudeau, Benjamin Gosset, Alex Lagarde, Christophe Renaudineau.
* @version 1.0.0
*/
public final class CommandeCreerContexte implements Commande {
/**
* L'identifiant de l'utilisateur.
*/
private final String identification;
/**
* Le contexte.
*/
private final IContexte contexte;
/**
* Le callback.
*/
private final CallBack<IContexte> callback;
/**
* Le service de gestion des contextes.
*/
private IContexteServiceRemote contexteServiceRemote;
/**
* Le service de gestion d'utilisateurs.
*/
private IUtilisateurServiceRemote utilisateurServiceRemote;
/**
* Le constructeur.
* @param i L'identifiant de l'utilisateur.
* @param co Le contexte.
* @param ca Le callback.
*/
public CommandeCreerContexte(final String i, final IContexte co, final CallBack<IContexte> ca) {
super();
this.identification = i;
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 final class CommandeCreerContexte extends CommandeContexte {
/**
* Le callback.
*/
private final CallBack<IContexte> callback;
/**
* Le constructeur.
*
* @param i L'identifiant de l'utilisateur.
* @param co Le contexte.
* @param ca Le callback.
*/
CommandeCreerContexte(final String i, final IContexte co, final CallBack<IContexte> ca) {
super(i, co);
this.callback = ca;
}
@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"));
}
}
}
}
......@@ -8,37 +8,39 @@ import java.rmi.RemoteException;
/**
* Commande de creation d'un projet.
*
* @author Stephane Begaudeau, Benjamin Gosset, Alex Lagarde, Christophe Renaudineau.
* @version 1.0.0
*/
public final class CommandeCreerProjet extends CommandeProjet {
/**
* Le callback.
*/
private final CallBack<IProjet> callback;
/**
* Le constructeur.
* @param i L'identifiant de l'utilisateur.
* @param p Le projet a creer.
* @param c Le callback.
*/
CommandeCreerProjet(final String i, final IProjet p, final CallBack<IProjet> c) {
super(i,p);
this.callback = c;
}
@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"));
}
}
/**
* Le callback.
*/
private final CallBack<IProjet> callback;
/**
* Le constructeur.
*
* @param i L'identifiant de l'utilisateur.
* @param p Le projet a creer.
* @param c Le callback.
*/
CommandeCreerProjet(final String i, final IProjet p, final CallBack<IProjet> c) {
super(i, p);
this.callback = c;
}
@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 existant"));
}
}
}
......@@ -4,103 +4,63 @@ import fr.alma.gtd.donneespartagees.IContexte;
import fr.alma.gtd.donneesserveur.Utilisateur;
import fr.alma.gtd.interfacedistante.CallBack;
import fr.alma.gtd.interfacedistante.ModeDeMiseAJour;
import fr.alma.gtd.isessions.IContexteServiceRemote;
import fr.alma.gtd.isessions.IUtilisateurServiceRemote;
import java.rmi.RemoteException;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
/**
* Commande d'envoi d'un contexte.
*
* @author Stephane Begaudeau, Benjamin Gosset, Alex Lagarde, Christophe Renaudineau.
* @version 1.0.0
*/
public final class CommandeEnvoyerContexte implements Commande {
/**
* L'identifiant de l'utilisateur.
*/
private final String identification;
/**
* Le contexte a envoyer.
*/
private final IContexte contexte;
/**
* Le mode de mise a jour.
*/
private final ModeDeMiseAJour mode;
/**
* Le callback.
*/
private final CallBack<IContexte> callback;
/**
* Le service de gestion des contextes.
*/
private IContexteServiceRemote contexteServiceRemote;
/**
* Le service de gestion d'utilisateurs.
*/
private IUtilisateurServiceRemote utilisateurServiceRemote;
/**
* Le constructeur.
* @param i L'identifiant de l'utilisateur.
* @param c Le contexte a envoyer.
* @param m Le mode de mise a jour.
* @param ca Le callback.
*/
public CommandeEnvoyerContexte(final String i, final IContexte c, final ModeDeMiseAJour m, final CallBack<IContexte> ca) {
super();
this.identification = i;
this.contexte = c;
this.mode = m;
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();
}
}
public final class CommandeEnvoyerContexte extends CommandeContexte {
/**
* Le mode de mise a jour.
*/
private final ModeDeMiseAJour mode;
/**
* Le callback.
*/
private final CallBack<IContexte> callback;
/**
* Le constructeur.
*
* @param i L'identifiant de l'utilisateur.
* @param c Le contexte a envoyer.
* @param m Le mode de mise a jour.
* @param ca Le callback.
*/
CommandeEnvoyerContexte(final String i, final IContexte c, final ModeDeMiseAJour m, final CallBack<IContexte> ca) {
super(i, c);
this.mode = m;
this.callback = ca;
}
@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());
@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"));
}
}
}
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"));
}
}
}
}
......@@ -16,57 +16,59 @@ import javax.naming.NamingException;
/**
* Commande d'envoi d'un projet.
*
* @author Stephane Begaudeau, Benjamin Gosset, Alex Lagarde, Christophe Renaudineau.
* @version 1.0.0
*/
public final class CommandeEnvoyerProjet extends CommandeProjet {
private final ModeDeMiseAJour mode;
/**
* Le callback.
*/
private final CallBack<IProjet> callback;
private final ModeDeMiseAJour mode;
/**
* Le callback.
*/
private final CallBack<IProjet> callback;
/**
* Le constructeur.
* @param i L'identifiant de l'utilisateur.
* @param p Le projet.
* @param m Le mode.
* @param c Le callback.
*/
public CommandeEnvoyerProjet(final String i, final IProjet p, final ModeDeMiseAJour m, final CallBack<IProjet> c) {
super(i,p);
this.mode = m;
this.callback = c;
}
@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"));
}
}
}
/**
* Le constructeur.
*
* @param i L'identifiant de l'utilisateur.
* @param p Le projet.
* @param m Le mode.
* @param c Le callback.
*/
public CommandeEnvoyerProjet(final String i, final IProjet p, final ModeDeMiseAJour m, final CallBack<IProjet> c) {
super(i, p);
this.mode = m;
this.callback = c;
}
@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"));
}
}
}
}
......@@ -16,7 +16,7 @@ public abstract class CommandeProjet implements Commande {
protected final String identification;
/**
* Le projet a supprimer.
* Le projet a gérer.
*/
protected final IProjet projet;
......@@ -32,8 +32,9 @@ public abstract class CommandeProjet implements Commande {
/**
* Le constructeur.
*
* @param i L'identifiant de l'utilisateur.
* @param p Le projet a supprimer.
* @param p Le projet a gérer.
*/
CommandeProjet(final String i, final IProjet p) {
this.identification = i;
......@@ -53,5 +54,5 @@ public abstract class CommandeProjet implements Commande {
}
}
public abstract void execute()throws RemoteException;
public abstract void execute() throws RemoteException;
}
......@@ -3,92 +3,52 @@ package fr.alma.gtd.commande;
import fr.alma.gtd.donneespartagees.IContexte;
import fr.alma.gtd.donneesserveur.Utilisateur;
import fr.alma.gtd.interfacedistante.CallBack;
import fr.alma.gtd.isessions.IContexteServiceRemote;
import fr.alma.gtd.isessions.IUtilisateurServiceRemote;
import java.rmi.RemoteException;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
/**
* Commande de suppression d'un contexte.
*
* @author Stephane Begaudeau, Benjamin Gosset, Alex Lagarde, Christophe Renaudineau.
* @version 1.0.0
*/
public final class CommandeSupprimerContexte implements Commande {
/**
* L'identifiant de l'utilisateur.
*/
private final String identification;
/**
* Le contexte a supprimer.
*/
private final IContexte contexte;
/**
* Le callback.