Skip to content

Commit a718003

Browse files
committed
Refactor the structure of ArbitraryGenerator
1 parent 2d9226f commit a718003

File tree

5 files changed

+189
-110
lines changed

5 files changed

+189
-110
lines changed

fixture-monkey-api/src/main/java/com/navercorp/fixturemonkey/api/generator/IntrospectedArbitraryGenerator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434

3535
/**
3636
* Generates a {@link CombinableArbitrary} by {@link ArbitraryIntrospector}.
37+
* It uses the {@link PropertyGenerator} for the given {@link ArbitraryIntrospector}.
3738
*/
3839
@API(since = "0.6.2", status = Status.MAINTAINED)
3940
public final class IntrospectedArbitraryGenerator implements ArbitraryGenerator {

fixture-monkey-api/src/main/java/com/navercorp/fixturemonkey/api/generator/JavaDefaultArbitraryGeneratorBuilder.java

Lines changed: 19 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,7 @@
3232
import com.navercorp.fixturemonkey.api.arbitrary.JavaTimeArbitraryGeneratorSet;
3333
import com.navercorp.fixturemonkey.api.arbitrary.JavaTypeArbitraryGeneratorSet;
3434
import com.navercorp.fixturemonkey.api.introspector.ArbitraryIntrospector;
35-
import com.navercorp.fixturemonkey.api.introspector.ArbitraryIntrospectorResult;
3635
import com.navercorp.fixturemonkey.api.introspector.ArrayIntrospector;
37-
import com.navercorp.fixturemonkey.api.introspector.BeanArbitraryIntrospector;
3836
import com.navercorp.fixturemonkey.api.introspector.BooleanIntrospector;
3937
import com.navercorp.fixturemonkey.api.introspector.EnumIntrospector;
4038
import com.navercorp.fixturemonkey.api.introspector.FunctionalInterfaceArbitraryIntrospector;
@@ -56,10 +54,15 @@
5654
import com.navercorp.fixturemonkey.api.matcher.AssignableTypeMatcher;
5755
import com.navercorp.fixturemonkey.api.matcher.MatcherOperator;
5856

57+
/**
58+
* This is a builder to generate the default {@link ArbitraryGenerator}.
59+
* It is for Java types. For example, primitives, collections, maps, etc.
60+
*/
5961
@SuppressWarnings("UnusedReturnValue")
60-
@API(since = "0.4.0", status = Status.MAINTAINED)
62+
@API(since = "0.4.0", status = Status.INTERNAL)
6163
public final class JavaDefaultArbitraryGeneratorBuilder {
62-
public static final ArbitraryIntrospector JAVA_INTROSPECTOR = new MatchArbitraryIntrospector(
64+
@Deprecated
65+
public static final ArbitraryIntrospector UNCONSTRAINT_JAVA_INTROSPECTOR = new MatchArbitraryIntrospector(
6366
Arrays.asList(
6467
new BooleanIntrospector(),
6568
new EnumIntrospector(),
@@ -88,30 +91,27 @@ public final class JavaDefaultArbitraryGeneratorBuilder {
8891
new SingleGenericCollectionIntrospector()
8992
)
9093
);
91-
public static final ArbitraryIntrospector DEFAULT_FALLBACK_INTROSPECTOR =
92-
(context) -> ArbitraryIntrospectorResult.NOT_INTROSPECTED;
9394

94-
private ArbitraryIntrospector priorityIntrospector = JavaDefaultArbitraryGeneratorBuilder.JAVA_INTROSPECTOR;
95+
/**
96+
* It contains the Java type, which cannot be constrained programmatically.
97+
* It may vary from time to time.
98+
*/
99+
private ArbitraryIntrospector unconstraintJavaIntrospector =
100+
JavaDefaultArbitraryGeneratorBuilder.UNCONSTRAINT_JAVA_INTROSPECTOR;
95101
private ArbitraryIntrospector containerIntrospector =
96102
JavaDefaultArbitraryGeneratorBuilder.JAVA_CONTAINER_INTROSPECTOR;
97-
private ArbitraryIntrospector objectIntrospector = BeanArbitraryIntrospector.INSTANCE;
98103

99-
private ArbitraryIntrospector fallbackIntrospector = DEFAULT_FALLBACK_INTROSPECTOR;
100104
private JavaTypeArbitraryGeneratorSet javaTypeArbitraryGeneratorSet = null;
101105
private JavaTimeArbitraryGeneratorSet javaTimeArbitraryGeneratorSet = null;
102106

103107
JavaDefaultArbitraryGeneratorBuilder() {
104108
}
105109

106-
public JavaDefaultArbitraryGeneratorBuilder priorityIntrospector(ArbitraryIntrospector priorityIntrospector) {
107-
this.priorityIntrospector = priorityIntrospector;
108-
return this;
109-
}
110-
111-
public JavaDefaultArbitraryGeneratorBuilder priorityIntrospector(
112-
UnaryOperator<ArbitraryIntrospector> priorityIntrospector
110+
@Deprecated
111+
public JavaDefaultArbitraryGeneratorBuilder unconstraintJavaIntrospector(
112+
UnaryOperator<ArbitraryIntrospector> unconstraintJavaIntrospectorOperator
113113
) {
114-
this.priorityIntrospector = priorityIntrospector.apply(this.priorityIntrospector);
114+
this.unconstraintJavaIntrospector = unconstraintJavaIntrospectorOperator.apply(unconstraintJavaIntrospector);
115115
return this;
116116
}
117117

@@ -127,30 +127,6 @@ public JavaDefaultArbitraryGeneratorBuilder containerIntrospector(
127127
return this;
128128
}
129129

130-
public JavaDefaultArbitraryGeneratorBuilder objectIntrospector(ArbitraryIntrospector objectIntrospector) {
131-
this.objectIntrospector = objectIntrospector;
132-
return this;
133-
}
134-
135-
public JavaDefaultArbitraryGeneratorBuilder objectIntrospector(
136-
UnaryOperator<ArbitraryIntrospector> objectIntrospector
137-
) {
138-
this.objectIntrospector = objectIntrospector.apply(this.objectIntrospector);
139-
return this;
140-
}
141-
142-
public JavaDefaultArbitraryGeneratorBuilder fallbackIntrospector(ArbitraryIntrospector fallbackIntrospector) {
143-
this.fallbackIntrospector = fallbackIntrospector;
144-
return this;
145-
}
146-
147-
public JavaDefaultArbitraryGeneratorBuilder fallbackIntrospector(
148-
UnaryOperator<ArbitraryIntrospector> fallbackIntrospector
149-
) {
150-
this.fallbackIntrospector = fallbackIntrospector.apply(this.fallbackIntrospector);
151-
return this;
152-
}
153-
154130
public JavaDefaultArbitraryGeneratorBuilder javaTypeArbitraryGeneratorSet(
155131
JavaTypeArbitraryGeneratorSet javaTypeArbitraryGeneratorSet
156132
) {
@@ -171,10 +147,8 @@ public IntrospectedArbitraryGenerator build() {
171147
Arrays.asList(
172148
new JavaArbitraryIntrospector(this.javaTypeArbitraryGeneratorSet),
173149
new JavaTimeArbitraryIntrospector(this.javaTimeArbitraryGeneratorSet),
174-
this.priorityIntrospector,
175-
this.containerIntrospector,
176-
this.objectIntrospector,
177-
this.fallbackIntrospector
150+
this.unconstraintJavaIntrospector,
151+
this.containerIntrospector
178152
)
179153
)
180154
);

fixture-monkey-api/src/main/java/com/navercorp/fixturemonkey/api/option/FixtureMonkeyOptions.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ public final class FixtureMonkeyOptions {
133133
context -> NOT_NULL_INJECT
134134
)
135135
);
136+
public static final ArbitraryIntrospector DEFAULT_FALLBACK_INTROSPECTOR =
137+
(context) -> ArbitraryIntrospectorResult.NOT_INTROSPECTED;
136138

137139
static {
138140
List<String> defaultJavaPackages = new ArrayList<>();

0 commit comments

Comments
 (0)