| 375 | } |
| 376 | |
| 377 | final void setValues(Field<?>[] fields, AbstractRecord record) { |
| 378 | fetched = record.fetched; |
| 379 | |
| 380 | for (Field<?> field : fields) { |
| 381 | int targetIndex = indexOrFail(this.fields, field); |
| 382 | int sourceIndex = indexOrFail(record.fields, field); |
| 383 | |
| 384 | values[targetIndex] = record.get(sourceIndex); |
| 385 | originals[targetIndex] = record.original(sourceIndex); |
| 386 | touched.set(targetIndex, record.touched(sourceIndex)); |
| 387 | } |
| 388 | } |
| 389 | |
| 390 | final int safeIndex(int index) { |
| 391 | if (index >= 0 && index < values.length) |