Example #1
0
    @Override
    public void run() {
      StringBuffer outputString = new StringBuffer();
      String query = "";

      try {
        // get the query
        BufferedReader inputQuery =
            new BufferedReader(new InputStreamReader(querySocket.getInputStream()));
        query = inputQuery.readLine();
        while (inputQuery.ready()) {
          query += "\n";
          query += inputQuery.readLine();
        }

        // Decides what function the query is referring to.
        // Calls the appropriate method and gets the results.
        if (query.contains(randomReview)) {
          String RestaurantName = query.substring(randomReview.length() + 2, query.length() - 2);
          outputString = new StringBuffer(dblocal.randomReview(RestaurantName));

        } else if (query.contains(getRestaurant)) {
          String businessID = query.substring(getRestaurant.length() + 2, query.length() - 2);
          outputString = new StringBuffer(dblocal.getRestaurant(businessID));

        } else if (query.contains(addRestaurant)) {
          String JSOnstring = query.substring(getRestaurant.length() + 2, query.length() - 2);
          outputString = new StringBuffer(dblocal.addRestaurant(JSOnstring));

        } else if (query.contains(addUser)) {
          String JSOnstring = query.substring(addUser.length() + 2, query.length() - 2);
          outputString = new StringBuffer(dblocal.addUser(JSOnstring));

        } else if (query.contains(addReview)) {
          String JSOnstring = query.substring(addReview.length() + 2, query.length() - 2);
          outputString = new StringBuffer(dblocal.addReview(JSOnstring));

        } else {
          Set<Restaurant> getQuery = new HashSet<Restaurant>();
          getQuery = dblocal.query(query);

          for (Restaurant restaurant : getQuery) {
            outputString.append(restaurant.getJSONString());
          }
        }

        // sends the result back to the socket
        PrintWriter outputQuery =
            new PrintWriter(new OutputStreamWriter(querySocket.getOutputStream()));
        outputQuery.println(outputString);

        // closes the stream
        outputQuery.close();
        inputQuery.close();

      } catch (IOException e1) {
        e1.printStackTrace();
      }
    }