Skip to content

Commit ab7a3ac

Browse files
committed
spring-projects#282 - Get rid of Lombok annotations in new code
1 parent 37b2dbf commit ab7a3ac

File tree

4 files changed

+124
-19
lines changed

4 files changed

+124
-19
lines changed

Diff for: src/main/java/org/springframework/data/r2dbc/repository/query/ParameterMetadata.java

+65-10
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,40 @@
1515
*/
1616
package org.springframework.data.r2dbc.repository.query;
1717

18-
import lombok.AllArgsConstructor;
19-
import lombok.Builder;
20-
import lombok.NonNull;
21-
2218
import org.springframework.data.repository.query.parser.Part;
2319
import org.springframework.lang.Nullable;
2420
import org.springframework.util.Assert;
2521

2622
/**
2723
* Helper class for holding information about query parameter and preparing query parameter value.
2824
*/
29-
@Builder
30-
@AllArgsConstructor
3125
class ParameterMetadata {
32-
@Nullable private final String name;
33-
@NonNull private final Class<?> type;
34-
@NonNull private final Part.Type partType;
26+
private final String name;
27+
private final Class<?> type;
28+
private final Part.Type partType;
3529
private final boolean isNullParameter;
36-
@NonNull private final LikeEscaper likeEscaper;
30+
private final LikeEscaper likeEscaper;
31+
32+
private ParameterMetadata(Builder builder) {
33+
Assert.notNull(builder.type, "Parameter type must not be null");
34+
Assert.notNull(builder.partType, "Parameter part type must not be null");
35+
Assert.notNull(builder.likeEscaper, "Like escaper must not be null");
36+
37+
this.name = builder.name;
38+
this.type = builder.type;
39+
this.partType = builder.partType;
40+
this.isNullParameter = builder.isNullParameter;
41+
this.likeEscaper = builder.likeEscaper;
42+
}
43+
44+
/**
45+
* Creates new instance of {@link Builder}.
46+
*
47+
* @return new instance of {@link Builder}
48+
*/
49+
public static Builder builder() {
50+
return new Builder();
51+
}
3752

3853
/**
3954
* Prepares parameter value before it's actually bound to the query.
@@ -76,4 +91,44 @@ public Class<?> getType() {
7691
public boolean isIsNullParameter() {
7792
return isNullParameter;
7893
}
94+
95+
/**
96+
* Parameter metadata builder.
97+
*/
98+
public static class Builder {
99+
private String name;
100+
private Class<?> type;
101+
private Part.Type partType;
102+
private boolean isNullParameter;
103+
private LikeEscaper likeEscaper;
104+
105+
public Builder name(String name) {
106+
this.name = name;
107+
return this;
108+
}
109+
110+
public Builder type(Class<?> type) {
111+
this.type = type;
112+
return this;
113+
}
114+
115+
public Builder partType(Part.Type partType) {
116+
this.partType = partType;
117+
return this;
118+
}
119+
120+
public Builder isNullParameter(boolean isNullParameter) {
121+
this.isNullParameter = isNullParameter;
122+
return this;
123+
}
124+
125+
public Builder likeEscaper(LikeEscaper likeEscaper) {
126+
this.likeEscaper = likeEscaper;
127+
return this;
128+
}
129+
130+
public ParameterMetadata build() {
131+
return new ParameterMetadata(this);
132+
}
133+
}
79134
}

Diff for: src/main/java/org/springframework/data/r2dbc/repository/query/ParameterMetadataProvider.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,13 @@ public ParameterMetadata next(Part part) {
8787
Assert.isTrue(bindableParameterIterator.hasNext(),
8888
() -> String.format("No parameter available for part %s.", part));
8989
Parameter parameter = bindableParameterIterator.next();
90-
ParameterMetadata metadata = ParameterMetadata.builder().type(parameter.getType()).partType(part.getType())
90+
ParameterMetadata metadata = ParameterMetadata.builder()
91+
.type(parameter.getType())
92+
.partType(part.getType())
9193
.name(getParameterName(parameter, part.getProperty().getSegment()))
9294
.isNullParameter(getParameterValue() == null && Part.Type.SIMPLE_PROPERTY.equals(part.getType()))
93-
.likeEscaper(likeEscaper).build();
95+
.likeEscaper(likeEscaper)
96+
.build();
9497
parameterMetadata.add(metadata);
9598
return metadata;
9699
}
@@ -99,7 +102,6 @@ public ParameterMetadata getParameterMetadata(int index) {
99102
return parameterMetadata.get(index);
100103
}
101104

