private ComponentDto persistComponent(ComponentDto componentDto) { ComponentDto existingComponent = existingComponentDtosByUuids.remove(componentDto.uuid()); if (existingComponent == null) { dbClient.componentDao().insert(dbSession, componentDto); return componentDto; } Optional<ComponentUpdateDto> update = compareForUpdate(existingComponent, componentDto); if (update.isPresent()) { ComponentUpdateDto updateDto = update.get(); dbClient.componentDao().update(dbSession, updateDto); // update the fields in memory in order the PathAwareVisitor.Path // to be up-to-date existingComponent.setDbKey(updateDto.getBKey()); existingComponent.setCopyComponentUuid(updateDto.getBCopyComponentUuid()); existingComponent.setDescription(updateDto.getBDescription()); existingComponent.setEnabled(updateDto.isBEnabled()); existingComponent.setUuidPath(updateDto.getBUuidPath()); existingComponent.setLanguage(updateDto.getBLanguage()); existingComponent.setLongName(updateDto.getBLongName()); existingComponent.setModuleUuid(updateDto.getBModuleUuid()); existingComponent.setModuleUuidPath(updateDto.getBModuleUuidPath()); existingComponent.setName(updateDto.getBName()); existingComponent.setPath(updateDto.getBPath()); // We don't have a b_scope. The applyBChangesForRootComponentUuid query is using a case ... when to infer scope from the qualifier existingComponent.setScope(componentDto.scope()); existingComponent.setQualifier(updateDto.getBQualifier()); } return existingComponent; }
private ComponentDto persistComponent(ComponentDto componentDto) { ComponentDto existingComponent = existingComponentDtosByKey.remove(componentDto.getDbKey()); if (existingComponent == null) { dbClient.componentDao().insert(dbSession, componentDto); return componentDto; } Optional<ComponentUpdateDto> update = compareForUpdate(existingComponent, componentDto); if (update.isPresent()) { ComponentUpdateDto updateDto = update.get(); dbClient.componentDao().update(dbSession, updateDto); // update the fields in memory in order the PathAwareVisitor.Path // to be up-to-date existingComponent.setCopyComponentUuid(updateDto.getBCopyComponentUuid()); existingComponent.setDescription(updateDto.getBDescription()); existingComponent.setEnabled(updateDto.isBEnabled()); existingComponent.setUuidPath(updateDto.getBUuidPath()); existingComponent.setLanguage(updateDto.getBLanguage()); existingComponent.setLongName(updateDto.getBLongName()); existingComponent.setModuleUuid(updateDto.getBModuleUuid()); existingComponent.setModuleUuidPath(updateDto.getBModuleUuidPath()); existingComponent.setName(updateDto.getBName()); existingComponent.setPath(updateDto.getBPath()); existingComponent.setQualifier(updateDto.getBQualifier()); } return existingComponent; }