diff --git a/src/Cli/Command.java b/src/Cli/Command.java new file mode 100644 index 0000000000000000000000000000000000000000..00b84f6a1f0bd39993080e20e5a1a5254c331a46 --- /dev/null +++ b/src/Cli/Command.java @@ -0,0 +1,47 @@ +package Cli; + +import java.util.ArrayList; + +import User.User; + +public abstract class Command { + private String commandName; + private Token [] listOfArgs; + private User [] typeOfInstanceAllowed; + + public Command(String _commandName, Token [] _listOfArgs, User [] _typeOfInstanceAllowed){ + commandName = _commandName; + listOfArgs = _listOfArgs; + typeOfInstanceAllowed = _typeOfInstanceAllowed; + } + + public boolean isOneWanted(String firstToken){ + if(firstToken == commandName) + return true; + return false; + } + + public boolean isGoodArgument(ArrayList<String> arguments, User typeOfUser){ + if(arguments.size() != listOfArgs.length){ + return false; // devrait throw une erreur disant que c'est pas le bon nombre de param�tre. + } + boolean goodUserType=false; + for (User typeUser : typeOfInstanceAllowed){ + if(typeUser.getClass() == typeOfUser.getClass()){ + goodUserType=true; + } + } + if(!goodUserType) + return false; // devrait throw une erreur + int i = 0; + for (String arg : arguments) { + listOfArgs[i].isTockenCorrect(arg); // throw une erreur, faut la catch au dessus ! + i++; + } + // trow une erreur + return true; + } + + public abstract String execute(); + +} diff --git a/src/Cli/Token.java b/src/Cli/Token.java new file mode 100644 index 0000000000000000000000000000000000000000..66b6f4e5d38237cf69d2dc904bd854a16535374c --- /dev/null +++ b/src/Cli/Token.java @@ -0,0 +1,50 @@ +package Cli; + +public class Token { + + private TypeToken typeOfToken; + private String name; + private String value; + + public Token(TypeToken _typeOfToken, String _name){ + typeOfToken = _typeOfToken; + name = _name; + value = ""; + } + + public void setValue(String _value) throws errorWrongFormatValue{ + if(isTockenCorrect(_value)){ + value = _value; + }else{ + throw new errorWrongFormatValue("Format de "+name+" incorrect !"); + /* si incorrect, throw une erreur qui doit �tre catch + par la fonction au dessus (et on doit annuler la commande */ + } + } + + public String getValue(){ + return value; + } + + public boolean isTockenCorrect(String _value){ + switch(typeOfToken){ + case date: + break; + case integer: + if(_value.matches("-?\\d+")) + return true; + break; + case decimal: + if(_value.matches("-?\\d+(\\.\\d+)?")) + return true; + break; + case str: + return true; + } + return false; + } + + static enum TypeToken{ + date,str,integer,decimal + } +} diff --git a/src/Cli/errorWrongFormatValue.java b/src/Cli/errorWrongFormatValue.java new file mode 100644 index 0000000000000000000000000000000000000000..095903446d83ecf2e5abd9fcf16de4e1a81ae81d --- /dev/null +++ b/src/Cli/errorWrongFormatValue.java @@ -0,0 +1,34 @@ +package Cli; + +public class errorWrongFormatValue extends Exception { + + /** + * + */ + private static final long serialVersionUID = 7873997091472426895L; + + public errorWrongFormatValue() { + // TODO Auto-generated constructor stub + } + + public errorWrongFormatValue(String arg0) { + super(arg0); + // TODO Auto-generated constructor stub + } + + public errorWrongFormatValue(Throwable arg0) { + super(arg0); + // TODO Auto-generated constructor stub + } + + public errorWrongFormatValue(String arg0, Throwable arg1) { + super(arg0, arg1); + // TODO Auto-generated constructor stub + } + + public errorWrongFormatValue(String arg0, Throwable arg1, boolean arg2, boolean arg3) { + super(arg0, arg1, arg2, arg3); + // TODO Auto-generated constructor stub + } + +} diff --git a/src/Core/ActiveUserContext.java b/src/Core/ActiveUserContext.java index 497c8fb3ab51b6822d657d7c5c68966aee625157..ec5a8fa0673cfd093f9bbf3ffa68e19949c05bf4 100644 --- a/src/Core/ActiveUserContext.java +++ b/src/Core/ActiveUserContext.java @@ -5,16 +5,13 @@ import User.User; public class ActiveUserContext { User activeUser; - public ActiveUserContext(MyFoodora foodora) { // TODO Auto-generated constructor stub - } - + } public User getUser(){ return activeUser; } public void setActiveUser(User u){ activeUser = u; } - } diff --git a/src/Core/MyFoodora.java b/src/Core/MyFoodora.java index 85388fcd27d14d3ca152d37fb51e53d5776d7a70..8db5939589ff7d639b6ff206d135e875e15923ce 100644 --- a/src/Core/MyFoodora.java +++ b/src/Core/MyFoodora.java @@ -52,7 +52,7 @@ public class MyFoodora { public MyFoodora() throws ExceptionUnknownStartegyType{ this.contextTargetProfitStrategy = new ContextTargetProfitStrategy("DeliveryCost"); - this.contextDeliveryPolicy = new ContextDeliveryStrategy("FairOccupation"); + this.contextDeliveryPolicy = new ContextDeliveryStrategy("DeliveryCost"); this.listRestaurant = new ListUser<Restaurant>(); this.listCustomer = new ListUser<Customer>(); this.listManager = new ListUser<Manager>();