@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(); }
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