/** * Check if the baseObj is already existed in the associatedModels * collection. If not add baseObj into the collection. Then if the * associated model is saved, add its' name and id to baseObj by calling * {@link org.litepal.crud.DataSupport#addAssociatedModelWithFK(String, long)}. * * @param associatedModels * The associated model collection. * @param baseObj * The baseObj currently want to persist. * @param associatedModel * The associated info analyzed by * {@link LitePalBase#getAssociationInfo(String)}. */ private void dealAssociatedModelOnManySide(Collection<DataSupport> associatedModels, DataSupport baseObj, DataSupport associatedModel) { if (!associatedModels.contains(baseObj)) { associatedModels.add(baseObj); } if (associatedModel.isSaved()) { baseObj.addAssociatedModelWithoutFK(associatedModel.getTableName(), associatedModel.getBaseObjId()); } }
/** * Deals bidirectional association condition. If associated model is saved, * add its' name and id to baseObj by calling * {@link org.litepal.crud.DataSupport#addAssociatedModelWithFK(String, long)}. Add its' name * and id to baseObj by calling * {@link org.litepal.crud.DataSupport#addAssociatedModelWithoutFK(String, long)}. * * @param baseObj * The baseObj currently want to persist. * @param associatedModel * The associated model of baseObj. */ private void bidirectionalCondition(DataSupport baseObj, DataSupport associatedModel) { if (associatedModel.isSaved()) { // use to update associated table after saving baseObj.addAssociatedModelWithFK(associatedModel.getTableName(), associatedModel.getBaseObjId()); // use to add foreign key value while saving baseObj.addAssociatedModelWithoutFK(associatedModel.getTableName(), associatedModel.getBaseObjId()); } }
/** * If the associated model is saved, add its' name and id to baseObj by * calling {@link org.litepal.crud.DataSupport#addAssociatedModelWithFK(String, long)}. Or if * the baseObj is saved, add its' name and id to associated model by calling * {@link org.litepal.crud.DataSupport#addAssociatedModelWithoutFK(String, long)}. * * @param baseObj * The baseObj currently want to persist. * @param associatedModel * The associated model. */ protected void dealsAssociationsOnTheSideWithoutFK(DataSupport baseObj, DataSupport associatedModel) { if (associatedModel != null) { if (associatedModel.isSaved()) { baseObj.addAssociatedModelWithFK(associatedModel.getTableName(), associatedModel.getBaseObjId()); } else { if (baseObj.isSaved()) { associatedModel.addAssociatedModelWithoutFK(baseObj.getTableName(), baseObj.getBaseObjId()); } } } }