102-
@Nullable
103105
private String getParameterName(Parameter parameter, String defaultName) {
104106
if (parameter.isExplicitlyNamed()) {
105107
return parameter.getName().orElseThrow(() -> new IllegalArgumentException("Parameter needs to be named"));

Diff for: src/main/java/org/springframework/data/r2dbc/repository/query/PartTreeR2dbcQuery.java

+6-4
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616
package org.springframework.data.r2dbc.repository.query;
1717

18-
import lombok.Setter;
18+
import java.util.Collection;
1919

2020
import org.springframework.data.domain.Sort;
2121
import org.springframework.data.r2dbc.convert.R2dbcConverter;
@@ -28,8 +28,6 @@
2828
import org.springframework.data.repository.query.parser.PartTree;
2929
import org.springframework.data.util.Streamable;
3030

31-
import java.util.Collection;
32-
3331
/**
3432
* An {@link AbstractR2dbcQuery} implementation based on a {@link PartTree}.
3533
* <p>
@@ -43,7 +41,7 @@ public class PartTreeR2dbcQuery extends AbstractR2dbcQuery {
4341
private final RelationalParameters parameters;
4442
private final PartTree tree;
4543

46-
@Setter private LikeEscaper likeEscaper = LikeEscaper.DEFAULT;
44+
private LikeEscaper likeEscaper = LikeEscaper.DEFAULT;
4745

4846
/**
4947
* Creates new instance of this class with the given {@link R2dbcQueryMethod}, {@link DatabaseClient},
@@ -69,6 +67,10 @@ public PartTreeR2dbcQuery(R2dbcQueryMethod method, DatabaseClient databaseClient
6967
}
7068
}
7169

70+
public void setLikeEscaper(LikeEscaper likeEscaper) {
71+
this.likeEscaper = likeEscaper;
72+
}
73+
7274
/**
7375
* Creates new {@link BindableQuery} for the given {@link RelationalParameterAccessor}.
7476
*

Diff for: src/test/java/org/springframework/data/r2dbc/repository/query/PartTreeR2dbcQueryIntegrationTests.java

+48-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
import io.r2dbc.spi.ConnectionFactory;
2222
import io.r2dbc.spi.ConnectionFactoryMetadata;
23-
import lombok.Data;
2423
import reactor.core.publisher.Flux;
2524
import reactor.core.publisher.Mono;
2625

@@ -618,13 +617,60 @@ private interface UserRepository extends Repository<User, Long> {
618617
}
619618

620619
@Table("users")
621-
@Data
622620
private static class User {
623621
@Id private Long id;
624622
private String firstName;
625623
private String lastName;
626624
private Date dateOfBirth;
627625
private Integer age;
628626
private Boolean active;
627+
628+
public Long getId() {
629+
return id;
630+
}
631+
632+
public void setId(Long id) {
633+
this.id = id;
634+
}
635+
636+
public String getFirstName() {
637+
return firstName;
638+
}
639+
640+
public void setFirstName(String firstName) {
641+
this.firstName = firstName;
642+
}
643+
644+
public String getLastName() {
645+
return lastName;
646+
}
647+
648+
public void setLastName(String lastName) {
649+
this.lastName = lastName;
650+
}
651+
652+
public Date getDateOfBirth() {
653+
return dateOfBirth;
654+
}
655+
656+
public void setDateOfBirth(Date dateOfBirth) {
657+
this.dateOfBirth = dateOfBirth;
658+
}
659+
660+
public Integer getAge() {
661+
return age;
662+
}
663+
664+
public void setAge(Integer age) {
665+
this.age = age;
666+
}
667+
668+
public Boolean getActive() {
669+
return active;
670+
}
671+
672+
public void setActive(Boolean active) {
673+
this.active = active;
674+
}
629675
}
630676
}

0 commit comments

Comments
 (0)