@Before
  public void setupTestData() {
    Session s = openSession();
    Transaction tx = s.beginTransaction();

    Calendar dob = Calendar.getInstance(TimeZone.getTimeZone("UTC"), Locale.ENGLISH);
    dob.set(1958, 3, 7, 0, 0, 0);
    dob.set(Calendar.MILLISECOND, 0);

    GolfPlayer hergesheimer =
        new GolfPlayer.Builder()
            .firstName("Klaus")
            .lastName("Hergesheimer")
            .active(true)
            .dateOfBirth(dob.getTime())
            .handicap(3.4)
            .puttingStrength(2.5)
            .driveWidth(285)
            .strength("precision")
            .strength("willingness")
            .strength("stamina")
            .build();
    s.persist(hergesheimer);

    GolfPlayer galore = new GolfPlayer.Builder().lastName("Galore").ranking(311).build();
    s.persist(galore);

    GolfPlayer kidd = new GolfPlayer.Builder().lastName("Kidd").build();
    s.persist(kidd);

    GolfCourse purbeck =
        new GolfCourse("Purbeck", 127.3, new Hole(433, (byte) 4), new Hole(163, (byte) 3));
    s.persist(purbeck);

    GolfCourse mountMaja =
        new GolfCourse("Mount Maja", 111.9, new Hole(512, (byte) 5), new Hole(113, (byte) 3));
    s.persist(mountMaja);

    GolfPlayer brand =
        new GolfPlayer.Builder().lastName("Brand").playedCourses(purbeck, mountMaja).build();
    s.persist(brand);

    purbeck.getPlayedBy().add(brand);
    mountMaja.getPlayedBy().add(brand);

    s.persist(brand);

    tx.commit();
    s.close();
  }
Example #2
0
  private void updateDb(ArrayList<GolfCourse> gc) {
    ContentResolver cr = context.getContentResolver();
    for (GolfCourse cc : gc) {
      // Check if course exist already in db
      String name = cc.getCourceName();
      String tee = cc.getCourceTee();
      int id = -1;

      String selection =
          TourContentProvider.KEY_COURSE_NAME
              + "=? AND "
              + TourContentProvider.KEY_COURSE_TEE
              + "=?";
      String[] selectionArgs = {name, tee};
      Cursor cur =
          cr.query(TourContentProvider.CONTENT_URI_COURSES, null, selection, selectionArgs, null);
      boolean newEntry = true;

      // If No Match, populate database
      if (cur != null) newEntry = false;

      // Update course
      ContentValues cv = new ContentValues();
      cv.put(TourContentProvider.KEY_COURSE_NAME, name);
      cv.put(TourContentProvider.KEY_COURSE_TEE, tee);
      cv.put(TourContentProvider.KEY_COURSE_PAR, cc.getCourcePar());
      cv.put(TourContentProvider.KEY_COURSE_SLOPE, cc.getCourceSlope());
      cv.put(TourContentProvider.KEY_COURSE_VALUE, cc.getCourceValue());
      cv.put(TourContentProvider.KEY_COURSE_LENGTH, cc.getCourceLength());
      if (newEntry) {
        Uri courseId = cr.insert(TourContentProvider.CONTENT_URI_COURSES, cv);
        id = Integer.parseInt(courseId.getPathSegments().get(1));
      } else {
        cur.moveToFirst();
        int key_index = cur.getColumnIndexOrThrow(TourContentProvider.KEY_ID);
        id = cur.getInt(key_index);
        cr.update(
            Uri.withAppendedPath(TourContentProvider.CONTENT_URI_COURSES, Integer.toString(id)),
            cv,
            null,
            null);
      }

      // update holes
      for (int i = 1; i <= 18; i++) {
        cv = new ContentValues();
        cv.put(TourContentProvider.KEY_COURSE_ID, id);
        cv.put(TourContentProvider.KEY_HOLE_NAME, cc.getHoleName(i));
        cv.put(TourContentProvider.KEY_HOLE_NR, i);
        cv.put(TourContentProvider.KEY_HOLE_PAR, cc.getHolePar(i));
        cv.put(TourContentProvider.KEY_HOLE_INDEX, cc.getHoleIndex(i));
        cv.put(TourContentProvider.KEY_HOLE_LENGTH, cc.getHoleLength(i));
        if (newEntry) cr.insert(TourContentProvider.CONTENT_URI_HOLES, cv);
        else {
          selection =
              TourContentProvider.KEY_COURSE_ID
                  + "=? AND "
                  + TourContentProvider.KEY_HOLE_NR
                  + "=?";
          selectionArgs = new String[2];
          selectionArgs[0] = Integer.toString(id);
          selectionArgs[1] = Integer.toString(i);
          cur =
              cr.query(TourContentProvider.CONTENT_URI_HOLES, null, selection, selectionArgs, null);
          cur.moveToFirst();
          int key_index = cur.getColumnIndexOrThrow(TourContentProvider.KEY_ID);
          int hole_id = cur.getInt(key_index);
          cr.update(
              Uri.withAppendedPath(
                  TourContentProvider.CONTENT_URI_HOLES, Integer.toString(hole_id)),
              cv,
              null,
              null);
        } // else
      } // for
    } // for
  } // updatedb