private void readTask(HashMap<Keyword, String> parameters) {
        String key = parameters.get(Keyword.CONTENT);
        boolean isExact = parameters.containsKey(Keyword.EXACT);
        Clock clock = new Clock();
        String start = clock.getCurrentDateAndTime();
        String end = "";
        boolean isArchivedIncluded = false; 
        boolean isCompletedIncluded = false;
        
        if (parameters.containsKey(Keyword.START)) {
            start = parameters.get(Keyword.START);
        }
        if (parameters.containsKey(Keyword.END)) {
            end = parameters.get(Keyword.END);
        }
        if (parameters.containsKey(Keyword.ARCHIVED)) {
            isArchivedIncluded = Boolean.valueOf(parameters.get(Keyword.ARCHIVED));
        }
        if (parameters.containsKey(Keyword.COMPLETED)) {
            isCompletedIncluded = true;
        }
        
        ArrayList<Task> queryResult = dataHandler.readTask(key, isExact, 
                                                           start, end, 
                                                           isArchivedIncluded, 
                                                           isCompletedIncluded);
        
        String firstOutputLine = "";

        if (!dataHandler.getNearMatchString().equals("")) {
            firstOutputLine += ANNOUNCEMENT_SUGGESTION 
                  + dataHandler.getNearMatchString() + "?\n";
        }
        
        if (queryResult.isEmpty()) {
            firstOutputLine += ANNOUNCEMENT_NOT_FOUND;
        } else {
            firstOutputLine += ANNOUNCEMENT_READ;
        }
        
        result.add(firstOutputLine);
     
        if ((parameters.containsKey(Keyword.SORT))) {
        	Keyword sortKey = Keyword.getMeaning(parameters.get(Keyword.SORT));
        	sortTasks(queryResult, sortKey, true);
        }
        for (int i = 0; i < queryResult.size(); i++) {
            result.add(queryResult.get(i).getDisplayedString());
        }
        
    }