public Requirement merge(Requirement newRequirement) { String mergedCardNumber = isEmpty(cardNumber) ? newRequirement.cardNumber : cardNumber; String mergedDisplayName= (isEmpty(displayName) || name.equalsIgnoreCase(displayName)) ? newRequirement.displayName : displayName; String mergedNarrativeText = isEmpty(narrative.getText()) ? newRequirement.narrative.getText() : narrative.getText(); String mergedPath = isEmpty(path) ? newRequirement.path : path; String mergedFeatureFileName = isEmpty(featureFileName) ? newRequirement.featureFileName : featureFileName; List<String> mergedReleasVersions = ListUtils.union(releaseVersions, newRequirement.releaseVersions) ; List<Example> mergedExamples = ListUtils.union(examples, newRequirement.examples); List<CustomFieldValue> mergedCustomFields = ListUtils.union(customFields, newRequirement.customFields); List<Requirement> mergedChildren = mergeRequirementLists(children, newRequirement.children); return Requirement.named(name) .withOptionalParent(parent) .withOptionalCardNumber(mergedCardNumber) .withType(type) .withNarrative(mergedNarrativeText) .withPath(mergedPath) .withDisplayName(mergedDisplayName) .withReleaseVersions(mergedReleasVersions) .withExamples(mergedExamples) .withCustomFields(mergedCustomFields) .withFeatureFileyName(mergedFeatureFileName) .withChildren(mergedChildren) .withTags(tags); }
public Requirement merge(Requirement newRequirement) { String mergedCardNumber = isEmpty(cardNumber) ? newRequirement.cardNumber : cardNumber; String mergedDisplayName= isEmpty(displayName) ? newRequirement.displayName : displayName; String mergedNarrativeText = isEmpty(narrative.getText()) ? newRequirement.narrative.getText() : narrative.getText(); String mergedFeatureFileName = isEmpty(featureFileName) ? newRequirement.featureFileName : featureFileName; List<String> mergedReleasVersions = ListUtils.union(releaseVersions, newRequirement.releaseVersions) ; List<Example> mergedExamples = ListUtils.union(examples, newRequirement.examples); List<CustomFieldValue> mergedCustomFields = ListUtils.union(customFields, newRequirement.customFields); List<Requirement> mergedChildren = mergeRequirementLists(children, newRequirement.children); return Requirement.named(name) .withOptionalParent(parent) .withOptionalCardNumber(mergedCardNumber) .withType(type) .withNarrative(mergedNarrativeText) .withDisplayName(mergedDisplayName) .withReleaseVersions(mergedReleasVersions) .withExamples(mergedExamples) .withCustomFields(mergedCustomFields) .withFeatureFileyName(mergedFeatureFileName) .withChildren(mergedChildren); }