Skip to content

Commit bb3d1d1

Browse files
committed
Polish
1 parent d7e4064 commit bb3d1d1

File tree

9 files changed

+111
-94
lines changed

9 files changed

+111
-94
lines changed

integrationtest/src/test/java/org/mapstruct/itest/tests/FullFeatureCompilationExclusionCliEnhancer.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public Collection<String> getAdditionalCommandLineArguments(ProcessorTest.Proces
3434
additionalExcludes.add( "org/mapstruct/ap/test/injectionstrategy/cdi/**/*.java" );
3535
additionalExcludes.add( "org/mapstruct/ap/test/injectionstrategy/jakarta_cdi/**/*.java" );
3636
additionalExcludes.add( "org/mapstruct/ap/test/annotatewith/deprecated/jdk11/*.java" );
37+
additionalExcludes.add( "org/mapstruct/ap/test/**/jdk21/*.java" );
3738
if ( processorType == ProcessorTest.ProcessorType.ECLIPSE_JDT ) {
3839
additionalExcludes.add(
3940
"org/mapstruct/ap/test/selection/methodgenerics/wildcards/LifecycleIntersectionMapper.java" );
@@ -42,9 +43,15 @@ public Collection<String> getAdditionalCommandLineArguments(ProcessorTest.Proces
4243
case JAVA_9:
4344
// TODO find out why this fails:
4445
additionalExcludes.add( "org/mapstruct/ap/test/collection/wildcard/BeanMapper.java" );
46+
additionalExcludes.add( "org/mapstruct/ap/test/**/jdk21/*.java" );
4547
break;
4648
case JAVA_11:
4749
additionalExcludes.add( "org/mapstruct/ap/test/**/spring/**/*.java" );
50+
additionalExcludes.add( "org/mapstruct/ap/test/**/jdk21/*.java" );
51+
break;
52+
case JAVA_17:
53+
additionalExcludes.add( "org/mapstruct/ap/test/**/jdk21/*.java" );
54+
break;
4855
default:
4956
}
5057

integrationtest/src/test/resources/fullFeatureTest/pom.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
<exclude>**/*Test.java</exclude>
4848
<exclude>**/testutil/**/*.java</exclude>
4949
<exclude>**/spi/**/*.java</exclude>
50-
<exclude>**/collection/defaultimplementation/*.java</exclude>
5150
<exclude>${additionalExclude0}</exclude>
5251
<exclude>${additionalExclude1}</exclude>
5352
<exclude>${additionalExclude2}</exclude>
@@ -60,6 +59,8 @@
6059
<exclude>${additionalExclude9}</exclude>
6160
<exclude>${additionalExclude10}</exclude>
6261
<exclude>${additionalExclude11}</exclude>
62+
<exclude>${additionalExclude12}</exclude>
63+
<exclude>${additionalExclude13}</exclude>
6364
</excludes>
6465
</configuration>
6566
</plugin>

processor/src/main/java/org/mapstruct/ap/internal/model/common/TypeFactory.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,14 @@
3838
import javax.lang.model.type.TypeMirror;
3939
import javax.lang.model.type.TypeVariable;
4040
import javax.lang.model.type.WildcardType;
41-
import org.mapstruct.ap.internal.util.JavaCollectionConstants;
41+
4242
import org.mapstruct.ap.internal.gem.BuilderGem;
4343
import org.mapstruct.ap.internal.util.AnnotationProcessingException;
4444
import org.mapstruct.ap.internal.util.Collections;
4545
import org.mapstruct.ap.internal.util.ElementUtils;
4646
import org.mapstruct.ap.internal.util.Extractor;
4747
import org.mapstruct.ap.internal.util.FormattingMessager;
48+
import org.mapstruct.ap.internal.util.JavaCollectionConstants;
4849
import org.mapstruct.ap.internal.util.JavaStreamConstants;
4950
import org.mapstruct.ap.internal.util.Message;
5051
import org.mapstruct.ap.internal.util.NativeTypes;

processor/src/test/java/org/mapstruct/ap/test/collection/defaultimplementation/DefaultCollectionImplementationTest.java

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414
import java.util.Map;
1515
import java.util.NavigableMap;
1616
import java.util.NavigableSet;
17-
import java.util.SequencedMap;
18-
import java.util.SequencedSet;
1917
import java.util.Set;
2018
import java.util.SortedMap;
2119
import java.util.SortedSet;
@@ -79,15 +77,6 @@ public void shouldUseDefaultImplementationForNavigableMap() {
7977
assertResultMap( target );
8078
}
8179

82-
@ProcessorTest
83-
@IssueKey("3420")
84-
public void shouldUseDefaultImplementationForSequencedMap() {
85-
SequencedMap<String, TargetFoo> target =
86-
SourceTargetMapper.INSTANCE.sourceFooMapToTargetFooSequencedMap( createSourceFooMap() );
87-
88-
assertResultMap( target );
89-
}
90-
9180
@ProcessorTest
9281
@IssueKey("6")
9382
public void shouldUseDefaultImplementationForSortedMap() {
@@ -141,15 +130,6 @@ public void shouldUseDefaultImplementationForSet() {
141130
assertResultList( target );
142131
}
143132

144-
@ProcessorTest
145-
@IssueKey("3420")
146-
public void shouldUseDefaultImplementationForSequencedSet() {
147-
SequencedSet<TargetFoo> target =
148-
SourceTargetMapper.INSTANCE.sourceFoosToTargetFooSequencedSet( createSourceFooList() );
149-
150-
assertResultList( target );
151-
}
152-
153133
@ProcessorTest
154134
@IssueKey("6")
155135
public void shouldUseDefaultImplementationForSortedSet() {

processor/src/test/java/org/mapstruct/ap/test/collection/defaultimplementation/SourceTargetMapper.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
import java.util.Map;
1111
import java.util.NavigableMap;
1212
import java.util.NavigableSet;
13-
import java.util.SequencedMap;
14-
import java.util.SequencedSet;
1513
import java.util.Set;
1614
import java.util.SortedMap;
1715
import java.util.SortedSet;
@@ -47,16 +45,12 @@ void sourceFoosToTargetFoosUsingTargetParameter(@MappingTarget List<TargetFoo> t
4745
Iterable<TargetFoo> sourceFoosToTargetFoosUsingTargetParameterAndReturn(Iterable<SourceFoo> sourceFoos,
4846
@MappingTarget List<TargetFoo> targetFoos);
4947

50-
SequencedSet<TargetFoo> sourceFoosToTargetFooSequencedSet(Collection<SourceFoo> foos);
51-
5248
SortedSet<TargetFoo> sourceFoosToTargetFooSortedSet(Collection<SourceFoo> foos);
5349

5450
NavigableSet<TargetFoo> sourceFoosToTargetFooNavigableSet(Collection<SourceFoo> foos);
5551

5652
Map<String, TargetFoo> sourceFooMapToTargetFooMap(Map<Long, SourceFoo> foos);
5753

58-
SequencedMap<String, TargetFoo> sourceFooMapToTargetFooSequencedMap(Map<Long, SourceFoo> foos);
59-
6054
SortedMap<String, TargetFoo> sourceFooMapToTargetFooSortedMap(Map<Long, SourceFoo> foos);
6155

6256
NavigableMap<String, TargetFoo> sourceFooMapToTargetFooNavigableMap(Map<Long, SourceFoo> foos);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
/*
2+
* Copyright MapStruct Authors.
3+
*
4+
* Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
5+
*/
6+
package org.mapstruct.ap.test.collection.defaultimplementation.jdk21;
7+
8+
import java.util.Arrays;
9+
import java.util.HashMap;
10+
import java.util.List;
11+
import java.util.Map;
12+
import java.util.SequencedMap;
13+
import java.util.SequencedSet;
14+
15+
import org.mapstruct.ap.test.collection.defaultimplementation.Source;
16+
import org.mapstruct.ap.test.collection.defaultimplementation.SourceFoo;
17+
import org.mapstruct.ap.test.collection.defaultimplementation.Target;
18+
import org.mapstruct.ap.test.collection.defaultimplementation.TargetFoo;
19+
import org.mapstruct.ap.testutil.IssueKey;
20+
import org.mapstruct.ap.testutil.ProcessorTest;
21+
import org.mapstruct.ap.testutil.WithClasses;
22+
23+
import static org.assertj.core.api.Assertions.assertThat;
24+
import static org.assertj.core.api.Assertions.entry;
25+
26+
@WithClasses({
27+
Source.class,
28+
Target.class,
29+
SourceFoo.class,
30+
TargetFoo.class,
31+
SequencedCollectionsMapper.class
32+
})
33+
@IssueKey("3420")
34+
class SequencedCollectionsDefaultImplementationTest {
35+
36+
@ProcessorTest
37+
public void shouldUseDefaultImplementationForSequencedMap() {
38+
SequencedMap<String, TargetFoo> target =
39+
SequencedCollectionsMapper.INSTANCE.sourceFooMapToTargetFooSequencedMap( createSourceFooMap() );
40+
41+
assertResultMap( target );
42+
}
43+
44+
@ProcessorTest
45+
public void shouldUseDefaultImplementationForSequencedSet() {
46+
SequencedSet<TargetFoo> target =
47+
SequencedCollectionsMapper.INSTANCE.sourceFoosToTargetFooSequencedSet( createSourceFooList() );
48+
49+
assertResultList( target );
50+
}
51+
52+
private void assertResultList(Iterable<TargetFoo> fooIterable) {
53+
assertThat( fooIterable ).isNotNull();
54+
assertThat( fooIterable ).containsOnly( new TargetFoo( "Bob" ), new TargetFoo( "Alice" ) );
55+
}
56+
57+
private void assertResultMap(Map<String, TargetFoo> result) {
58+
assertThat( result ).isNotNull();
59+
assertThat( result ).hasSize( 2 );
60+
assertThat( result ).contains( entry( "1", new TargetFoo( "Bob" ) ), entry( "2", new TargetFoo( "Alice" ) ) );
61+
}
62+
63+
private Map<Long, SourceFoo> createSourceFooMap() {
64+
Map<Long, SourceFoo> map = new HashMap<>();
65+
map.put( 1L, new SourceFoo( "Bob" ) );
66+
map.put( 2L, new SourceFoo( "Alice" ) );
67+
68+
return map;
69+
}
70+
71+
private List<SourceFoo> createSourceFooList() {
72+
return Arrays.asList( new SourceFoo( "Bob" ), new SourceFoo( "Alice" ) );
73+
}
74+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* Copyright MapStruct Authors.
3+
*
4+
* Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
5+
*/
6+
package org.mapstruct.ap.test.collection.defaultimplementation.jdk21;
7+
8+
import java.util.Collection;
9+
import java.util.Map;
10+
import java.util.SequencedMap;
11+
import java.util.SequencedSet;
12+
13+
import org.mapstruct.Mapper;
14+
import org.mapstruct.ap.test.collection.defaultimplementation.SourceFoo;
15+
import org.mapstruct.ap.test.collection.defaultimplementation.TargetFoo;
16+
import org.mapstruct.factory.Mappers;
17+
18+
@Mapper
19+
public interface SequencedCollectionsMapper {
20+
21+
SequencedCollectionsMapper INSTANCE = Mappers.getMapper( SequencedCollectionsMapper.class );
22+
23+
SequencedSet<TargetFoo> sourceFoosToTargetFooSequencedSet(Collection<SourceFoo> foos);
24+
25+
SequencedMap<String, TargetFoo> sourceFooMapToTargetFooSequencedMap(Map<Long, SourceFoo> foos);
26+
}

processor/src/test/resources/fixtures/21/org/mapstruct/ap/test/collection/defaultimplementation/SourceTargetMapperImpl.java

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
import java.util.Map;
1414
import java.util.NavigableMap;
1515
import java.util.NavigableSet;
16-
import java.util.SequencedMap;
17-
import java.util.SequencedSet;
1816
import java.util.Set;
1917
import java.util.SortedMap;
2018
import java.util.SortedSet;
@@ -146,20 +144,6 @@ public Iterable<TargetFoo> sourceFoosToTargetFoosUsingTargetParameterAndReturn(I
146144
return targetFoos;
147145
}
148146

149-
@Override
150-
public SequencedSet<TargetFoo> sourceFoosToTargetFooSequencedSet(Collection<SourceFoo> foos) {
151-
if ( foos == null ) {
152-
return null;
153-
}
154-
155-
SequencedSet<TargetFoo> sequencedSet = LinkedHashSet.newLinkedHashSet( foos.size() );
156-
for ( SourceFoo sourceFoo : foos ) {
157-
sequencedSet.add( sourceFooToTargetFoo( sourceFoo ) );
158-
}
159-
160-
return sequencedSet;
161-
}
162-
163147
@Override
164148
public SortedSet<TargetFoo> sourceFoosToTargetFooSortedSet(Collection<SourceFoo> foos) {
165149
if ( foos == null ) {
@@ -205,23 +189,6 @@ public Map<String, TargetFoo> sourceFooMapToTargetFooMap(Map<Long, SourceFoo> fo
205189
return map;
206190
}
207191

208-
@Override
209-
public SequencedMap<String, TargetFoo> sourceFooMapToTargetFooSequencedMap(Map<Long, SourceFoo> foos) {
210-
if ( foos == null ) {
211-
return null;
212-
}
213-
214-
SequencedMap<String, TargetFoo> sequencedMap = LinkedHashMap.newLinkedHashMap( foos.size() );
215-
216-
for ( java.util.Map.Entry<Long, SourceFoo> entry : foos.entrySet() ) {
217-
String key = String.valueOf( entry.getKey() );
218-
TargetFoo value = sourceFooToTargetFoo( entry.getValue() );
219-
sequencedMap.put( key, value );
220-
}
221-
222-
return sequencedMap;
223-
}
224-
225192
@Override
226193
public SortedMap<String, TargetFoo> sourceFooMapToTargetFooSortedMap(Map<Long, SourceFoo> foos) {
227194
if ( foos == null ) {

processor/src/test/resources/fixtures/org/mapstruct/ap/test/collection/defaultimplementation/SourceTargetMapperImpl.java

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
import java.util.Map;
1414
import java.util.NavigableMap;
1515
import java.util.NavigableSet;
16-
import java.util.SequencedMap;
17-
import java.util.SequencedSet;
1816
import java.util.Set;
1917
import java.util.SortedMap;
2018
import java.util.SortedSet;
@@ -146,20 +144,6 @@ public Iterable<TargetFoo> sourceFoosToTargetFoosUsingTargetParameterAndReturn(I
146144
return targetFoos;
147145
}
148146

149-
@Override
150-
public SequencedSet<TargetFoo> sourceFoosToTargetFooSequencedSet(Collection<SourceFoo> foos) {
151-
if ( foos == null ) {
152-
return null;
153-
}
154-
155-
SequencedSet<TargetFoo> sequencedSet = new LinkedHashSet<TargetFoo>( Math.max( (int) ( foos.size() / .75f ) + 1, 16 ) );
156-
for ( SourceFoo sourceFoo : foos ) {
157-
sequencedSet.add( sourceFooToTargetFoo( sourceFoo ) );
158-
}
159-
160-
return sequencedSet;
161-
}
162-
163147
@Override
164148
public SortedSet<TargetFoo> sourceFoosToTargetFooSortedSet(Collection<SourceFoo> foos) {
165149
if ( foos == null ) {
@@ -205,23 +189,6 @@ public Map<String, TargetFoo> sourceFooMapToTargetFooMap(Map<Long, SourceFoo> fo
205189
return map;
206190
}
207191

208-
@Override
209-
public SequencedMap<String, TargetFoo> sourceFooMapToTargetFooSequencedMap(Map<Long, SourceFoo> foos) {
210-
if ( foos == null ) {
211-
return null;
212-
}
213-
214-
SequencedMap<String, TargetFoo> sequencedMap = new LinkedHashMap<String, TargetFoo>( Math.max( (int) ( foos.size() / .75f ) + 1, 16 ) );
215-
216-
for ( java.util.Map.Entry<Long, SourceFoo> entry : foos.entrySet() ) {
217-
String key = String.valueOf( entry.getKey() );
218-
TargetFoo value = sourceFooToTargetFoo( entry.getValue() );
219-
sequencedMap.put( key, value );
220-
}
221-
222-
return sequencedMap;
223-
}
224-
225192
@Override
226193
public SortedMap<String, TargetFoo> sourceFooMapToTargetFooSortedMap(Map<Long, SourceFoo> foos) {
227194
if ( foos == null ) {

0 commit comments

Comments
 (0)