private void rebuildCache() {
   cachedEntries = new SortedListOf<FillEntryFormParameter>();
   int numberOfEntries = driver.findElements(By.xpath("//tr[@name='entry']")).size();
   for (int i = 0; i < numberOfEntries; i++) {
     FillEntryFormParameter entry = new FillEntryFormParameter();
     entry.withFirstName(
         driver.findElement(By.xpath("//tr[@name='entry'][" + (i + 1) + "]/td[3]")).getText());
     entry.withLastName(
         driver.findElement(By.xpath("//tr[@name='entry'][" + (i + 1) + "]/td[2]")).getText());
     entry.withEmail(
         driver.findElement(By.xpath("//tr[@name='entry'][" + (i + 1) + "]/td[4]")).getText());
     EnterPhonesParameter phone =
         new EnterPhonesParameter(
             "",
             "",
             driver.findElement(By.xpath("//tr[@name='entry'][" + (i + 1) + "]/td[5]")).getText());
     entry.withPhones(phone);
     cachedEntries.add(entry);
   }
 }
  public SortedListOf<FillEntryFormParameter> getEntriesFromPrintPhones(int numberOfEntries) {
    SortedListOf<FillEntryFormParameter> printPhonesEntries =
        new SortedListOf<FillEntryFormParameter>();

    int numOfFullLines = numberOfEntries / 3;
    int phonesInLastLine = numberOfEntries % 3;

    for (int i = 0; i < numOfFullLines; i++) {
      for (int j = 0; j < 3; j++) {
        String allText =
            driver
                .findElement(
                    By.xpath("//tbody/tr[" + (i + 1) + "]/td[@valign='top'][" + (j + 1) + "]"))
                .getText();
        String[] listData = allText.split("\\n");
        listData[0] = listData[0].replaceAll("[:]", "");
        String[] listName = listData[0].split("\\s+");
        String firstName = listName[0];
        String lastName = listName[1];
        String homePhone = "";
        if (listData[1].matches("H:\\s\\S*")) {
          homePhone = listData[1].replaceAll("[H:\\s]", "");
        }

        FillEntryFormParameter entry = new FillEntryFormParameter();
        entry.withFirstName(firstName);
        entry.withLastName(lastName);
        EnterPhonesParameter phone = new EnterPhonesParameter("", "", homePhone);
        entry.withPhones(phone);
        printPhonesEntries.add(entry);
      }
    }
    if (phonesInLastLine > 0) {
      for (int i = 0; i < phonesInLastLine; i++) {

        String allText =
            driver
                .findElement(
                    By.xpath(
                        "//tbody/tr["
                            + (numOfFullLines + 1)
                            + "]/td[@valign='top']["
                            + (i + 1)
                            + "]"))
                .getText();
        String[] listData = allText.split("\\n");
        listData[0] = listData[0].replaceAll("[:]", "");
        String[] listName = listData[0].split("\\s+");
        String firstName = listName[0];
        String lastName = listName[1];
        String homePhone = "";
        if (listData[1].matches("H:\\s\\S*")) {
          homePhone = listData[1].replaceAll("[H:\\s]", "");
        }

        FillEntryFormParameter entry = new FillEntryFormParameter();
        entry.withFirstName(firstName);
        entry.withLastName(lastName);
        EnterPhonesParameter phone = new EnterPhonesParameter("", "", homePhone);
        entry.withPhones(phone);
        printPhonesEntries.add(entry);
      }
    }
    System.out.println(printPhonesEntries);
    return printPhonesEntries;
  }