Stepdoc.java
package org.jbehave.core.steps;
import java.lang.reflect.Method;
import org.apache.commons.lang3.builder.CompareToBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
/**
* A Stepdoc represents the documentation on a single {@link StepCandidate},
* which includes:
* <ul>
* <li>the step type</li>
* <li>the pattern to match the step candidate that is configured in the
* annotation</li>
* <li>the method in the steps instance class</li>
* <li>the steps instance class</li>
* </ul>
*/
public class Stepdoc implements Comparable<Stepdoc> {
private StepType stepType;
private String startingWord;
private String pattern;
private Method method;
private Object stepsInstance;
public Stepdoc(StepCandidate candidate) {
this.method = candidate.getMethod();
this.stepType = candidate.getStepType();
this.startingWord = candidate.getStartingWord();
this.pattern = candidate.getPatternAsString();
this.stepsInstance = candidate.getStepsInstance();
}
public StepType getStepType() {
return stepType;
}
public String getStartingWord() {
return startingWord;
}
public String getPattern() {
return pattern;
}
public Method getMethod() {
return method;
}
public Object getStepsInstance() {
return stepsInstance;
}
/**
* Method signature without "public void" prefix
*
* @return The method signature in String format
*/
public String getMethodSignature() {
if (method != null) {
String methodSignature = method.toString();
return methodSignature.replaceFirst("public void ", "");
}
return null;
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
@Override
public int compareTo(Stepdoc that) {
return CompareToBuilder.reflectionCompare(this, that);
}
}