public RequirementBuilderTypeStep withType(String type) { return new RequirementBuilderTypeStep(this, type); }
private Requirement storyNamed(String storyName) { String shortName = humanReadableVersionOf(storyName); return Requirement.named(shortName).withType(STORY_EXTENSION).withNarrative(shortName); }
public Requirement withNarrative(String narrativeText) { String nonLifecycleNarrativeText = nonLifecycle(narrativeText); String name = requirementBuilderNameStep.name; String displayName = requirementBuilderNameStep.displayName; String cardNumber = requirementBuilderNameStep.cardNumber; String parent = requirementBuilderNameStep.parent; String id = requirementBuilderNameStep.id; return new Requirement(name, id, displayName, cardNumber, parent, type, new CustomFieldValue("Narrative", nonLifecycleNarrativeText)); }
private Requirement storyNamed(String storyName) { String shortName = humanReadableVersionOf(storyName); return Requirement.named(shortName).withType(STORY_EXTENSION).withNarrative(shortName); }
private Requirement getRequirement(Class candidateClass, String packageName, int level, String requirementTitle, String requirementType, String narrativeText, String cardNumber, Optional<Narrative> narrative) { if (narrative.isPresent()) { requirementTitle = narrative.get().title(); requirementType = narrative.get().type(); narrativeText = Joiner.on("\n").join(narrative.get().text()); cardNumber = narrative.get().cardNumber(); } if (StringUtils.isEmpty(requirementType)) { requirementType = getRequirementType(level, candidateClass); } return Requirement.named(humanReadableVersionOf(packageName)) .withOptionalCardNumber(cardNumber) .withOptionalDisplayName(StringUtils.isEmpty(requirementTitle) ? humanReadableVersionOf(packageName) : requirementTitle) .withType(requirementType) .withNarrative(narrativeText); }
public RequirementBuilderTypeStep withType(String type) { return new RequirementBuilderTypeStep(this, type); }
private Requirement getRequirement(Class candidateClass, String packageName, int level, String requirementTitle, String requirementType, String narrativeText, String cardNumber, Optional<Narrative> narrative) { if (narrative.isPresent()) { requirementTitle = narrative.get().title(); requirementType = narrative.get().type(); narrativeText = Joiner.on("\n").join(narrative.get().text()); cardNumber = narrative.get().cardNumber(); } if (StringUtils.isEmpty(requirementType)) { requirementType = getRequirementType(level, candidateClass); } return Requirement.named(humanReadableVersionOf(packageName)) .withOptionalCardNumber(cardNumber) .withOptionalDisplayName(StringUtils.isEmpty(requirementTitle) ? humanReadableVersionOf(packageName) : humanReadableVersionOf(requirementTitle)) .withType(requirementType) .withNarrative(narrativeText); }
public RequirementBuilderTypeStep withType(String type) { return new RequirementBuilderTypeStep(this, type); }
private Requirement requirementFromDirectoryName(File requirementDirectory) { System.out.println("Reading requirement from directory name " + requirementDirectory); String shortName = humanReadableVersionOf(requirementDirectory.getName()); List<Requirement> children = readChildrenFrom(requirementDirectory); return Requirement.named(shortName).withType(getDefaultType(level)).withNarrative(shortName).withChildren(children); }
private Requirement getRequirement(Class candidateClass, String packageName, int level, String requirementTitle, String requirementType, String narrativeText, String cardNumber, java.util.Optional<Narrative> narrative) { if (narrative.isPresent()) { requirementTitle = isNotEmpty(narrative.get().title()) ? narrative.get().title() : requirementTitle; requirementType = isNotEmpty(narrative.get().type()) ? narrative.get().type() : requirementType; narrativeText = (narrative.get().text().length > 0) ? Joiner.on("\n").join(narrative.get().text()) : narrativeText; cardNumber = isNotEmpty(narrative.get().cardNumber()) ? narrative.get().cardNumber() : cardNumber; } if (isEmpty(requirementType)) { requirementType = getRequirementType(level, candidateClass); } return Requirement.named(humanReadableVersionOf(packageName)) .withOptionalCardNumber(cardNumber) .withOptionalDisplayName(isEmpty(requirementTitle) ? humanReadableVersionOf(packageName) : humanReadableVersionOf(requirementTitle)) .withType(requirementType) .withNarrative(narrativeText); }
private Requirement requirementFromDirectoryName(File requirementDirectory) { String shortName = humanReadableVersionOf(requirementDirectory.getName()); List<Requirement> children = readChildrenFrom(requirementDirectory); return Requirement.named(shortName).withType(getDefaultType(level)).withNarrative(shortName).withChildren(children); }
private Requirement requirementFromDirectoryName(File requirementDirectory) { String shortName = humanReadableVersionOf(requirementDirectory.getName()); List<Requirement> children = readChildrenFrom(requirementDirectory); return Requirement.named(shortName) .withType(getDefaultType(level)) .withNarrative("") .withPath(relativeDirectoryOf(requirementDirectory.getPath())) .withChildren(children); }
private Requirement storyNamed(String storyName, String path) { String shortName = humanReadableVersionOf(storyName); return Requirement.named(shortName) .withType(STORY_EXTENSION) .withNarrative(shortName) .withPath(relativeDirectoryOf(path)); }
private Requirement leafRequirementWithNarrative(String shortName, Narrative requirementNarrative) { String displayName = getTitleFromNarrativeOrDirectoryName(requirementNarrative, shortName); String cardNumber = requirementNarrative.getCardNumber().orNull(); String type = requirementNarrative.getType(); List<String> releaseVersions = requirementNarrative.getVersionNumbers(); return Requirement.named(shortName) .withOptionalDisplayName(displayName) .withOptionalCardNumber(cardNumber) .withType(type) .withNarrative(requirementNarrative.getText()) .withReleaseVersions(releaseVersions); }
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); }
private Requirement requirementDefinedByClassNameAt(String path) { List<String> pathElements = elementsOf(path, rootPackage); String storyName = humanize(lastOf(pathElements)); String parent = null; if (pathElements.size() >= 2) { parent = humanize(secondLastOf(pathElements)); } String narrativeText = PackageInfoNarrative.text().definedInPath(path) .orElse(ClassNarrative.text().definedInPath(path).orElse("")); String narrativeType = PackageInfoNarrative.type().definedInPath(path) .orElse(ClassNarrative.type().definedInPath(path).orElse(leafRequirementTypeFrom(pathElements))); Requirement story = Requirement.named(storyName) .withType(narrativeType) .withNarrative(narrativeText) .withParent(parent) .withPath(Joiner.on("/").join(allButLast(pathElements))); return story; }
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); }
private Requirement requirementWithNarrative(File requirementDirectory, String shortName, Narrative requirementNarrative) { String displayName = getTitleFromNarrativeOrDirectoryName(requirementNarrative, shortName); String cardNumber = requirementNarrative.getCardNumber().orNull(); String type = requirementNarrative.getType(); List<String> releaseVersions = requirementNarrative.getVersionNumbers(); List<Requirement> children = readChildrenFrom(requirementDirectory); return Requirement.named(shortName) .withOptionalDisplayName(displayName) .withOptionalCardNumber(cardNumber) .withType(type) .withNarrative(requirementNarrative.getText()) .withReleaseVersions(releaseVersions) .withChildren(children); }
private Requirement requirementWithNarrative(File requirementDirectory, String shortName, Narrative requirementNarrative) { String displayName = getTitleFromNarrativeOrDirectoryName(requirementNarrative, shortName); String cardNumber = requirementNarrative.getCardNumber().orElse(null); String type = requirementNarrative.getType(); List<String> releaseVersions = requirementNarrative.getVersionNumbers(); List<Requirement> children = readChildrenFrom(requirementDirectory); return Requirement.named(shortName) .withOptionalDisplayName(displayName) .withOptionalCardNumber(cardNumber) .withType(type) .withNarrative(requirementNarrative.getText()) .withReleaseVersions(releaseVersions) .withPath(relativeDirectoryOf(requirementDirectory.getPath())) .withChildren(children); }
public void to(Collection<Requirement> allRequirements) { List<String> parentElements = PackageInfoClass.isDefinedIn(path) ? allButLast(allButLast(elementsOf(path, rootPackage))) : allButLast(elementsOf(path, rootPackage)); int startFromRequirementLevel = getRequirementTypes().size() - requirementsDepth; int level = startFromRequirementLevel; Requirement parent = null; StringBuilder fullPath = new StringBuilder(rootPackage); for (String pathElement : parentElements) { String type = requirementsConfiguration.getRequirementType(level++); fullPath.append(".").append(pathElement); Requirement nextRequirement; String parentName = (parent != null) ? parent.getName() : null; if (requirementExistsCalled(humanize(pathElement), allRequirements)) { nextRequirement = requirementCalled(humanize(pathElement), allRequirements).withParent(parentName); } else { String narrativeText = PackageInfoNarrative.text().definedInPath(fullPath.toString()).orElse(NarrativeTitle.definedIn(fullPath.toString(), type)); String narrativeType = PackageInfoNarrative.type().definedInPath(fullPath.toString()).orElse(type); nextRequirement = (Requirement.named(humanize(pathElement)).withType(narrativeType).withNarrative(narrativeText)).withParent(parentName); allRequirements.add(nextRequirement); } if (parent != null) { addChild(nextRequirement).toParent(parent).in(allRequirements); } parent = nextRequirement; } addChild(leafRequirement).toParent(parent).in(allRequirements); }