diff --git a/processor/src/main/java/org/mapstruct/ap/model/Type.java b/processor/src/main/java/org/mapstruct/ap/model/Type.java index 1aaeee9a9..811541fec 100644 --- a/processor/src/main/java/org/mapstruct/ap/model/Type.java +++ b/processor/src/main/java/org/mapstruct/ap/model/Type.java @@ -63,17 +63,21 @@ public class Type extends AbstractModelElement implements Comparable { new ConcurrentHashMap(); static { + //base DEFAULT_ITERABLE_IMPLEMENTATION_TYPES.put( Iterable.class.getName(), forClass( ArrayList.class ) ); DEFAULT_COLLECTION_IMPLEMENTATION_TYPES.put( Collection.class.getName(), forClass( ArrayList.class ) ); + //list DEFAULT_COLLECTION_IMPLEMENTATION_TYPES.put( List.class.getName(), forClass( ArrayList.class ) ); + //set DEFAULT_COLLECTION_IMPLEMENTATION_TYPES.put( Set.class.getName(), forClass( HashSet.class ) ); DEFAULT_COLLECTION_IMPLEMENTATION_TYPES.put( SortedSet.class.getName(), forClass( TreeSet.class ) ); DEFAULT_COLLECTION_IMPLEMENTATION_TYPES.put( NavigableSet.class.getName(), forClass( TreeSet.class ) ); DEFAULT_ITERABLE_IMPLEMENTATION_TYPES.putAll( DEFAULT_COLLECTION_IMPLEMENTATION_TYPES ); + //map DEFAULT_MAP_IMPLEMENTATION_TYPES.put( Map.class.getName(), forClass( HashMap.class ) ); DEFAULT_MAP_IMPLEMENTATION_TYPES.put( SortedMap.class.getName(), forClass( TreeMap.class ) ); DEFAULT_MAP_IMPLEMENTATION_TYPES.put( NavigableMap.class.getName(), forClass( TreeMap.class ) ); diff --git a/processor/src/test/java/org/mapstruct/ap/test/collection/defaultimplementation/SourceTargetMapper.java b/processor/src/test/java/org/mapstruct/ap/test/collection/defaultimplementation/SourceTargetMapper.java index c34a051e6..5da4065b0 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/collection/defaultimplementation/SourceTargetMapper.java +++ b/processor/src/test/java/org/mapstruct/ap/test/collection/defaultimplementation/SourceTargetMapper.java @@ -20,7 +20,14 @@ package org.mapstruct.ap.test.collection.defaultimplementation; import java.util.Collection; import java.util.List; +import java.util.Map; +import java.util.NavigableMap; +import java.util.NavigableSet; import java.util.Set; +import java.util.SortedMap; +import java.util.SortedSet; +import java.util.concurrent.ConcurrentMap; +import java.util.concurrent.ConcurrentNavigableMap; import org.mapstruct.Mapper; import org.mapstruct.Mappers; @@ -48,4 +55,18 @@ public interface SourceTargetMapper { Iterable sourceFoosToTargetFoosUsingTargetParameterAndReturn(Iterable sourceFoos, @MappingTarget List targetFoos); + + SortedSet sourceFoosToTargetFooSortedSet(Collection foos); + + NavigableSet sourceFoosToTargetFooNavigableSet(Collection foos); + + Map sourceFooMapToTargetFooMap(Map foos); + + SortedMap sourceFooMapToTargetFooSortedMap(Map foos); + + NavigableMap sourceFooMapToTargetFooNavigableMap(Map foos); + + ConcurrentMap sourceFooMapToTargetFooConcurrentMap(Map foos); + + ConcurrentNavigableMap sourceFooMapToTargetFooConcurrentNavigableMap(Map foos); }