Skip to content

Commit d364c4b

Browse files
committed
API renames, based on feedback in cucumber/cucumber-js#764
1 parent a319df2 commit d364c4b

File tree

70 files changed

+932
-945
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+932
-945
lines changed

cucumber-expressions/CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ N/A
1515
(by [aslakhellesoy])
1616

1717
### Changed
18+
* Renamed API:
19+
* `Parameter -> ParameterType`
20+
* `ParameterRegistry -> ParameterTypeRegistry`
21+
* `addParameter -> defineParameterType`
22+
1823
* Stricter conflict checks when defining parameters
1924
([#121](https://github.com/cucumber/cucumber/pull/121)
2025
by [aslakhellesoy])

cucumber-expressions/java/src/main/java/io/cucumber/cucumberexpressions/AbstractParameter.java

-37
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package io.cucumber.cucumberexpressions;
2+
3+
import java.lang.reflect.Type;
4+
import java.util.List;
5+
6+
import static java.util.Collections.singletonList;
7+
8+
public abstract class AbstractParameterType<T> implements ParameterType<T> {
9+
private final String typeName;
10+
private final Type type;
11+
private final List<String> regexps;
12+
13+
public AbstractParameterType(String name, Type type, List<String> regexps) {
14+
this.regexps = regexps;
15+
this.typeName = name;
16+
this.type = type;
17+
}
18+
19+
public AbstractParameterType(String typeName, Type type, String regexp) {
20+
this(typeName, type, singletonList(regexp));
21+
}
22+
23+
@Override
24+
public String getName() {
25+
return typeName;
26+
}
27+
28+
@Override
29+
public Type getType() {
30+
return type;
31+
}
32+
33+
@Override
34+
public List<String> getRegexps() {
35+
return regexps;
36+
}
37+
}

cucumber-expressions/java/src/main/java/io/cucumber/cucumberexpressions/Argument.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
public class Argument {
44
private final int offset;
55
private final String value;
6-
private final Parameter parameter;
6+
private final ParameterType parameterType;
77

8-
public Argument(Integer offset, String value, Parameter parameter) {
8+
public Argument(Integer offset, String value, ParameterType parameterType) {
99
this.offset = offset;
1010
this.value = value;
11-
this.parameter = parameter;
11+
this.parameterType = parameterType;
1212
}
1313

1414
public int getOffset() {
@@ -20,6 +20,6 @@ public String getValue() {
2020
}
2121

2222
public Object getTransformedValue() {
23-
return parameter.transform(value);
23+
return parameterType.transform(value);
2424
}
2525
}

cucumber-expressions/java/src/main/java/io/cucumber/cucumberexpressions/ArgumentBuilder.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@
66
import java.util.regex.Pattern;
77

88
class ArgumentBuilder {
9-
static List<Argument> buildArguments(Pattern pattern, String text, List<Parameter<?>> parameters) {
9+
static List<Argument> buildArguments(Pattern pattern, String text, List<ParameterType<?>> parameterTypes) {
1010
Matcher matcher = pattern.matcher(text);
1111
if (matcher.lookingAt()) {
12-
if (matcher.groupCount() != parameters.size()) {
13-
throw new RuntimeException(String.format("Expression has %s arguments, but there were %s parameters", matcher.groupCount(), parameters.size()));
12+
if (matcher.groupCount() != parameterTypes.size()) {
13+
throw new RuntimeException(String.format("Expression has %s arguments, but there were %s parameterTypes", matcher.groupCount(), parameterTypes.size()));
1414
}
1515
List<Argument> arguments = new ArrayList<>(matcher.groupCount());
1616
for (int i = 0; i < matcher.groupCount(); i++) {
1717
int startIndex = matcher.start(i + 1);
1818
String value = matcher.group(i + 1);
19-
Parameter parameter = parameters.get(i);
19+
ParameterType parameterType = parameterTypes.get(i);
2020

21-
arguments.add(new Argument(startIndex, value, parameter));
21+
arguments.add(new Argument(startIndex, value, parameterType));
2222
}
2323
return arguments;
2424
} else {

cucumber-expressions/java/src/main/java/io/cucumber/cucumberexpressions/ClassParameter.java

-36
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package io.cucumber.cucumberexpressions;
2+
3+
import java.lang.reflect.Type;
4+
import java.util.List;
5+
6+
public class ClassParameterType<T> implements ParameterType<T> {
7+
private final ParameterType<T> delegate;
8+
9+
public ClassParameterType(Class<T> type) {
10+
if (type.isEnum()) {
11+
delegate = (ParameterType<T>) new EnumParameterType<>((Class<? extends Enum>) type);
12+
} else {
13+
delegate = new ConstructorParameterType<>(type);
14+
}
15+
}
16+
17+
@Override
18+
public String getName() {
19+
return delegate.getName();
20+
}
21+
22+
@Override
23+
public Type getType() {
24+
return delegate.getType();
25+
}
26+
27+
@Override
28+
public List<String> getRegexps() {
29+
return delegate.getRegexps();
30+
}
31+
32+
@Override
33+
public T transform(String value) {
34+
return delegate.transform(value);
35+
}
36+
}

cucumber-expressions/java/src/main/java/io/cucumber/cucumberexpressions/ConstructorParameter.java renamed to cucumber-expressions/java/src/main/java/io/cucumber/cucumberexpressions/ConstructorParameterType.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
import java.util.Collections;
66
import java.util.List;
77

8-
public class ConstructorParameter<T> extends AbstractParameter<T> {
8+
public class ConstructorParameterType<T> extends AbstractParameterType<T> {
99
private static final List<String> ANYTHING_GOES = Collections.singletonList(".+");
1010
private final Constructor<T> constructor;
1111

12-
public ConstructorParameter(Class<T> clazz) {
12+
public ConstructorParameterType(Class<T> clazz) {
1313
super(null, clazz, ANYTHING_GOES);
1414
try {
1515
this.constructor = clazz.getConstructor(String.class);
@@ -21,7 +21,7 @@ public ConstructorParameter(Class<T> clazz) {
2121
@Override
2222
public T transform(String value) {
2323
if (value == null) {
24-
return (T)null;
24+
return null;
2525
}
2626
try {
2727
return constructor.newInstance(value);

cucumber-expressions/java/src/main/java/io/cucumber/cucumberexpressions/CucumberExpression.java

+22-23
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,11 @@ public class CucumberExpression implements Expression {
1212
private static final Pattern OPTIONAL_PATTERN = Pattern.compile("\\(([^)]+)\\)");
1313
private static final Pattern ALTERNATIVE_WORD_REGEXP = Pattern.compile("([\\p{IsAlphabetic}]+)((/[\\p{IsAlphabetic}]+)+)");
1414

15-
1615
private final Pattern pattern;
17-
private final List<Parameter<?>> parameters = new ArrayList<>();
16+
private final List<ParameterType<?>> parameterTypes = new ArrayList<>();
1817
private final String expression;
1918

20-
public CucumberExpression(String expression, List<? extends Type> types, ParameterRegistry parameterRegistry) {
19+
public CucumberExpression(String expression, List<? extends Type> types, ParameterTypeRegistry parameterTypeRegistry) {
2120
this.expression = expression;
2221
expression = ESCAPE_PATTERN.matcher(expression).replaceAll("\\\\$1");
2322
expression = OPTIONAL_PATTERN.matcher(expression).replaceAll("(?:$1)?");
@@ -36,47 +35,47 @@ public CucumberExpression(String expression, List<? extends Type> types, Paramet
3635
int typeIndex = 0;
3736
while (matcher.find()) {
3837
String parameterName = matcher.group(1);
39-
String typeName = matcher.group(3);
40-
if (typeName != null) {
41-
System.err.println(String.format("Cucumber expression parameter syntax {%s:%s} is deprecated. Please use {%s} instead.", parameterName, typeName, typeName));
38+
String parameterTypeName = matcher.group(3);
39+
if (parameterTypeName != null) {
40+
System.err.println(String.format("Cucumber expression parameter type syntax {%s:%s} is deprecated. Please use {%s} instead.", parameterName, parameterTypeName, parameterTypeName));
4241
}
4342

4443
Type type = types.size() <= typeIndex ? null : types.get(typeIndex++);
4544

46-
Parameter<?> parameter = null;
45+
ParameterType<?> parameterType = null;
4746
if (type != null) {
48-
parameter = parameterRegistry.lookupByType(type);
47+
parameterType = parameterTypeRegistry.lookupByType(type);
4948
}
50-
if (parameter == null && typeName != null) {
51-
parameter = parameterRegistry.lookupByTypeName(typeName);
49+
if (parameterType == null && parameterTypeName != null) {
50+
parameterType = parameterTypeRegistry.lookupByTypeName(parameterTypeName);
5251
}
53-
if (parameter == null) {
54-
parameter = parameterRegistry.lookupByTypeName(parameterName);
52+
if (parameterType == null) {
53+
parameterType = parameterTypeRegistry.lookupByTypeName(parameterName);
5554
}
56-
if (parameter == null && type != null && type instanceof Class) {
57-
parameter = new ClassParameter<>((Class) type);
55+
if (parameterType == null && type != null && type instanceof Class) {
56+
parameterType = new ClassParameterType<>((Class) type);
5857
}
59-
if (parameter == null) {
60-
parameter = new ConstructorParameter<>(String.class);
58+
if (parameterType == null) {
59+
parameterType = new ConstructorParameterType<>(String.class);
6160
}
62-
parameters.add(parameter);
61+
parameterTypes.add(parameterType);
6362

64-
matcher.appendReplacement(regexp, Matcher.quoteReplacement(getCaptureGroupRegexp(parameter.getCaptureGroupRegexps())));
63+
matcher.appendReplacement(regexp, Matcher.quoteReplacement(getCaptureGroupRegexp(parameterType.getRegexps())));
6564
}
6665
matcher.appendTail(regexp);
6766
regexp.append("$");
6867

6968
pattern = Pattern.compile(regexp.toString());
7069
}
7170

72-
private String getCaptureGroupRegexp(List<String> captureGroupRegexps) {
71+
private String getCaptureGroupRegexp(List<String> regexps) {
7372
StringBuilder sb = new StringBuilder("(");
7473

75-
if (captureGroupRegexps.size() == 1) {
76-
sb.append(captureGroupRegexps.get(0));
74+
if (regexps.size() == 1) {
75+
sb.append(regexps.get(0));
7776
} else {
7877
boolean bar = false;
79-
for (String captureGroupRegexp : captureGroupRegexps) {
78+
for (String captureGroupRegexp : regexps) {
8079
if (bar) sb.append("|");
8180
sb.append("(?:").append(captureGroupRegexp).append(")");
8281
bar = true;
@@ -89,7 +88,7 @@ private String getCaptureGroupRegexp(List<String> captureGroupRegexps) {
8988

9089
@Override
9190
public List<Argument> match(String text) {
92-
return ArgumentBuilder.buildArguments(pattern, text, parameters);
91+
return ArgumentBuilder.buildArguments(pattern, text, parameterTypes);
9392
}
9493

9594
@Override

0 commit comments

Comments
 (0)