( Context context, Class<T> clazz, Object field )
| 583 | } |
| 584 | |
| 585 | @SuppressWarnings("unchecked") |
| 586 | private <T extends Model> void saveM2MToDatabase( |
| 587 | |
| 588 | Context context, |
| 589 | Class<T> clazz, |
| 590 | Object field |
| 591 | |
| 592 | ) { |
| 593 | |
| 594 | ManyToManyField<T, ?> m = (ManyToManyField<T, ?>) field; |
| 595 | List<? extends Model> targets = m.getCachedValues(); |
| 596 | |
| 597 | DatabaseAdapter adapter = DatabaseAdapter.getInstance(context); |
| 598 | |
| 599 | for(Model target: targets) { |
| 600 | /* |
| 601 | * Only save relation to the database if the |
| 602 | * target model has been persisted. |
| 603 | */ |
| 604 | if(target.getId() != 0) { |
| 605 | ContentValues values = new ContentValues(); |
| 606 | Where where = new Where(); |
| 607 | where.and(DatabaseBuilder.getTableName(clazz), getId()) |
| 608 | .and(DatabaseBuilder.getTableName(m.getTarget()), target.getId()); |
| 609 | |
| 610 | values.put(DatabaseBuilder.getTableName(clazz), getId()); |
| 611 | values.put(DatabaseBuilder.getTableName(m.getTarget()), target.getId()); |
| 612 | |
| 613 | adapter.doInsertOrUpdate(m.getRelationTableName(), values, where); |
| 614 | } |
| 615 | } |
| 616 | } |
| 617 | |
| 618 | @SuppressWarnings("unchecked") |
| 619 | private <O extends Model, T extends Model> void saveO2MToDatabase( |
no test coverage detected