diff --git a/src/de/oszimt/ls/aliendefence/controller/AlienDefenceController.java b/src/de/oszimt/ls/aliendefence/controller/AlienDefenceController.java index 866ebf7..534bf1c 100644 --- a/src/de/oszimt/ls/aliendefence/controller/AlienDefenceController.java +++ b/src/de/oszimt/ls/aliendefence/controller/AlienDefenceController.java @@ -3,6 +3,7 @@ package de.oszimt.ls.aliendefence.controller; import de.oszimt.ls.aliendefence.model.Level; import de.oszimt.ls.aliendefence.model.persistence.IPersistance; import de.oszimt.ls.aliendefence.model.User; +import de.oszimt.ls.aliendefence.model.persistence.IUserPersistance; public class AlienDefenceController { @@ -11,23 +12,30 @@ public class AlienDefenceController { private LevelController levelController; private TargetController targetController; private AttemptController attemptController; - //TODO UserController implementieren + private UserController userController; //Persistenz private IPersistance alienDefenceModel; + private IUserPersistance userModel; - public AlienDefenceController(IPersistance alienDefenceModel) { + public AlienDefenceController(IPersistance alienDefenceModel, IUserPersistance userModel) { super(); this.alienDefenceModel = alienDefenceModel; + this.userModel = userModel; this.attemptController = new AttemptController(alienDefenceModel); this.levelController = new LevelController(alienDefenceModel); this.targetController = new TargetController(alienDefenceModel); + this.userController = new UserController(userModel); } public IPersistance getAlienDefenceModel() { return alienDefenceModel; } + public IUserPersistance getUserModel() { + return userModel; + } + public AttemptController getAttemptController() { return attemptController; } @@ -40,6 +48,10 @@ public class AlienDefenceController { return targetController; } + public UserController getUserController() { + return userController; + } + public GameController startGame(Level selectedLevel, User user) { this.gameController = new GameController(selectedLevel, user, this); return this.gameController; diff --git a/src/de/oszimt/ls/aliendefence/controller/UserController.java b/src/de/oszimt/ls/aliendefence/controller/UserController.java index 10f8c56..b363764 100644 --- a/src/de/oszimt/ls/aliendefence/controller/UserController.java +++ b/src/de/oszimt/ls/aliendefence/controller/UserController.java @@ -5,8 +5,7 @@ import de.oszimt.ls.aliendefence.model.persistence.IUserPersistance; /** * de.oszimt.ls.aliendefence.controller for users - * @author Clara Zufall - * TODO implement this class + * @author Joel Baldauf */ public class UserController { @@ -15,9 +14,14 @@ public class UserController { public UserController(IUserPersistance userPersistance) { this.userPersistance = userPersistance; } - + + /** + * erstellt einen User in der Persistenzschicht + * @param user Das zu erstellende Userobjekt + * + */ public void createUser(User user) { - + this.userPersistance.createUser(user); } /** @@ -26,19 +30,36 @@ public class UserController { * @param passwort das richtige Passwort * @return Userobjekt, null wenn der User nicht existiert */ + public User readUser(String username, String passwort) { - return null; + if (checkPassword(username, passwort)) return this.userPersistance.readUser(username); + else return null; } - + + /** + * verändert einen User in der Persistenzschicht + * @param user zu aktualisierender User + * + */ public void changeUser(User user) { - + this.userPersistance.updateUser(user); } - + + /** + * löscht einen User in der Persistenzschicht + * @param user zu löschender User + * + */ public void deleteUser(User user) { - + this.userPersistance.deleteUser(user); } - + + /** + * überprüft, ob das Passwort eines Benutzers richtig ist + * @param username zu prüfender Nutzername + * @param passwort zu prüfendes Passwort + */ public boolean checkPassword(String username, String passwort) { - return false; + return this.userPersistance.readUser(username).getPassword().equals(passwort); } } diff --git a/src/de/oszimt/ls/aliendefence/model/persistence/IUserPersistance.java b/src/de/oszimt/ls/aliendefence/model/persistence/IUserPersistance.java index 3fbc6ff..a0d99a4 100644 --- a/src/de/oszimt/ls/aliendefence/model/persistence/IUserPersistance.java +++ b/src/de/oszimt/ls/aliendefence/model/persistence/IUserPersistance.java @@ -5,5 +5,7 @@ import de.oszimt.ls.aliendefence.model.User; public interface IUserPersistance { User readUser(String username); - + int createUser(User user); + void updateUser(User user); + void deleteUser(User user); } \ No newline at end of file diff --git a/src/de/oszimt/ls/aliendefence/view/StartAlienDefence.java b/src/de/oszimt/ls/aliendefence/view/StartAlienDefence.java index 48d4bb7..a603a40 100644 --- a/src/de/oszimt/ls/aliendefence/view/StartAlienDefence.java +++ b/src/de/oszimt/ls/aliendefence/view/StartAlienDefence.java @@ -2,7 +2,10 @@ package de.oszimt.ls.aliendefence.view; import de.oszimt.ls.aliendefence.controller.AlienDefenceController; import de.oszimt.ls.aliendefence.model.persistence.IPersistance; +import de.oszimt.ls.aliendefence.model.persistence.IUserPersistance; +import de.oszimt.ls.aliendefence.model.persistenceDB.UserDB; import de.oszimt.ls.aliendefence.model.persistenceDummy.PersistanceDummy; +import de.oszimt.ls.aliendefence.model.persistenceDummy.UserDummy; import de.oszimt.ls.aliendefence.view.menue.MainMenu; public class StartAlienDefence { @@ -10,7 +13,8 @@ public class StartAlienDefence { public static void main(String[] args) { IPersistance alienDefenceModel = new PersistanceDummy();//TODO new PersistanceDB(); - AlienDefenceController alienDefenceController = new AlienDefenceController(alienDefenceModel); + IUserPersistance userModel = new UserDummy(); + AlienDefenceController alienDefenceController = new AlienDefenceController(alienDefenceModel, userModel); MainMenu.show(alienDefenceController); } }