From f822000f92a640f0eb2b517e8b4c9bd9a2241f1d Mon Sep 17 00:00:00 2001 From: Andreas Gudian Date: Wed, 21 Sep 2016 22:30:47 +0200 Subject: [PATCH] #853 Minor adjustments after review --- .../internal/model/IterableMappingMethod.java | 4 ++-- .../ap/internal/model/common/Type.java | 5 +---- .../test/collection/CollectionMappingTest.java | 18 +++++++++--------- ...onGenericList.java => StringArrayList.java} | 2 +- .../mapstruct/ap/test/collection/Target.java | 6 +++--- 5 files changed, 16 insertions(+), 19 deletions(-) rename processor/src/test/java/org/mapstruct/ap/test/collection/{TestNonGenericList.java => StringArrayList.java} (94%) diff --git a/processor/src/main/java/org/mapstruct/ap/internal/model/IterableMappingMethod.java b/processor/src/main/java/org/mapstruct/ap/internal/model/IterableMappingMethod.java index d09217c24..e2f49763d 100644 --- a/processor/src/main/java/org/mapstruct/ap/internal/model/IterableMappingMethod.java +++ b/processor/src/main/java/org/mapstruct/ap/internal/model/IterableMappingMethod.java @@ -253,7 +253,7 @@ public class IterableMappingMethod extends MappingMethod { return sourceParameterType.getComponentType(); } else { - return sourceParameterType.determineTypeArguments( Iterable.class ).get( 0 ).getTypeBound(); + return first( sourceParameterType.determineTypeArguments( Iterable.class ) ).getTypeBound(); } } @@ -262,7 +262,7 @@ public class IterableMappingMethod extends MappingMethod { return getResultType().getComponentType(); } else { - return getResultType().determineTypeArguments( Iterable.class ).get( 0 ); + return first( getResultType().determineTypeArguments( Iterable.class ) ); } } diff --git a/processor/src/main/java/org/mapstruct/ap/internal/model/common/Type.java b/processor/src/main/java/org/mapstruct/ap/internal/model/common/Type.java index c0a444d85..1dfdf5f33 100644 --- a/processor/src/main/java/org/mapstruct/ap/internal/model/common/Type.java +++ b/processor/src/main/java/org/mapstruct/ap/internal/model/common/Type.java @@ -798,10 +798,7 @@ public class Type extends ModelElement implements Comparable { * @return a list of type arguments or null, if superclass was not found */ public List determineTypeArguments(Class superclass) { - TypeMirror superclassMirror = - typeUtils.erasure( elementUtils.getTypeElement( superclass.getCanonicalName() ).asType() ); - if ( typeUtils.isAssignable( superclassMirror, typeMirror ) - && typeUtils.isAssignable( typeMirror, superclassMirror ) ) { + if ( qualifiedName.equals( superclass.getName() ) ) { return getTypeParameters(); } diff --git a/processor/src/test/java/org/mapstruct/ap/test/collection/CollectionMappingTest.java b/processor/src/test/java/org/mapstruct/ap/test/collection/CollectionMappingTest.java index e7b68e5c5..a39112c1b 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/collection/CollectionMappingTest.java +++ b/processor/src/test/java/org/mapstruct/ap/test/collection/CollectionMappingTest.java @@ -19,6 +19,7 @@ package org.mapstruct.ap.test.collection; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.entry; import java.util.ArrayList; import java.util.Arrays; @@ -29,7 +30,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import org.fest.assertions.MapAssert; import org.junit.Test; import org.junit.runner.RunWith; import org.mapstruct.ap.testutil.IssueKey; @@ -37,7 +37,7 @@ import org.mapstruct.ap.testutil.WithClasses; import org.mapstruct.ap.testutil.runner.AnnotationProcessorTestRunner; @WithClasses({ Source.class, Target.class, Colour.class, SourceTargetMapper.class, TestList.class, TestMap.class, - TestNonGenericList.class, StringToLongMap.class }) + StringArrayList.class, StringToLongMap.class }) @RunWith(AnnotationProcessorTestRunner.class) public class CollectionMappingTest { @@ -393,7 +393,7 @@ public class CollectionMappingTest { } @Test - @IssueKey("TODO") + @IssueKey("853") public void shouldMapNonGenericList() { Source source = new Source(); source.setStringList3( new ArrayList( Arrays.asList( "Bob", "Alice" ) ) ); @@ -405,7 +405,7 @@ public class CollectionMappingTest { // Inverse direction Target newTarget = new Target(); - TestNonGenericList nonGenericStringList = new TestNonGenericList(); + StringArrayList nonGenericStringList = new StringArrayList(); nonGenericStringList.addAll( Arrays.asList( "Bill", "Bob" ) ); newTarget.setNonGenericStringList( nonGenericStringList ); @@ -416,7 +416,7 @@ public class CollectionMappingTest { } @Test - @IssueKey("TODO") + @IssueKey("853") public void shouldMapNonGenericMap() { Source source = new Source(); Map map = new HashMap(); @@ -427,8 +427,7 @@ public class CollectionMappingTest { Target target = SourceTargetMapper.INSTANCE.sourceToTarget( source ); assertThat( target ).isNotNull(); - assertThat( target.getNonGenericMapStringtoLong() ).includes( MapAssert.entry( "Bob", 123L ), - MapAssert.entry( "Alice", 456L ) ); + assertThat( target.getNonGenericMapStringtoLong() ).contains( entry( "Bob", 123L ), entry( "Alice", 456L ) ); // Inverse direction Target newTarget = new Target(); @@ -440,7 +439,8 @@ public class CollectionMappingTest { Source mappedSource = SourceTargetMapper.INSTANCE.targetToSource( newTarget ); assertThat( mappedSource ).isNotNull(); - assertThat( mappedSource.getStringLongMapForNonGeneric() ).includes( MapAssert.entry( "Blue", 321L ), - MapAssert.entry( "Green", 654L ) ); + assertThat( mappedSource.getStringLongMapForNonGeneric() ).contains( + entry( "Blue", 321L ), + entry( "Green", 654L ) ); } } diff --git a/processor/src/test/java/org/mapstruct/ap/test/collection/TestNonGenericList.java b/processor/src/test/java/org/mapstruct/ap/test/collection/StringArrayList.java similarity index 94% rename from processor/src/test/java/org/mapstruct/ap/test/collection/TestNonGenericList.java rename to processor/src/test/java/org/mapstruct/ap/test/collection/StringArrayList.java index 5102c3067..7f0f9bf80 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/collection/TestNonGenericList.java +++ b/processor/src/test/java/org/mapstruct/ap/test/collection/StringArrayList.java @@ -23,7 +23,7 @@ import java.util.ArrayList; /** * @author Stefan May */ -public class TestNonGenericList extends ArrayList { +public class StringArrayList extends ArrayList { private static final long serialVersionUID = 1L; } diff --git a/processor/src/test/java/org/mapstruct/ap/test/collection/Target.java b/processor/src/test/java/org/mapstruct/ap/test/collection/Target.java index d6ee6f14b..27e175026 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/collection/Target.java +++ b/processor/src/test/java/org/mapstruct/ap/test/collection/Target.java @@ -58,7 +58,7 @@ public class Target { private EnumSet enumSet; - private TestNonGenericList nonGenericStringList; + private StringArrayList nonGenericStringList; private StringToLongMap nonGenericMapStringtoLong; @@ -189,11 +189,11 @@ public class Target { this.enumSet = enumSet; } - public TestNonGenericList getNonGenericStringList() { + public StringArrayList getNonGenericStringList() { return nonGenericStringList; } - public void setNonGenericStringList(TestNonGenericList nonGenericStringList) { + public void setNonGenericStringList(StringArrayList nonGenericStringList) { this.nonGenericStringList = nonGenericStringList; }