@Override public Branch update(Branch branch, BranchBulkUpdateRequest request) { // Replacement function Function<String, String> replacementFn = replacementFn(request.getReplacements()); // Description update Branch updatedBranch = branch.withDescription( replacementFn.apply(branch.getDescription()) ); structureService.saveBranch(updatedBranch); // Updating doCopy(branch, updatedBranch, replacementFn, new SyncPolicy( SyncPolicy.TargetPresentPolicy.REPLACE, SyncPolicy.UnknownTargetPolicy.IGNORE )); // Reloads the branch return structureService.getBranch(branch.getId()); }
protected BranchTemplateSyncResult applyMissingPolicy(Branch branch, TemplateSynchronisationAbsencePolicy absencePolicy) { if (branch.isDisabled()) { return BranchTemplateSyncResult.ignored(branch.getName()); } else { switch (absencePolicy) { case DELETE: structureService.deleteBranch(branch.getId()); return BranchTemplateSyncResult.deleted(branch.getName()); case DISABLE: default: structureService.saveBranch(branch.withDisabled(true)); return BranchTemplateSyncResult.disabled(branch.getName()); } } }
protected Branch updateTemplateInstance(Branch instance, Branch template, TemplateInstanceExecution templateInstanceExecution) { // Description of the branch String description = templateInstanceExecution.replace(template.getDescription()); instance = instance.withDescription(description); structureService.saveBranch(instance); // Copy replacement function copyService.copy( instance, // Target template, // Source templateInstanceExecution.getReplacementFn(), SyncPolicy.SYNC_KEEP // Conservative approach ); // Template instance TemplateInstance templateInstance = new TemplateInstance( template.getId(), templateInstanceExecution.asTemplateParameterValues() ); // Branch as a branch template instance branchTemplateRepository.setTemplateInstance(instance.getId(), templateInstance); // OK - reloads to gets the correct type return structureService.getBranch(instance.getId()); }