Skip to content

Commit ec378fb

Browse files
authored
Merge pull request #411 from domaframework/remove-duplicated-code
Remove duplicated code about the peek method
2 parents efe5535 + c2fc1a6 commit ec378fb

File tree

7 files changed

+21
-38
lines changed

7 files changed

+21
-38
lines changed

doma-core/src/main/java/org/seasar/doma/jdbc/criteria/statement/AbstractStatement.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import org.seasar.doma.message.Message;
1313

1414
public abstract class AbstractStatement<RESULT, STMT extends AbstractStatement<RESULT, STMT>>
15-
implements Statement<RESULT>, Peekable<STMT> {
15+
implements Statement<RESULT> {
1616

1717
protected static final String EXECUTE_METHOD_NAME = "execute";
1818
protected static final Method EXECUTE_METHOD;
@@ -46,8 +46,7 @@ public Sql<?> asSql() {
4646
@Override
4747
@SuppressWarnings("unchecked")
4848
public STMT peek(Consumer<Sql<?>> consumer) {
49-
consumer.accept(asSql());
50-
return (STMT) this;
49+
return (STMT) Statement.super.peek(consumer);
5150
}
5251

5352
protected Function<String, String> createCommenter(String comment) {
Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,17 @@
11
package org.seasar.doma.jdbc.criteria.statement;
22

3+
import java.util.Objects;
4+
import java.util.function.Consumer;
35
import org.seasar.doma.jdbc.Sql;
46

5-
public interface Buildable {
7+
public interface Buildable<BUILDABLE extends Buildable<BUILDABLE>> {
68

79
Sql<?> asSql();
10+
11+
@SuppressWarnings("unchecked")
12+
default BUILDABLE peek(Consumer<Sql<?>> consumer) {
13+
Objects.requireNonNull(consumer);
14+
consumer.accept(asSql());
15+
return (BUILDABLE) this;
16+
}
817
}
Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
11
package org.seasar.doma.jdbc.criteria.statement;
22

3-
import java.util.List;
43
import java.util.function.Consumer;
54
import java.util.function.Function;
65
import java.util.stream.Collector;
76
import java.util.stream.Stream;
87
import org.seasar.doma.jdbc.Sql;
98

10-
public interface Collectable<ELEMENT> extends Statement<List<ELEMENT>>, Listable<ELEMENT> {
9+
public interface Collectable<ELEMENT> extends Listable<ELEMENT> {
1110

1211
<RESULT> RESULT mapStream(Function<Stream<ELEMENT>, RESULT> streamMapper);
1312

1413
<RESULT> RESULT collect(Collector<ELEMENT, ?, RESULT> collector);
1514

16-
default Collectable<ELEMENT> peek(Consumer<Sql<?>> consumer) {
17-
consumer.accept(asSql());
18-
return this;
19-
}
15+
@Override
16+
Collectable<ELEMENT> peek(Consumer<Sql<?>> consumer);
2017
}

doma-core/src/main/java/org/seasar/doma/jdbc/criteria/statement/Listable.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@ default ELEMENT fetchOne() {
2424
return fetchOptional().orElse(null);
2525
}
2626

27-
default Listable<ELEMENT> peek(Consumer<Sql<?>> consumer) {
28-
consumer.accept(asSql());
29-
return this;
30-
}
27+
@Override
28+
Listable<ELEMENT> peek(Consumer<Sql<?>> consumer);
3129
}
Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,8 @@
11
package org.seasar.doma.jdbc.criteria.statement;
22

3-
import java.util.function.Consumer;
43
import java.util.function.Function;
5-
import org.seasar.doma.jdbc.Sql;
64

7-
public interface Mappable<ELEMENT> extends SetOperand<ELEMENT>, Buildable {
5+
public interface Mappable<ELEMENT> extends SetOperand<ELEMENT>, Buildable<Mappable<ELEMENT>> {
86

97
Collectable<ELEMENT> map(Function<Row, ELEMENT> mapper);
10-
11-
default Mappable<ELEMENT> peek(Consumer<Sql<?>> consumer) {
12-
consumer.accept(asSql());
13-
return this;
14-
}
158
}

doma-core/src/main/java/org/seasar/doma/jdbc/criteria/statement/Peekable.java

Lines changed: 0 additions & 13 deletions
This file was deleted.

doma-core/src/main/java/org/seasar/doma/jdbc/criteria/statement/Statement.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
import java.util.function.Consumer;
44
import org.seasar.doma.jdbc.Sql;
55

6-
public interface Statement<RESULT> extends Buildable {
6+
public interface Statement<RESULT> extends Buildable<Statement<RESULT>> {
77

88
RESULT execute();
99

10+
@Override
1011
default Statement<RESULT> peek(Consumer<Sql<?>> consumer) {
11-
consumer.accept(asSql());
12-
return this;
12+
return Buildable.super.peek(consumer);
1313
}
1414
}

0 commit comments

Comments
 (0)