コード例 #1
0
  private void processCategory(TagNode table) throws XPatherException, ParseException {
    String categoryStr =
        ((TagNode) table.evaluateXPath("./caption")[0]).getText().toString().trim();
    CategoryEntity cat = new CategoryEntity();
    cat.setMan(man);
    cat.setName(categoryStr);
    cat.getRaces().add(raceVolume);

    if (categoryStr.contains("39")) {
      cat.setFromAge(0);
      cat.setToAge(39);
    } else if (categoryStr.contains("70")) {
      cat.setFromAge(70);
      cat.setToAge(1000);
    } else if (categoryStr.contains("-")) {
      int ind = categoryStr.indexOf("-");
      String from = categoryStr.substring(ind - 2, ind);
      String to = categoryStr.substring(ind, ind + 2);
      cat.setFromAge(Integer.valueOf(from));
      cat.setToAge(Integer.valueOf(to));
    } else if (categoryStr.contains("34")) {
      cat.setFromAge(0);
      cat.setToAge(34);
    } else if (categoryStr.contains("45")) {
      cat.setFromAge(45);
      cat.setToAge(1000);
    } else {
      throw new IllegalArgumentException("Category cannot be processed");
    }

    cat = (CategoryEntity) checkPossibleMatches(cat, cat.getClass());

    Object[] runners = table.evaluateXPath("/tbody/tr");

    for (int i = 0; i < runners.length; i++) {
      TagNode row = (TagNode) runners[i];

      // Person -------------
      String name =
          ((TagNode) row.evaluateXPath("/td[@class='jmeno']")[0]).getText().toString().trim();

      int index = name.indexOf(" ");
      String sn = name.substring(0, index).trim();
      String fn = name.substring(index).trim();

      String bd = ((TagNode) row.evaluateXPath("/td[@class='rn']")[0]).getText().toString().trim();

      PersonEntity person = new PersonEntity(fn, sn, Integer.valueOf(bd), man);
      person = (PersonEntity) checkPossibleMatches(person, PersonEntity.class);

      // Club and city -------------
      String all =
          ((TagNode) row.evaluateXPath("/td[@class='klub']")[0]).getText().toString().trim();

      int delI = all.indexOf("(");

      String clubStr;
      String cityStr;
      if (delI >= 0) {
        clubStr = all.substring(0, delI).trim();
        cityStr = all.substring(delI);
        cityStr = cityStr.replace("(", "").replace(")", "").trim();
      } else {
        clubStr = all.trim();
        cityStr = "";
      }

      if (clubStr.isEmpty()) {
        clubStr = "-";
      }
      if (cityStr.isEmpty()) {
        cityStr = "-";
      }

      ClubEntity club = new ClubEntity(clubStr);
      club = (ClubEntity) checkPossibleMatches(club, club.getClass());

      CityEntity city = new CityEntity(cityStr);
      city = (CityEntity) checkPossibleMatches(city, city.getClass());

      // Number -------------
      Integer number =
          Integer.valueOf(
              ((TagNode) row.evaluateXPath("/td[@class='stCislo']")[0])
                  .getText()
                  .toString()
                  .trim());

      // Time -------------
      String timeStr =
          ((TagNode) row.evaluateXPath("/td[@class='cas']")[0]).getText().toString().trim();
      if (timeStr.equalsIgnoreCase("NF")) {
        timeStr = "23:59:59";
      }
      Date time = new SimpleDateFormat("H:mm:ss").parse(timeStr);

      // Runner -------------
      RunnerEntity runner = new RunnerEntity(number, person, club, city, time);
      runner.setCategory(cat);
      runner.setRace(raceVolume);
      checkPossibleMatches(runner, runner.getClass());
    }
  }
コード例 #2
0
 public Object[] getObjectsThatNotEqualsX() {
   CategoryEntity i1 = new CategoryEntity();
   i1.setKey(new CategoryKey(2));
   return new Object[] {i1};
 }
コード例 #3
0
 public Object getObjectThatEqualsXButNotTheSame2() {
   CategoryEntity i1 = new CategoryEntity();
   i1.setKey(new CategoryKey(1));
   return i1;
 }
コード例 #4
0
 public Object getObjectX() {
   CategoryEntity i1 = new CategoryEntity();
   i1.setKey(new CategoryKey(1));
   return i1;
 }