Narrative.java
- package org.jbehave.core.model;
- import org.apache.commons.lang3.builder.ToStringBuilder;
- import org.apache.commons.lang3.builder.ToStringStyle;
- import org.jbehave.core.configuration.Keywords;
- @SuppressWarnings("checkstyle:MemberName")
- public class Narrative {
- public static final Narrative EMPTY = new Narrative("", "", "");
- private static final String NL = "\n";
- private static final String SPACE = " ";
- private final String inOrderTo;
- private final String asA;
- private final String iWantTo;
- private final String soThat;
- @SuppressWarnings("checkstyle:ParameterName")
- public Narrative(String inOrderTo, String asA, String iWantTo) {
- this(inOrderTo, asA, iWantTo, "");
- }
- @SuppressWarnings("checkstyle:ParameterName")
- public Narrative(String inOrderTo, String asA, String iWantTo, String soThat) {
- this.inOrderTo = inOrderTo;
- this.asA = asA;
- this.iWantTo = iWantTo;
- this.soThat = soThat;
- }
- public String inOrderTo() {
- return inOrderTo;
- }
- public String asA() {
- return asA;
- }
- @SuppressWarnings("checkstyle:MethodName")
- public String iWantTo() {
- return iWantTo;
- }
- public String soThat() {
- return soThat;
- }
-
- public boolean isEmpty() {
- return EMPTY == this;
- }
- public boolean isAlternative() {
- return inOrderTo.isEmpty();
- }
- public String asString(Keywords keywords) {
- StringBuilder sb = new StringBuilder();
- if (isAlternative()) {
- sb.append(keywords.asA()).append(SPACE).append(asA).append(NL);
- sb.append(keywords.iWantTo()).append(SPACE).append(iWantTo)
- .append(NL);
- sb.append(keywords.soThat()).append(SPACE).append(soThat);
- } else {
- sb.append(keywords.inOrderTo()).append(SPACE).append(inOrderTo)
- .append(NL);
- sb.append(keywords.asA()).append(SPACE).append(asA).append(NL);
- sb.append(keywords.iWantTo()).append(SPACE).append(iWantTo);
- }
- return sb.toString();
- }
- @Override
- public String toString() {
- return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
- }
- }