Skip to content

Commit 3d137d9

Browse files
committed
refactoring
1 parent a86cc61 commit 3d137d9

File tree

10 files changed

+33
-40
lines changed

10 files changed

+33
-40
lines changed

core/src/main/java/net/jbock/coerce/CoercionProvider.java

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
import com.squareup.javapoet.TypeName;
77
import net.jbock.coerce.collector.AbstractCollector;
88
import net.jbock.coerce.collector.DefaultCollector;
9+
import net.jbock.coerce.collectorabsent.mapperabsent.CollectorAbsentMapperAbsent;
10+
import net.jbock.coerce.collectorabsent.mapperpresent.CollectorAbsentMapperPresent;
911
import net.jbock.coerce.mapper.MapperType;
1012
import net.jbock.coerce.mapper.ReferenceMapperType;
11-
import net.jbock.coerce.mapperabsent.CollectorAbsentMapperAbsent;
12-
import net.jbock.coerce.mapperpresent.CollectorAbsentMapperPresent;
1313
import net.jbock.compiler.ParamName;
1414
import net.jbock.compiler.TypeTool;
1515

@@ -40,7 +40,8 @@ public static Coercion flagCoercion(ExecutableElement sourceMethod, ParamName pa
4040
name,
4141
FieldSpec.builder(TypeName.get(sourceMethod.getReturnType()), paramName.snake(), FINAL).build(),
4242
CodeBlock.of("$N", name),
43-
FLAG, paramName);
43+
FLAG,
44+
paramName);
4445
}
4546

