private void recordTripUpdate(TripUpdate tripUpdate, DataCopier tuCopier, DataCopier stCopier) throws SQLException { PreparedStatement stmt = null; int updateId = getUpdateId(); DataCopierRow tuRow = null; if (tuCopier != null) { tuRow = new DataCopierRow(); } else { stmt = mStatements.get(STTRIPUPDATE); } if (tuRow == null) { stmt.setInt(1, updateId); } else { tuRow.add(updateId); } if (tripUpdate.hasTimestamp()) { if (tuRow == null) { stmt.setLong(2, tripUpdate.getTimestamp()); } else { tuRow.add(tripUpdate.getTimestamp()); } } else { if (tuRow == null) { stmt.setNull(2, Types.INTEGER); } else { tuRow.addNull(); } } if (tripUpdate.hasTrip()) { TripDescriptor trip = tripUpdate.getTrip(); if (trip.hasScheduleRelationship()) { if (tuRow == null) { stmt.setInt(3, trip.getScheduleRelationship().getNumber()); } else { tuRow.add(trip.getScheduleRelationship().getNumber()); } } else { if (tuRow == null) { stmt.setNull(3, Types.INTEGER); } else { tuRow.addNull(); } } if (trip.hasStartDate()) { if (tuRow == null) { stmt.setString(4, trip.getStartDate()); } else { tuRow.add(trip.getStartDate()); } } else { if (tuRow == null) { stmt.setNull(4, Types.VARCHAR); } else { tuRow.addNull(); } } if (trip.hasStartTime()) { if (tuRow == null) { stmt.setString(5, trip.getStartTime()); } else { tuRow.add(trip.getStartTime()); } } else { if (tuRow == null) { stmt.setNull(5, Types.VARCHAR); } else { tuRow.addNull(); } } if (trip.hasTripId()) { if (tuRow == null) { stmt.setString(6, trip.getTripId()); } else { tuRow.add(trip.getTripId()); } } else { if (tuRow == null) { stmt.setNull(6, Types.VARCHAR); } else { tuRow.addNull(); } } if (trip.hasRouteId()) { if (tuRow == null) { stmt.setString(7, trip.getRouteId()); } else { tuRow.add(trip.getRouteId()); } } else { if (tuRow == null) { stmt.setNull(7, Types.VARCHAR); } else { tuRow.addNull(); } } } else { if (tuRow == null) { stmt.setNull(3, Types.INTEGER); stmt.setNull(4, Types.VARCHAR); stmt.setNull(5, Types.VARCHAR); stmt.setNull(6, Types.VARCHAR); stmt.setNull(7, Types.VARCHAR); } else { tuRow.addNull(5); } } if (tripUpdate.hasVehicle()) { VehicleDescriptor vd = tripUpdate.getVehicle(); if (vd.hasId()) { if (tuRow == null) { stmt.setString(8, vd.getId()); } else { tuRow.add(vd.getId()); } } else { if (tuRow == null) { stmt.setNull(8, Types.INTEGER); } else { tuRow.addNull(); } } if (vd.hasLabel()) { if (tuRow == null) { stmt.setString(9, vd.getLabel()); } else { tuRow.add(vd.getLabel()); } } else { if (tuRow == null) { stmt.setNull(9, Types.VARCHAR); } else { tuRow.addNull(); } } if (vd.hasLicensePlate()) { if (tuRow == null) { stmt.setString(10, vd.getLicensePlate()); } else { tuRow.add(vd.getLicensePlate()); } } else { if (tuRow == null) { stmt.setNull(10, Types.VARCHAR); } else { tuRow.addNull(); } } } else { if (tuRow == null) { stmt.setNull(8, Types.INTEGER); stmt.setNull(9, Types.VARCHAR); stmt.setNull(10, Types.VARCHAR); } else { tuRow.addNull(3); } } Date recorded = new Date(); if (tuRow == null) { stmt.setInt(11, (int) (recorded.getTime() / 1000)); } else { tuRow.add((int) (recorded.getTime() / 1000)); } if (tuCopier == null) { stmt.addBatch(); } else { tuCopier.add(tuRow); } if (stCopier == null) { stmt = mStatements.get(STTRIPUPDATE_STOPTIMEUPDATES); } else { stmt = null; } for (StopTimeUpdate stu : tripUpdate.getStopTimeUpdateList()) { DataCopierRow stRow = null; if (stmt == null) { stRow = new DataCopierRow(); } if (stRow == null) { stmt.setInt(1, updateId); } else { stRow.add(updateId); } if (stu.hasArrival()) { StopTimeEvent ste = stu.getArrival(); if (ste.hasTime()) { if (stRow == null) { stmt.setLong(2, ste.getTime()); } else { stRow.add(ste.getTime()); } } else { if (stRow == null) { stmt.setNull(2, Types.INTEGER); } else { stRow.addNull(); } } if (ste.hasUncertainty()) { if (stRow == null) { stmt.setInt(3, ste.getUncertainty()); } else { stRow.add(ste.getUncertainty()); } } else { if (stRow == null) { stmt.setNull(3, Types.INTEGER); } else { stRow.addNull(); } } if (ste.hasDelay()) { if (stRow == null) { stmt.setInt(4, ste.getDelay()); } else { stRow.add(ste.getDelay()); } } else { if (stRow == null) { stmt.setNull(4, Types.INTEGER); } else { stRow.addNull(); } } } else { if (stRow == null) { stmt.setNull(2, Types.INTEGER); stmt.setNull(3, Types.INTEGER); stmt.setNull(4, Types.INTEGER); } else { stRow.addNull(3); } } if (stu.hasDeparture()) { StopTimeEvent ste = stu.getDeparture(); if (ste.hasTime()) { if (stRow == null) { stmt.setLong(5, ste.getTime()); } else { stRow.add(ste.getTime()); } } else { if (stRow == null) { stmt.setNull(5, Types.INTEGER); } else { stRow.addNull(); } } if (ste.hasUncertainty()) { if (stRow == null) { stmt.setInt(6, ste.getUncertainty()); } else { stRow.add(ste.getUncertainty()); } } else { if (stRow == null) { stmt.setNull(6, Types.INTEGER); } else { stRow.addNull(); } } if (ste.hasDelay()) { if (stRow == null) { stmt.setInt(7, ste.getDelay()); } else { stRow.add(ste.getDelay()); } } else { if (stRow == null) { stmt.setNull(7, Types.INTEGER); } else { stRow.addNull(); } } } else { if (stRow == null) { stmt.setNull(5, Types.INTEGER); stmt.setNull(6, Types.INTEGER); stmt.setNull(7, Types.INTEGER); } else { stRow.addNull(3); } } int srInt = stu.hasScheduleRelationship() ? stu.getScheduleRelationship().getNumber() : com.google.transit.realtime.GtfsRealtime.TripUpdate.StopTimeUpdate .ScheduleRelationship.SCHEDULED_VALUE; if (stRow == null) { stmt.setInt(8, srInt); } else { stRow.add(srInt); } if (stu.hasStopId()) { if (stRow == null) { stmt.setString(9, stu.getStopId()); } else { stRow.add(stu.getStopId()); } } else { if (stRow == null) { stmt.setNull(9, Types.VARCHAR); } else { stRow.addNull(); } } int ssInt = stu.hasStopSequence() ? stu.getStopSequence() : -1; if (stRow == null) { stmt.setInt(10, ssInt); } else { stRow.add(ssInt); } if (stmt == null) { stCopier.add(stRow); } else { stmt.addBatch(); } } }