diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/AbstractClassExposingItemC.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/AbstractAnimal.java similarity index 87% rename from processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/AbstractClassExposingItemC.java rename to processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/AbstractAnimal.java index b6902962f..42258687a 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/AbstractClassExposingItemC.java +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/AbstractAnimal.java @@ -21,7 +21,7 @@ package org.mapstruct.ap.test.abstractclass.generics; /** * @author Andreas Gudian */ -public abstract class AbstractClassExposingItemC - implements ItemProviderSomeItemA, ItemProviderSomeItemB { +public abstract class AbstractAnimal + implements Identifiable, IAnimal { } diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/AbstractClassExposingItemB.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/AbstractHuman.java similarity index 87% rename from processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/AbstractClassExposingItemB.java rename to processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/AbstractHuman.java index e615d73c6..c2d9bd088 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/AbstractClassExposingItemB.java +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/AbstractHuman.java @@ -18,6 +18,6 @@ */ package org.mapstruct.ap.test.abstractclass.generics; -public abstract class AbstractClassExposingItemB - implements ItemProviderAny, ItemProviderSomeItemA { +public abstract class AbstractHuman + implements GenericIdentifiable, Identifiable { } diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/ItemC.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/AnimalKey.java similarity index 69% rename from processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/ItemC.java rename to processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/AnimalKey.java index f0ba92c63..bf735e4eb 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/ItemC.java +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/AnimalKey.java @@ -22,14 +22,14 @@ package org.mapstruct.ap.test.abstractclass.generics; * @author Andreas Gudian * */ -public class ItemC extends ItemB { - private boolean typeParameterIsResolvedToItemC; +public class AnimalKey extends KeyOfAllBeings { + private boolean typeParameterIsResolvedToAnimalKey; - public boolean typeParameterIsResolvedToItemC() { - return typeParameterIsResolvedToItemC; + public boolean typeParameterIsResolvedToAnimalKey() { + return typeParameterIsResolvedToAnimalKey; } - public void setTypeParameterIsResolvedToItemC(boolean typeParameterIsResolvedToItemC) { - this.typeParameterIsResolvedToItemC = typeParameterIsResolvedToItemC; + public void setTypeParameterIsResolvedToAnimalKey(boolean typeParameterIsResolvedToAnimalKey) { + this.typeParameterIsResolvedToAnimalKey = typeParameterIsResolvedToAnimalKey; } } diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/SourceWithItemB.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/Child.java similarity index 81% rename from processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/SourceWithItemB.java rename to processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/Child.java index 771b1a5c2..6e1d79a4a 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/SourceWithItemB.java +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/Child.java @@ -22,14 +22,14 @@ package org.mapstruct.ap.test.abstractclass.generics; * @author Andreas Gudian * */ -public class SourceWithItemB extends AbstractClassExposingItemB { - private ItemB item; +public class Child extends AbstractHuman { + private KeyOfAllBeings key; - public ItemB getItem() { - return item; + public KeyOfAllBeings getKey() { + return key; } - public void setItem(ItemB item) { - this.item = item; + public void setKey(KeyOfAllBeings key) { + this.key = key; } } diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/SourceWithItemC.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/Elephant.java similarity index 82% rename from processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/SourceWithItemC.java rename to processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/Elephant.java index 261272342..55b6fd02b 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/SourceWithItemC.java +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/Elephant.java @@ -22,16 +22,16 @@ package org.mapstruct.ap.test.abstractclass.generics; * @author Andreas Gudian * */ -public class SourceWithItemC extends AbstractClassExposingItemC { - private ItemC item; +public class Elephant extends AbstractAnimal { + private AnimalKey key; @Override - public ItemC getItem() { - return item; + public AnimalKey getKey() { + return key; } @Override - public void setItem(ItemC item) { - this.item = item; + public void setKey(AnimalKey key) { + this.key = key; } } diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/ItemProviderAny.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/GenericIdentifiable.java similarity index 91% rename from processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/ItemProviderAny.java rename to processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/GenericIdentifiable.java index aac65b105..20491eaa5 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/ItemProviderAny.java +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/GenericIdentifiable.java @@ -21,8 +21,8 @@ package org.mapstruct.ap.test.abstractclass.generics; /** * @author Andreas Gudian */ -public interface ItemProviderAny { - X getItem(); +public interface GenericIdentifiable { + X getKey(); - void setItem(X id); + void setKey(X id); } diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/GenericsHierarchyMapper.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/GenericsHierarchyMapper.java index e63d10fb2..69b067551 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/GenericsHierarchyMapper.java +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/GenericsHierarchyMapper.java @@ -32,25 +32,25 @@ import org.mapstruct.factory.Mappers; public abstract class GenericsHierarchyMapper { public static final GenericsHierarchyMapper INSTANCE = Mappers.getMapper( GenericsHierarchyMapper.class ); - @Mapping(target = "itemC", source = "item") - public abstract Target toTarget(AbstractClassExposingItemC source); + @Mapping(target = "animalKey", source = "key") + public abstract Target toTarget(AbstractAnimal source); - @Mapping(target = "itemB", source = "item") - public abstract Target toTarget(AbstractClassExposingItemB source); + @Mapping(target = "keyOfAllBeings", source = "key") + public abstract Target toTarget(AbstractHuman source); - @Mapping(target = "item", source = "itemC") - public abstract void intoSourceWithItemC(Target target, @MappingTarget AbstractClassExposingItemC bean); + @Mapping(target = "key", source = "animalKey") + public abstract void updateSourceWithAnimalKey(Target target, @MappingTarget AbstractAnimal bean); - @Mapping(target = "item", source = "itemB") - public abstract void intoSourceWithItemB(Target target, @MappingTarget AbstractClassExposingItemB bean); + @Mapping(target = "key", source = "keyOfAllBeings") + public abstract void updateSourceWithKeyOfAllBeings(Target target, @MappingTarget AbstractHuman bean); - protected ItemC modifyItemC(ItemC item) { - item.setTypeParameterIsResolvedToItemC( true ); + protected AnimalKey modifyAnimalKey(AnimalKey item) { + item.setTypeParameterIsResolvedToAnimalKey( true ); return item; } - protected ItemB modifyItemB(ItemB item) { - item.setTypeParameterIsResolvedToItemB( true ); + protected KeyOfAllBeings modifyKeyOfAllBeings(KeyOfAllBeings item) { + item.setTypeParameterIsResolvedToKeyOfAllBeings( true ); return item; } } diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/GenericsHierarchyTest.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/GenericsHierarchyTest.java index 6ec914509..f504c28a7 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/GenericsHierarchyTest.java +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/GenericsHierarchyTest.java @@ -33,67 +33,67 @@ import static org.fest.assertions.Assertions.assertThat; @RunWith(AnnotationProcessorTestRunner.class) @IssueKey("644,687,688") @WithClasses({ - AbstractClassExposingItemC.class, - AbstractClassExposingItemB.class, + AbstractAnimal.class, + AbstractHuman.class, GenericsHierarchyMapper.class, - ItemA.class, - ItemB.class, - ItemC.class, - ItemProviderSomeItemA.class, - ItemProviderAny.class, - ItemProviderSomeItemB.class, + Key.class, + KeyOfAllBeings.class, + AnimalKey.class, + Identifiable.class, + GenericIdentifiable.class, + IAnimal.class, Target.class }) public class GenericsHierarchyTest { @Test - public void determinesItemCSourceGetter() { - AbstractClassExposingItemC source = new SourceWithItemC(); + public void determinesAnimalKeyGetter() { + AbstractAnimal source = new Elephant(); - source.setItem( new ItemC() ); + source.setKey( new AnimalKey() ); // make sure the jdk compiler resolves the same as we expect - source.getItem().setTypeParameterIsResolvedToItemC( false ); + source.getKey().setTypeParameterIsResolvedToAnimalKey( false ); Target target = GenericsHierarchyMapper.INSTANCE.toTarget( source ); - assertThat( target.getItemC().typeParameterIsResolvedToItemC() ).isTrue(); - assertThat( target.getItemC().typeParameterIsResolvedToItemB() ).isFalse(); + assertThat( target.getAnimalKey().typeParameterIsResolvedToAnimalKey() ).isTrue(); + assertThat( target.getAnimalKey().typeParameterIsResolvedToKeyOfAllBeings() ).isFalse(); } @Test - public void determinesItemBSourceGetter() { - AbstractClassExposingItemB source = new SourceWithItemB(); + public void determinesKeyOfAllBeingsGetter() { + AbstractHuman source = new Child(); - source.setItem( new ItemB() ); + source.setKey( new KeyOfAllBeings() ); // make sure the jdk compiler resolves the same as we expect - source.getItem().setTypeParameterIsResolvedToItemB( false ); + source.getKey().setTypeParameterIsResolvedToKeyOfAllBeings( false ); Target target = GenericsHierarchyMapper.INSTANCE.toTarget( source ); - assertThat( target.getItemB().typeParameterIsResolvedToItemB() ).isTrue(); + assertThat( target.getKeyOfAllBeings().typeParameterIsResolvedToKeyOfAllBeings() ).isTrue(); } @Test public void determinesItemCSourceSetter() { Target target = new Target(); - target.setItemC( new ItemC() ); + target.setAnimalKey( new AnimalKey() ); - SourceWithItemC source = new SourceWithItemC(); - GenericsHierarchyMapper.INSTANCE.intoSourceWithItemC( target, source ); + Elephant source = new Elephant(); + GenericsHierarchyMapper.INSTANCE.updateSourceWithAnimalKey( target, source ); - assertThat( source.getItem().typeParameterIsResolvedToItemC() ).isTrue(); + assertThat( source.getKey().typeParameterIsResolvedToAnimalKey() ).isTrue(); } @Test public void determinesItemBSourceSetter() { Target target = new Target(); - target.setItemB( new ItemB() ); + target.setKeyOfAllBeings( new KeyOfAllBeings() ); - SourceWithItemB source = new SourceWithItemB(); - GenericsHierarchyMapper.INSTANCE.intoSourceWithItemB( target, source ); + Child source = new Child(); + GenericsHierarchyMapper.INSTANCE.updateSourceWithKeyOfAllBeings( target, source ); - assertThat( source.getItem().typeParameterIsResolvedToItemB() ).isTrue(); + assertThat( source.getKey().typeParameterIsResolvedToKeyOfAllBeings() ).isTrue(); } } diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/ItemProviderSomeItemB.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/IAnimal.java similarity index 86% rename from processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/ItemProviderSomeItemB.java rename to processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/IAnimal.java index 6d9dba677..4836d1775 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/ItemProviderSomeItemB.java +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/IAnimal.java @@ -21,9 +21,9 @@ package org.mapstruct.ap.test.abstractclass.generics; /** * @author Andreas Gudian */ -public interface ItemProviderSomeItemB extends ItemProviderSomeItemA { +public interface IAnimal extends Identifiable { @Override - ID getItem(); + ID getKey(); - void setItem(ID item); + void setKey(ID item); } diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/ItemProviderSomeItemA.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/Identifiable.java similarity index 92% rename from processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/ItemProviderSomeItemA.java rename to processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/Identifiable.java index 44bb1e997..b1a664293 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/ItemProviderSomeItemA.java +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/Identifiable.java @@ -21,6 +21,6 @@ package org.mapstruct.ap.test.abstractclass.generics; /** * @author Andreas Gudian */ -public interface ItemProviderSomeItemA { - T getItem(); +public interface Identifiable { + T getKey(); } diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/ItemA.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/Key.java similarity index 97% rename from processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/ItemA.java rename to processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/Key.java index 55d374572..097ae1428 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/ItemA.java +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/Key.java @@ -22,6 +22,6 @@ package org.mapstruct.ap.test.abstractclass.generics; * @author Andreas Gudian * */ -public class ItemA { +public class Key { } diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/ItemB.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/KeyOfAllBeings.java similarity index 68% rename from processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/ItemB.java rename to processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/KeyOfAllBeings.java index 5034c984a..6ed88903b 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/ItemB.java +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/KeyOfAllBeings.java @@ -22,14 +22,14 @@ package org.mapstruct.ap.test.abstractclass.generics; * @author Andreas Gudian * */ -public class ItemB extends ItemA { - private boolean typeParameterIsResolvedToItemB; +public class KeyOfAllBeings extends Key { + private boolean typeParameterIsResolvedToKeyOfAllBeings; - public boolean typeParameterIsResolvedToItemB() { - return typeParameterIsResolvedToItemB; + public boolean typeParameterIsResolvedToKeyOfAllBeings() { + return typeParameterIsResolvedToKeyOfAllBeings; } - public void setTypeParameterIsResolvedToItemB(boolean typeParameterIsResolvedToItemB) { - this.typeParameterIsResolvedToItemB = typeParameterIsResolvedToItemB; + public void setTypeParameterIsResolvedToKeyOfAllBeings(boolean typeParameterIsResolvedToKeyOfAllBeings) { + this.typeParameterIsResolvedToKeyOfAllBeings = typeParameterIsResolvedToKeyOfAllBeings; } } diff --git a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/Target.java b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/Target.java index 6b22498cc..89d71e9fd 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/Target.java +++ b/processor/src/test/java/org/mapstruct/ap/test/abstractclass/generics/Target.java @@ -23,23 +23,22 @@ package org.mapstruct.ap.test.abstractclass.generics; * */ public class Target { - private ItemC itemC; - private ItemB itemB; + private AnimalKey animalKey; + private KeyOfAllBeings keyOfAllBeings; - public ItemC getItemC() { - return itemC; + public AnimalKey getAnimalKey() { + return animalKey; } - public void setItemC(ItemC itemC) { - this.itemC = itemC; + public void setAnimalKey(AnimalKey animalKey) { + this.animalKey = animalKey; } - public ItemB getItemB() { - return itemB; + public KeyOfAllBeings getKeyOfAllBeings() { + return keyOfAllBeings; } - public void setItemB(ItemB itemB) { - this.itemB = itemB; + public void setKeyOfAllBeings(KeyOfAllBeings keyOfAllBeings) { + this.keyOfAllBeings = keyOfAllBeings; } - }