4647
public static Coercion findCoercion(
@@ -57,30 +58,21 @@ public static Coercion findCoercion(
5758

5859
private Coercion run() {
5960
if (basicInfo.collectorClass().isPresent()) {
60-
return handleRepeatable();
61+
if (basicInfo.mapperClass().isPresent()) {
62+
return handleCollectorPresentMapperPresent(basicInfo.mapperClass().get());
63+
} else {
64+
return handleCollectorPresentMapperAbsent();
65+
}
6166
} else {
62-
return handleNotRepeatable();
67+
if (basicInfo.mapperClass().isPresent()) {
68+
return new CollectorAbsentMapperPresent(basicInfo, basicInfo.mapperClass().get()).findCoercion();
69+
} else {
70+
return new CollectorAbsentMapperAbsent(basicInfo).findCoercion();
71+
}
6372
}
6473
}
6574

66-
private Coercion handleNotRepeatable() {
67-
if (basicInfo.mapperClass().isPresent()) {
68-
return new CollectorAbsentMapperPresent(basicInfo, basicInfo.mapperClass().get()).findCoercion();
69-
} else {
70-
return new CollectorAbsentMapperAbsent(basicInfo).findCoercion();
71-
}
72-
}
73-
74-
private Coercion handleRepeatable() {
75-
if (basicInfo.mapperClass().isPresent()) {
76-
return handleRepeatableExplicitMapper(basicInfo.mapperClass().get());
77-
} else {
78-
return handleRepeatableAutoMapper();
79-
}
80-
}
81-
82-
83-
private Coercion handleRepeatableAutoMapper() {
75+
private Coercion handleCollectorPresentMapperAbsent() {
8476
AbstractCollector collectorInfo = collectorInfo();
8577
CodeBlock mapExpr = basicInfo.findMapExpr(collectorInfo.inputType())
8678
.orElseThrow(() -> basicInfo.asValidationException("Unknown parameter type. Define a custom mapper."));
@@ -90,7 +82,7 @@ private Coercion handleRepeatableAutoMapper() {
9082
return Coercion.getCoercion(basicInfo, Optional.of(collectorInfo), mapperType, extractExpr, constructorParamType, REPEATABLE);
9183
}
9284

93-
private Coercion handleRepeatableExplicitMapper(TypeElement mapperClass) {
85+
private Coercion handleCollectorPresentMapperPresent(TypeElement mapperClass) {
9486
AbstractCollector collectorInfo = collectorInfo();
9587
ReferenceMapperType mapperType = new MapperClassValidator(basicInfo, collectorInfo.inputType(), mapperClass).checkReturnType();
9688
Function<ParameterSpec, CodeBlock> extractExpr = p -> CodeBlock.of("$N", p);

core/src/main/java/net/jbock/coerce/SuppliedClassValidator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
import javax.lang.model.element.NestingKind;
77
import javax.lang.model.element.TypeElement;
88

9-
abstract class SuppliedClassValidator {
9+
public abstract class SuppliedClassValidator {
1010

11-
static void commonChecks(BasicInfo basicInfo, TypeElement classToCheck, String name) {
11+
public static void commonChecks(BasicInfo basicInfo, TypeElement classToCheck, String name) {
1212
if (classToCheck.getNestingKind() == NestingKind.MEMBER &&
1313
!classToCheck.getModifiers().contains(Modifier.STATIC)) {
1414
throw basicInfo.asValidationException(

core/src/main/java/net/jbock/coerce/CanonicalOptional.java renamed to core/src/main/java/net/jbock/coerce/collectorabsent/CanonicalOptional.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package net.jbock.coerce;
1+
package net.jbock.coerce.collectorabsent;
22

33
import com.squareup.javapoet.CodeBlock;
44
import com.squareup.javapoet.ParameterSpec;

core/src/main/java/net/jbock/coerce/MapperClassAnalyzer.java renamed to core/src/main/java/net/jbock/coerce/collectorabsent/MapperClassAnalyzer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
package net.jbock.coerce;
1+
package net.jbock.coerce.collectorabsent;
22

3+
import net.jbock.coerce.BasicInfo;
34
import net.jbock.coerce.either.Either;
45
import net.jbock.coerce.either.Left;
56
import net.jbock.coerce.either.Right;
@@ -22,7 +23,6 @@
2223
import static net.jbock.coerce.SuppliedClassValidator.commonChecks;
2324
import static net.jbock.coerce.reference.ReferenceTool.Expectation.MAPPER;
2425

25-
// for when there's no collector
2626
public final class MapperClassAnalyzer {
2727

2828
private final BasicInfo basicInfo;

core/src/main/java/net/jbock/coerce/MapperFailure.java renamed to core/src/main/java/net/jbock/coerce/collectorabsent/MapperFailure.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package net.jbock.coerce;
1+
package net.jbock.coerce.collectorabsent;
22

33
public class MapperFailure {
44

core/src/main/java/net/jbock/coerce/mapperabsent/Attempt.java renamed to core/src/main/java/net/jbock/coerce/collectorabsent/mapperabsent/Attempt.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package net.jbock.coerce.mapperabsent;
1+
package net.jbock.coerce.collectorabsent.mapperabsent;
22

33
import com.squareup.javapoet.CodeBlock;
44
import com.squareup.javapoet.ParameterSpec;

core/src/main/java/net/jbock/coerce/mapperabsent/CollectorAbsentMapperAbsent.java renamed to core/src/main/java/net/jbock/coerce/collectorabsent/mapperabsent/CollectorAbsentMapperAbsent.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
package net.jbock.coerce.mapperabsent;
1+
package net.jbock.coerce.collectorabsent.mapperabsent;
22

33
import com.squareup.javapoet.CodeBlock;
44
import net.jbock.coerce.BasicInfo;
5-
import net.jbock.coerce.CanonicalOptional;
5+
import net.jbock.coerce.collectorabsent.CanonicalOptional;
66
import net.jbock.coerce.Coercion;
77
import net.jbock.compiler.TypeTool;
88

@@ -18,7 +18,7 @@ public class CollectorAbsentMapperAbsent {
1818

1919
private final BasicInfo basicInfo;
2020

21-
CollectorAbsentMapperAbsent(BasicInfo basicInfo) {
21+
public CollectorAbsentMapperAbsent(BasicInfo basicInfo) {
2222
this.basicInfo = basicInfo;
2323
}
2424

core/src/main/java/net/jbock/coerce/mapperpresent/Attempt.java renamed to core/src/main/java/net/jbock/coerce/collectorabsent/mapperpresent/Attempt.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
package net.jbock.coerce.mapperpresent;
1+
package net.jbock.coerce.collectorabsent.mapperpresent;
22

33
import com.squareup.javapoet.CodeBlock;
44
import com.squareup.javapoet.ParameterSpec;
55
import net.jbock.coerce.BasicInfo;
66
import net.jbock.coerce.Coercion;
7-
import net.jbock.coerce.MapperClassAnalyzer;
8-
import net.jbock.coerce.MapperFailure;
7+
import net.jbock.coerce.collectorabsent.MapperClassAnalyzer;
8+
import net.jbock.coerce.collectorabsent.MapperFailure;
99
import net.jbock.coerce.ParameterType;
1010
import net.jbock.coerce.collector.AbstractCollector;
1111
import net.jbock.coerce.collector.DefaultCollector;

core/src/main/java/net/jbock/coerce/mapperpresent/CollectorAbsentMapperPresent.java renamed to core/src/main/java/net/jbock/coerce/collectorabsent/mapperpresent/CollectorAbsentMapperPresent.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
package net.jbock.coerce.mapperpresent;
1+
package net.jbock.coerce.collectorabsent.mapperpresent;
22

33
import com.squareup.javapoet.CodeBlock;
44
import net.jbock.coerce.BasicInfo;
5-
import net.jbock.coerce.CanonicalOptional;
5+
import net.jbock.coerce.collectorabsent.CanonicalOptional;
66
import net.jbock.coerce.Coercion;
77
import net.jbock.coerce.either.Either;
88
import net.jbock.coerce.either.Left;
@@ -24,7 +24,7 @@ public class CollectorAbsentMapperPresent {
2424
private final TypeElement mapperClass;
2525
private final BasicInfo basicInfo;
2626

27-
CollectorAbsentMapperPresent(BasicInfo basicInfo, TypeElement mapperClass) {
27+
public CollectorAbsentMapperPresent(BasicInfo basicInfo, TypeElement mapperClass) {
2828
this.mapperClass = mapperClass;
2929
this.basicInfo = basicInfo;
3030
}

core/src/test/java/net/jbock/coerce/CanonicalOptionalTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package net.jbock.coerce;
22

3+
import net.jbock.coerce.collectorabsent.CanonicalOptional;
34
import net.jbock.compiler.EvaluatingProcessor;
45
import net.jbock.compiler.TypeTool;
56
import org.junit.jupiter.api.Test;

0 commit comments

Comments
 (0)