MCPcopy Create free account
hub / github.com/androrm/androrm / saveM2MToDatabase

Method saveM2MToDatabase

src/src/com/orm/androrm/Model.java:585–616  ·  view source on GitHub ↗
(
			
			Context 	context, 
			Class<T> 	clazz, 
			Object 		field
			
	)

Source from the content-addressed store, hash-verified

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(

Callers 1

persistRelationsMethod · 0.95

Calls 8

getInstanceMethod · 0.95
getIdMethod · 0.95
andMethod · 0.95
getTableNameMethod · 0.95
doInsertOrUpdateMethod · 0.95
getRelationTableNameMethod · 0.80
getCachedValuesMethod · 0.65
getTargetMethod · 0.65

Tested by

no test coverage detected