コード例 #1
0
  protected static void run() throws RequirementsNotMetException, IOException {

    while (!end) {

      if (i >= timeoutCounter) {
        if (!refreshSession()) {
          end = true;
        }
      } else {

        ++i;
        System.out.print(i + "|Enter a command ('help' for commands):");
        String in = br.readLine();
        switch (getCommand(in)) {
          case -1:
            break;
          case 1:
            createPerson();
            break;
          case 2:
            end = true;
            System.out.println("Ending");
            break;
          case 3:
            printDatabase();
            break;
          case 4:
            AccessController.login();
            break;
          case 5:
            AccessController.logout();
            break;
          case 6:
            printCommands();
            break;
          case 7:
            addAchievement();
            break;
          case 8:
            cleanGuests();
            break;
          case 9:
            AccessController.getStatus();
            break;
          case 10:
            selectPerson();
            break;
          case 11:
            togglePrintRequests();
            break;
          case 12:
            registerUser();
            break;
        }
      }
    }
  }
コード例 #2
0
 private static void addAchievement() throws IOException, RequirementsNotMetException {
   String achievement;
   if (AccessController.getCurrentUser() == null) {
     System.out.println("Create person first!");
     createPerson();
   }
   Person current = AccessController.getCurrentPerson();
   if (current != null) {
     System.out.print("Enter achievement:");
     achievement = br.readLine();
     current.addAchievement(getAchievement(achievement));
   } else {
     System.out.println("No person in use.");
   }
 }
コード例 #3
0
 private static void selectPerson() {
   if (Permission.getPermission("ConsoleController.selectPerson")) {
     boolean valid = false;
     int id = -1;
     while (!valid) {
       try {
         System.out.print("Enter ID:");
         id = Integer.parseInt(br.readLine());
         if (id != -1) {
           valid = true;
         }
       } catch (NumberFormatException e) {
       } catch (IOException e) {
       } finally {
         if (!valid) {
           System.out.println("Invalid Format!");
         }
       }
     }
     AccessController.selectPerson(id);
   }
 }
コード例 #4
0
 private static Achievement getAchievement(String achievement) throws RequirementsNotMetException {
   switch (achievement) {
     case "Rob":
       return new Rob(AccessController.getCurrentPerson());
     case "Crawl":
       return new Crawl(AccessController.getCurrentPerson());
     case "Stand":
       return new Stand(AccessController.getCurrentPerson());
     case "Walk":
       return new Walk(AccessController.getCurrentPerson());
     case "Run":
       return new Run(AccessController.getCurrentPerson());
     case "Sprint":
       return new Sprint(AccessController.getCurrentPerson());
     case "Balance":
       return new Balance(AccessController.getCurrentPerson());
     case "BindShoeLaces":
       return new BindShoeLaces(AccessController.getCurrentPerson());
     case "Giggle":
       return new Giggle(AccessController.getCurrentPerson());
     case "Grow":
       return new Grow(AccessController.getCurrentPerson());
     case "Laugh":
       return new Laugh(AccessController.getCurrentPerson());
     case "UseValcrowShoes":
       return new UseValcrowShoes(AccessController.getCurrentPerson());
     case "Speak":
       return new Speak(AccessController.getCurrentPerson());
     case "Read":
       return new Read(AccessController.getCurrentPerson());
     case "WatchTV":
       return new WatchTV(AccessController.getCurrentPerson());
     case "DryDishes":
       return new DryDishes(AccessController.getCurrentPerson());
     case "BeButtler":
       return new BeButtler(AccessController.getCurrentPerson());
     case "BeWaiter":
       return new BeWaiter(AccessController.getCurrentPerson());
     case "BindTie":
       return new BindTie(AccessController.getCurrentPerson());
     case "PolishCuttlery":
       return new PolishCuttlery(AccessController.getCurrentPerson());
     case "PolishShoes":
       return new PolishShoes(AccessController.getCurrentPerson());
     case "Babble":
       return new Babble(AccessController.getCurrentPerson());
     case "Drink":
       return new Drink(AccessController.getCurrentPerson());
     case "Swallow":
       return new Swallow(AccessController.getCurrentPerson());
     default:
       System.out.println("Achievement '" + achievement + "' not available.");
       return null;
   }
 }
コード例 #5
0
 private static void createGuestPerson(String firstName, String lastName, int age) {
   AccessController.loginTempUser();
   Person person = new Person(firstName, lastName, age, false, Permission.GUEST);
   AccessController.setCurrentPerson(person);
   AccessController.logoutTempUser();
 }
コード例 #6
0
  private static void createPerson() throws IOException {
    boolean continueCreation = true;
    if (!AccessController.isLoggedInAsAdmin() && AccessController.getCurrentPerson() != null) {
      System.out.println(
          "Can have only 1 person at a time.\nDelete current person?" + getConfirmPhrase());
      String delete = br.readLine();
      if (delete.equals(confirmPhrase)) {
        // TODO only remove if admin requests this specific removal
        // PersonDatabase.removePerson(AccessController.getCurrentPerson()
        // .getId(), AccessController.getAdmin().getPerson());
        AccessController.setCurrentPerson(null);
      } else {
        System.out.println("Creation cancelled.");
        continueCreation = false;
      }
    }
    if (continueCreation) {
      String firstName = "user", lastName = "" + (++counter);
      int age = 0;
      boolean valid = false;
      while (!valid) {
        System.out.print("Enter first name:");
        firstName = br.readLine();
        if (!firstName.equals("")) {
          valid = true;
        }
      }
      valid = false;
      while (!valid) {
        System.out.print("Enter last name:");
        lastName = br.readLine();
        if (!lastName.equals("")) {
          valid = true;
        }
      }
      valid = false;
      while (!valid) {
        try {
          System.out.print("Enter age:");
          age = Integer.parseInt(br.readLine());
          valid = true;
        } catch (NumberFormatException nfe) {
          System.out.println("Invalid Format!");
        }
      }

      boolean editable = false;
      Permission permission = Permission.GUEST;
      if (AccessController.isLoggedInAsUser() || AccessController.isLoggedInAsAdmin()) {
        permission = Permission.USER;
        if (AccessController.isLoggedInAsAdmin()) {
          System.out.print("Editable person?" + getConfirmPhrase());
          String editString = br.readLine();
          if (editString.equals(confirmPhrase)) {
            editable = true;
          }
          System.out.print("Admin rights?" + getConfirmPhrase());
          String permString = br.readLine();
          if (permString.equals(confirmPhrase)) {
            permission = Permission.ADMIN;
          }
        }
      }
      if (AccessController.getCurrentUser() == null) {
        createGuestPerson(firstName, lastName, age);
      } else {
        Person person = new Person(firstName, lastName, age, editable, permission);
        AccessController.setCurrentPerson(person);
      }
      System.out.println(
          "Person created: "
              + AccessController.getCurrentPerson().getFirstName()
              + " "
              + AccessController.getCurrentPerson().getLastName()
              + " ["
              + AccessController.getCurrentPerson().getPermission()
              + "]");
    }
  }
コード例 #7
0
 private static void registerUser() throws IOException {
   // TODO Auto-generated method stub
   UserDatabase.registerUser(AccessController.getCurrentUser());
 }