Commit dc10bd2c authored by Achille Lacoin's avatar Achille Lacoin
Browse files

correction de la recuperation de methode + toString

parent 4dbf873a
......@@ -29,20 +29,20 @@ public class JoueurHumain extends Vivant implements Executable {
this.ordre = ordre;
}
public void commandePrendre(String nomObjet) throws ObjetAbsentDeLaPieceException, ObjetNonDeplacableException {
private void commandePrendre(String nomObjet) throws ObjetAbsentDeLaPieceException, ObjetNonDeplacableException {
this.prendre(nomObjet);
}
public void commandePoser(String nomObjet) throws ObjetNonPossedeParLeVivantException {
private void commandePoser(String nomObjet) throws ObjetNonPossedeParLeVivantException {
this.deposer(nomObjet);
}
public void commandeFranchir(String nomPorte)
private void commandeFranchir(String nomPorte)
throws PorteFermeeException, PorteInexistanteDansLaPieceException, VivantAbsentDeLaPieceException {
this.franchirPorte(nomPorte);
}
public void commandeOuvrirPorte(String nomPorte) throws ActivationException, PorteInexistanteDansLaPieceException {
private void commandeOuvrirPorte(String nomPorte) throws ActivationException, PorteInexistanteDansLaPieceException {
Porte porte = this.getPiece().getPorte(nomPorte);
if (porte == null) {
throw new PorteInexistanteDansLaPieceException();
......@@ -50,7 +50,7 @@ public class JoueurHumain extends Vivant implements Executable {
porte.activer();
}
public void commandeOuvrirPorte(String nomPorte, String nomObjet)
private void commandeOuvrirPorte(String nomPorte, String nomObjet)
throws ActivationException, PorteInexistanteDansLaPieceException, ObjetNonPossedeParLeVivantException {
Porte porte = this.getPiece().getPorte(nomPorte);
Objet obj = this.getObjet(nomObjet);
......@@ -63,20 +63,18 @@ public class JoueurHumain extends Vivant implements Executable {
porte.activerAvec(obj);
}
public void executer() throws CommandeImpossiblePourLeVivantException, NoSuchMethodException{
public void executer() throws CommandeImpossiblePourLeVivantException {
Object[] commande = this.ordre.split(" ");
Method methodeAppellee = obtenirMethode((String) commande[0], commande.length - 1);
try{
Method methodeAppellee = obtenirMethode((String) commande[0], commande.length - 1);
methodeAppellee.invoke(this, Arrays.copyOfRange(commande, 1, commande.length));
} catch(InvocationTargetException e) {
e.getCause().printStackTrace();
} catch(Exception e) {
throw new CommandeImpossiblePourLeVivantException();
}
}
private Method obtenirMethode(String nomMethode, int nbArguments) throws NoSuchMethodException {
String nom = "Commande" + nomMethode;
String nom = "commande" + nomMethode;
Class[] params = new Class[nbArguments];
Arrays.fill(params, String.class);
return this.getClass().getDeclaredMethod(nom, params);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment