From 3e7e2e0443fbce134f96e5b137b5a4f05b8fbf1d Mon Sep 17 00:00:00 2001
From: sjaakd
Date: Tue, 15 Apr 2014 21:42:23 +0200
Subject: [PATCH] #200 renaming Decorator to Wrapper, Adding Javadoc, Factory
to FactoryMethod, cleanup
---
.../org/mapstruct/ap/model/Assignment.java | 32 +++++++++++++++-
.../mapstruct/ap/model/BeanMappingMethod.java | 6 +--
.../{Factory.java => FactoryMethod.java} | 3 +-
.../ap/model/IterableMappingMethod.java | 6 +--
.../mapstruct/ap/model/MapMappingMethod.java | 6 +--
.../model/assignment/AssignmentFactory.java | 22 ++++-------
...tDecorator.java => AssignmentWrapper.java} | 7 ++--
...VarDecorator.java => LocalVarWrapper.java} | 5 ++-
.../ap/model/assignment/MethodReference.java | 7 ++--
...or.java => NewCollectionOrMapWrapper.java} | 5 ++-
...ckDecorator.java => NullCheckWrapper.java} | 5 ++-
...etterDecorator.java => SetterWrapper.java} | 5 ++-
.../{SimpleAssignment.java => Simple.java} | 5 ++-
.../ap/model/assignment/package-info.java | 9 ++++-
.../ap/processor/MapperCreationProcessor.java | 37 +++++++++----------
.../processor/creation/MappingResolver.java | 20 +++++-----
.../org/mapstruct/ap/util/Collections.java | 10 +++++
...t.ap.model.assignment.LocalVarWrapper.ftl} | 0
....assignment.NewCollectionOrMapWrapper.ftl} | 9 ++++-
....ap.model.assignment.NullCheckWrapper.ftl} | 0
...uct.ap.model.assignment.SetterWrapper.ftl} | 0
....mapstruct.ap.model.assignment.Simple.ftl} | 0
22 files changed, 126 insertions(+), 73 deletions(-)
rename processor/src/main/java/org/mapstruct/ap/model/{Factory.java => FactoryMethod.java} (92%)
rename processor/src/main/java/org/mapstruct/ap/model/assignment/{AssignmentDecorator.java => AssignmentWrapper.java} (84%)
rename processor/src/main/java/org/mapstruct/ap/model/assignment/{LocalVarDecorator.java => LocalVarWrapper.java} (85%)
rename processor/src/main/java/org/mapstruct/ap/model/assignment/{NewCollectionOrMapDecorator.java => NewCollectionOrMapWrapper.java} (82%)
rename processor/src/main/java/org/mapstruct/ap/model/assignment/{NullCheckDecorator.java => NullCheckWrapper.java} (85%)
rename processor/src/main/java/org/mapstruct/ap/model/assignment/{SetterDecorator.java => SetterWrapper.java} (85%)
rename processor/src/main/java/org/mapstruct/ap/model/assignment/{SimpleAssignment.java => Simple.java} (91%)
rename processor/src/main/resources/{org.mapstruct.ap.model.assignment.LocalVarDecorator.ftl => org.mapstruct.ap.model.assignment.LocalVarWrapper.ftl} (100%)
rename processor/src/main/resources/{org.mapstruct.ap.model.assignment.NewCollectionOrMapDecorator.ftl => org.mapstruct.ap.model.assignment.NewCollectionOrMapWrapper.ftl} (72%)
rename processor/src/main/resources/{org.mapstruct.ap.model.assignment.NullCheckDecorator.ftl => org.mapstruct.ap.model.assignment.NullCheckWrapper.ftl} (100%)
rename processor/src/main/resources/{org.mapstruct.ap.model.assignment.SetterDecorator.ftl => org.mapstruct.ap.model.assignment.SetterWrapper.ftl} (100%)
rename processor/src/main/resources/{org.mapstruct.ap.model.assignment.SimpleAssignment.ftl => org.mapstruct.ap.model.assignment.Simple.ftl} (100%)
diff --git a/processor/src/main/java/org/mapstruct/ap/model/Assignment.java b/processor/src/main/java/org/mapstruct/ap/model/Assignment.java
index 6bd103ee1..a73099bbb 100644
--- a/processor/src/main/java/org/mapstruct/ap/model/Assignment.java
+++ b/processor/src/main/java/org/mapstruct/ap/model/Assignment.java
@@ -22,19 +22,49 @@ import java.util.Set;
import org.mapstruct.ap.model.common.Type;
/**
+ * Assignment represents all kind of manners a source can be assigned to a target.
*
* @author Sjaak Derksen
*/
public interface Assignment {
+ /**
+ * returns all types required as import by the assignment statement.
+ *
+ * @return imported types
+ */
Set getImportTypes();
+ /**
+ * returns all types exception types thrown by this assignment.
+ *
+ * @return exceptions thrown
+ */
Set getExceptionTypes();
+ /**
+ * An assignment in itself can wrap another assignment. E.g.:
+ *
+ * - a MethodReference can wrap a TypeConversion, another MethodReference and ultimately a Simple
+ * - a TypeConversion can wrap a MethodReference, and ultimately a Simple
+ *
+ *
+ * @param assignment
+ */
void setAssignment( Assignment assignment );
+ /**
+ * the source reference being a source-getter, a constant, etc.
+ *
+ * @return source reference
+ */
String getSourceReference();
- // TODO: tempfix..
+ /**
+ * Returns whether the implemented assignment is a plain source assignment (Simple assignment)
+ * (so not a MethodReference or TypeConversion).
+ *
+ * @return true when this is a (wrapped) Simple Assignment
+ */
boolean isSimple();
}
diff --git a/processor/src/main/java/org/mapstruct/ap/model/BeanMappingMethod.java b/processor/src/main/java/org/mapstruct/ap/model/BeanMappingMethod.java
index 19755449a..49bbbf5d3 100644
--- a/processor/src/main/java/org/mapstruct/ap/model/BeanMappingMethod.java
+++ b/processor/src/main/java/org/mapstruct/ap/model/BeanMappingMethod.java
@@ -38,11 +38,11 @@ import org.mapstruct.ap.model.source.SourceMethod;
public class BeanMappingMethod extends MappingMethod {
private final List propertyMappings;
- private final Factory factoryMethod;
+ private final FactoryMethod factoryMethod;
public BeanMappingMethod(SourceMethod method,
List propertyMappings,
- Factory factoryMethod) {
+ FactoryMethod factoryMethod) {
super( method );
this.propertyMappings = propertyMappings;
this.factoryMethod = factoryMethod;
@@ -78,7 +78,7 @@ public class BeanMappingMethod extends MappingMethod {
return types;
}
- public Factory getFactoryMethod() {
+ public FactoryMethod getFactoryMethod() {
return this.factoryMethod;
}
diff --git a/processor/src/main/java/org/mapstruct/ap/model/Factory.java b/processor/src/main/java/org/mapstruct/ap/model/FactoryMethod.java
similarity index 92%
rename from processor/src/main/java/org/mapstruct/ap/model/Factory.java
rename to processor/src/main/java/org/mapstruct/ap/model/FactoryMethod.java
index 394325057..ce8dccb9a 100644
--- a/processor/src/main/java/org/mapstruct/ap/model/Factory.java
+++ b/processor/src/main/java/org/mapstruct/ap/model/FactoryMethod.java
@@ -22,10 +22,11 @@ import java.util.Set;
import org.mapstruct.ap.model.common.Type;
/**
+ * FactoryMethod, implemented in referenced mapper.
*
* @author Sjaak Derksen
*/
-public interface Factory {
+public interface FactoryMethod {
Set getExceptionTypes();
diff --git a/processor/src/main/java/org/mapstruct/ap/model/IterableMappingMethod.java b/processor/src/main/java/org/mapstruct/ap/model/IterableMappingMethod.java
index 7ec4dc4f8..ba49309c3 100644
--- a/processor/src/main/java/org/mapstruct/ap/model/IterableMappingMethod.java
+++ b/processor/src/main/java/org/mapstruct/ap/model/IterableMappingMethod.java
@@ -34,9 +34,9 @@ import org.mapstruct.ap.util.Strings;
public class IterableMappingMethod extends MappingMethod {
private final Assignment elementAssignment;
- private final Factory factoryMethod;
+ private final FactoryMethod factoryMethod;
- public IterableMappingMethod(SourceMethod method, Assignment parameterAssignment, Factory factoryMethod) {
+ public IterableMappingMethod(SourceMethod method, Assignment parameterAssignment, FactoryMethod factoryMethod) {
super( method );
this.elementAssignment = parameterAssignment;
this.factoryMethod = factoryMethod;
@@ -74,7 +74,7 @@ public class IterableMappingMethod extends MappingMethod {
);
}
- public Factory getFactoryMethod() {
+ public FactoryMethod getFactoryMethod() {
return this.factoryMethod;
}
}
diff --git a/processor/src/main/java/org/mapstruct/ap/model/MapMappingMethod.java b/processor/src/main/java/org/mapstruct/ap/model/MapMappingMethod.java
index de8e78772..6eda0960e 100644
--- a/processor/src/main/java/org/mapstruct/ap/model/MapMappingMethod.java
+++ b/processor/src/main/java/org/mapstruct/ap/model/MapMappingMethod.java
@@ -35,10 +35,10 @@ public class MapMappingMethod extends MappingMethod {
private final Assignment keyAssignment;
private final Assignment valueAssignment;
- private final Factory factoryMethod;
+ private final FactoryMethod factoryMethod;
public MapMappingMethod(SourceMethod method, Assignment keyAssignment, Assignment valueAssignment,
- Factory factoryMethod) {
+ FactoryMethod factoryMethod) {
super( method );
this.keyAssignment = keyAssignment;
@@ -99,7 +99,7 @@ public class MapMappingMethod extends MappingMethod {
);
}
- public Factory getFactoryMethod() {
+ public FactoryMethod getFactoryMethod() {
return this.factoryMethod;
}
diff --git a/processor/src/main/java/org/mapstruct/ap/model/assignment/AssignmentFactory.java b/processor/src/main/java/org/mapstruct/ap/model/assignment/AssignmentFactory.java
index db7179a4d..f0a28121e 100644
--- a/processor/src/main/java/org/mapstruct/ap/model/assignment/AssignmentFactory.java
+++ b/processor/src/main/java/org/mapstruct/ap/model/assignment/AssignmentFactory.java
@@ -18,10 +18,9 @@
*/
package org.mapstruct.ap.model.assignment;
-import java.util.Collections;
import java.util.Set;
import org.mapstruct.ap.model.Assignment;
-import org.mapstruct.ap.model.Factory;
+import org.mapstruct.ap.model.FactoryMethod;
import org.mapstruct.ap.model.MapperReference;
import org.mapstruct.ap.model.common.ConversionContext;
import org.mapstruct.ap.model.common.Type;
@@ -29,6 +28,7 @@ import org.mapstruct.ap.model.source.SourceMethod;
import org.mapstruct.ap.model.source.builtin.BuiltInMethod;
/**
+ * Factory class for creating all types of assignments
*
* @author Sjaak Derksen
*/
@@ -44,27 +44,21 @@ public class AssignmentFactory {
return new TypeConversion( importTypes, exceptionTypes, openExpression, closeExpression );
}
- public static Assignment createTypeConversion( String openExpression, String closeExpression ) {
- return new TypeConversion( Collections.emptySet(),
- Collections.emptySet(),
- openExpression,
- closeExpression );
- }
-
- public static Factory createFactory(SourceMethod method, MapperReference declaringMapper) {
+ public static FactoryMethod createFactory(SourceMethod method, MapperReference declaringMapper) {
return new MethodReference( method, declaringMapper, null );
}
- public static Assignment createAssignment(SourceMethod method, MapperReference declaringMapper, Type targetType) {
+ public static Assignment createMethodReference(SourceMethod method, MapperReference declaringMapper,
+ Type targetType) {
return new MethodReference(method, declaringMapper, targetType);
}
- public static Assignment createAssignment( BuiltInMethod method, ConversionContext contextParam ) {
+ public static Assignment createMethodReference( BuiltInMethod method, ConversionContext contextParam ) {
return new MethodReference( method, contextParam );
}
- public static SimpleAssignment createAssignment( String sourceRef ) {
- return new SimpleAssignment(sourceRef );
+ public static Simple createSimple( String sourceRef ) {
+ return new Simple(sourceRef );
}
}
diff --git a/processor/src/main/java/org/mapstruct/ap/model/assignment/AssignmentDecorator.java b/processor/src/main/java/org/mapstruct/ap/model/assignment/AssignmentWrapper.java
similarity index 84%
rename from processor/src/main/java/org/mapstruct/ap/model/assignment/AssignmentDecorator.java
rename to processor/src/main/java/org/mapstruct/ap/model/assignment/AssignmentWrapper.java
index f695358e2..6e7b85d6f 100644
--- a/processor/src/main/java/org/mapstruct/ap/model/assignment/AssignmentDecorator.java
+++ b/processor/src/main/java/org/mapstruct/ap/model/assignment/AssignmentWrapper.java
@@ -24,14 +24,15 @@ import org.mapstruct.ap.model.common.ModelElement;
import org.mapstruct.ap.model.common.Type;
/**
+ * Base class for decorators (wrappers). Decorator pattern is used to decorate assignments.
*
* @author Sjaak Derksen
*/
-public abstract class AssignmentDecorator extends ModelElement implements Assignment {
+public abstract class AssignmentWrapper extends ModelElement implements Assignment {
private final Assignment decoratedAssignment;
- public AssignmentDecorator( Assignment decoratedAssignment ) {
+ public AssignmentWrapper( Assignment decoratedAssignment ) {
this.decoratedAssignment = decoratedAssignment;
}
@@ -47,7 +48,7 @@ public abstract class AssignmentDecorator extends ModelElement implements Assign
@Override
public void setAssignment( Assignment assignment ) {
- decoratedAssignment.setAssignment( assignment );
+ throw new UnsupportedOperationException("deliberately not implemented");
}
public Assignment getAssignment() {
diff --git a/processor/src/main/java/org/mapstruct/ap/model/assignment/LocalVarDecorator.java b/processor/src/main/java/org/mapstruct/ap/model/assignment/LocalVarWrapper.java
similarity index 85%
rename from processor/src/main/java/org/mapstruct/ap/model/assignment/LocalVarDecorator.java
rename to processor/src/main/java/org/mapstruct/ap/model/assignment/LocalVarWrapper.java
index 98f49985d..60a0b9764 100644
--- a/processor/src/main/java/org/mapstruct/ap/model/assignment/LocalVarDecorator.java
+++ b/processor/src/main/java/org/mapstruct/ap/model/assignment/LocalVarWrapper.java
@@ -21,12 +21,13 @@ package org.mapstruct.ap.model.assignment;
import org.mapstruct.ap.model.Assignment;
/**
+ * Decorates an assignment as local variable.
*
* @author Sjaak Derksen
*/
-public class LocalVarDecorator extends AssignmentDecorator {
+public class LocalVarWrapper extends AssignmentWrapper {
- public LocalVarDecorator( Assignment decoratedAssignment ) {
+ public LocalVarWrapper( Assignment decoratedAssignment ) {
super( decoratedAssignment );
}
}
diff --git a/processor/src/main/java/org/mapstruct/ap/model/assignment/MethodReference.java b/processor/src/main/java/org/mapstruct/ap/model/assignment/MethodReference.java
index 70907a311..2eacc0efb 100644
--- a/processor/src/main/java/org/mapstruct/ap/model/assignment/MethodReference.java
+++ b/processor/src/main/java/org/mapstruct/ap/model/assignment/MethodReference.java
@@ -22,7 +22,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.mapstruct.ap.model.Assignment;
-import org.mapstruct.ap.model.Factory;
+import org.mapstruct.ap.model.FactoryMethod;
import org.mapstruct.ap.model.MapperReference;
import org.mapstruct.ap.model.MappingMethod;
@@ -37,7 +37,7 @@ import org.mapstruct.ap.model.source.builtin.BuiltInMethod;
*
* @author Gunnar Morling
*/
-public class MethodReference extends MappingMethod implements Assignment, Factory {
+public class MethodReference extends MappingMethod implements Assignment, FactoryMethod {
private final MapperReference declaringMapper;
private final Set importTypes;
@@ -121,8 +121,7 @@ public class MethodReference extends MappingMethod implements Assignment, Factor
@Override
public Set getImportTypes() {
- Set imported = new HashSet(super.getImportTypes());
- imported.addAll( importTypes );
+ Set imported = org.mapstruct.ap.util.Collections.asSet( importTypes, super.getImportTypes() );
if ( assignment != null ) {
imported.addAll( assignment.getImportTypes() );
}
diff --git a/processor/src/main/java/org/mapstruct/ap/model/assignment/NewCollectionOrMapDecorator.java b/processor/src/main/java/org/mapstruct/ap/model/assignment/NewCollectionOrMapWrapper.java
similarity index 82%
rename from processor/src/main/java/org/mapstruct/ap/model/assignment/NewCollectionOrMapDecorator.java
rename to processor/src/main/java/org/mapstruct/ap/model/assignment/NewCollectionOrMapWrapper.java
index 1365500f5..030db25d9 100644
--- a/processor/src/main/java/org/mapstruct/ap/model/assignment/NewCollectionOrMapDecorator.java
+++ b/processor/src/main/java/org/mapstruct/ap/model/assignment/NewCollectionOrMapWrapper.java
@@ -21,12 +21,13 @@ package org.mapstruct.ap.model.assignment;
import org.mapstruct.ap.model.Assignment;
/**
+ * Decorates the assignment as a Map or Collection constructor
*
* @author Sjaak Derksen
*/
-public class NewCollectionOrMapDecorator extends AssignmentDecorator {
+public class NewCollectionOrMapWrapper extends AssignmentWrapper {
- public NewCollectionOrMapDecorator( Assignment decoratedAssignment ) {
+ public NewCollectionOrMapWrapper( Assignment decoratedAssignment ) {
super( decoratedAssignment );
}
}
diff --git a/processor/src/main/java/org/mapstruct/ap/model/assignment/NullCheckDecorator.java b/processor/src/main/java/org/mapstruct/ap/model/assignment/NullCheckWrapper.java
similarity index 85%
rename from processor/src/main/java/org/mapstruct/ap/model/assignment/NullCheckDecorator.java
rename to processor/src/main/java/org/mapstruct/ap/model/assignment/NullCheckWrapper.java
index f78e60254..162dbd208 100644
--- a/processor/src/main/java/org/mapstruct/ap/model/assignment/NullCheckDecorator.java
+++ b/processor/src/main/java/org/mapstruct/ap/model/assignment/NullCheckWrapper.java
@@ -21,12 +21,13 @@ package org.mapstruct.ap.model.assignment;
import org.mapstruct.ap.model.Assignment;
/**
+ * Wraps the assignment in a null check.
*
* @author Sjaak Derksen
*/
-public class NullCheckDecorator extends AssignmentDecorator {
+public class NullCheckWrapper extends AssignmentWrapper {
- public NullCheckDecorator( Assignment decoratedAssignment ) {
+ public NullCheckWrapper( Assignment decoratedAssignment ) {
super( decoratedAssignment );
}
}
diff --git a/processor/src/main/java/org/mapstruct/ap/model/assignment/SetterDecorator.java b/processor/src/main/java/org/mapstruct/ap/model/assignment/SetterWrapper.java
similarity index 85%
rename from processor/src/main/java/org/mapstruct/ap/model/assignment/SetterDecorator.java
rename to processor/src/main/java/org/mapstruct/ap/model/assignment/SetterWrapper.java
index 73a900019..17a602b46 100644
--- a/processor/src/main/java/org/mapstruct/ap/model/assignment/SetterDecorator.java
+++ b/processor/src/main/java/org/mapstruct/ap/model/assignment/SetterWrapper.java
@@ -21,12 +21,13 @@ package org.mapstruct.ap.model.assignment;
import org.mapstruct.ap.model.Assignment;
/**
+ * Wraps the assignment in a target setter.
*
* @author Sjaak Derksen
*/
-public class SetterDecorator extends AssignmentDecorator {
+public class SetterWrapper extends AssignmentWrapper {
- public SetterDecorator( Assignment decoratedAssignment ) {
+ public SetterWrapper( Assignment decoratedAssignment ) {
super( decoratedAssignment );
}
}
diff --git a/processor/src/main/java/org/mapstruct/ap/model/assignment/SimpleAssignment.java b/processor/src/main/java/org/mapstruct/ap/model/assignment/Simple.java
similarity index 91%
rename from processor/src/main/java/org/mapstruct/ap/model/assignment/SimpleAssignment.java
rename to processor/src/main/java/org/mapstruct/ap/model/assignment/Simple.java
index da5ee4dba..2d7684650 100644
--- a/processor/src/main/java/org/mapstruct/ap/model/assignment/SimpleAssignment.java
+++ b/processor/src/main/java/org/mapstruct/ap/model/assignment/Simple.java
@@ -25,14 +25,15 @@ import org.mapstruct.ap.model.common.ModelElement;
import org.mapstruct.ap.model.common.Type;
/**
+ * Simple Assignment. Just a source reference
*
* @author Sjaak Derksen
*/
-public class SimpleAssignment extends ModelElement implements Assignment {
+public class Simple extends ModelElement implements Assignment {
private final String sourceReference;
- public SimpleAssignment( String sourceReference ) {
+ public Simple( String sourceReference ) {
this.sourceReference = sourceReference;
}
diff --git a/processor/src/main/java/org/mapstruct/ap/model/assignment/package-info.java b/processor/src/main/java/org/mapstruct/ap/model/assignment/package-info.java
index bd086eacc..5751aa02c 100644
--- a/processor/src/main/java/org/mapstruct/ap/model/assignment/package-info.java
+++ b/processor/src/main/java/org/mapstruct/ap/model/assignment/package-info.java
@@ -18,7 +18,14 @@
*/
/**
*
- * Meta-model of assignments
+ * Meta-model of assignments. There are currently three types of assignment
+ *
+ * - Simple
+ * - TypeConversion
+ * - MethodReference
+ *
+ * The assignments can be wrapped. E.g. in a collection or map constructor, a null check, a try-catch, etc.
+ *
*
*/
package org.mapstruct.ap.model.assignment;
diff --git a/processor/src/main/java/org/mapstruct/ap/processor/MapperCreationProcessor.java b/processor/src/main/java/org/mapstruct/ap/processor/MapperCreationProcessor.java
index c48d0409f..4e8473edf 100644
--- a/processor/src/main/java/org/mapstruct/ap/processor/MapperCreationProcessor.java
+++ b/processor/src/main/java/org/mapstruct/ap/processor/MapperCreationProcessor.java
@@ -43,7 +43,7 @@ import org.mapstruct.ap.model.Decorator;
import org.mapstruct.ap.model.DefaultMapperReference;
import org.mapstruct.ap.model.DelegatingMethod;
import org.mapstruct.ap.model.EnumMappingMethod;
-import org.mapstruct.ap.model.Factory;
+import org.mapstruct.ap.model.FactoryMethod;
import org.mapstruct.ap.model.IterableMappingMethod;
import org.mapstruct.ap.model.MapMappingMethod;
import org.mapstruct.ap.model.Mapper;
@@ -51,10 +51,10 @@ import org.mapstruct.ap.model.MapperReference;
import org.mapstruct.ap.model.MappingMethod;
import org.mapstruct.ap.model.PropertyMapping;
import org.mapstruct.ap.model.assignment.AssignmentFactory;
-import org.mapstruct.ap.model.assignment.NewCollectionOrMapDecorator;
-import org.mapstruct.ap.model.assignment.LocalVarDecorator;
-import org.mapstruct.ap.model.assignment.NullCheckDecorator;
-import org.mapstruct.ap.model.assignment.SetterDecorator;
+import org.mapstruct.ap.model.assignment.NewCollectionOrMapWrapper;
+import org.mapstruct.ap.model.assignment.LocalVarWrapper;
+import org.mapstruct.ap.model.assignment.NullCheckWrapper;
+import org.mapstruct.ap.model.assignment.SetterWrapper;
import org.mapstruct.ap.model.common.Parameter;
import org.mapstruct.ap.model.common.Type;
import org.mapstruct.ap.model.common.TypeFactory;
@@ -321,9 +321,9 @@ public class MapperCreationProcessor implements ModelElementProcessor mapperReferences, List methods,
+ private FactoryMethod getFactoryMethod(List mapperReferences, List methods,
Type returnType) {
- Factory result = null;
+ FactoryMethod result = null;
for ( SourceMethod method : methods ) {
if ( !method.requiresImplementation() && !method.isIterableMapping() && !method.isMapMapping()
&& method.getSourceParameters().size() == 0 ) {
@@ -493,7 +493,7 @@ public class MapperCreationProcessor implements ModelElementProcessor Set asSet(Collection collection, Collection... elements) {
+ Set set = new HashSet( collection );
+
+ for ( Collection element : elements ) {
+ set.addAll( element );
+ }
+
+ return set;
+ }
}
diff --git a/processor/src/main/resources/org.mapstruct.ap.model.assignment.LocalVarDecorator.ftl b/processor/src/main/resources/org.mapstruct.ap.model.assignment.LocalVarWrapper.ftl
similarity index 100%
rename from processor/src/main/resources/org.mapstruct.ap.model.assignment.LocalVarDecorator.ftl
rename to processor/src/main/resources/org.mapstruct.ap.model.assignment.LocalVarWrapper.ftl
diff --git a/processor/src/main/resources/org.mapstruct.ap.model.assignment.NewCollectionOrMapDecorator.ftl b/processor/src/main/resources/org.mapstruct.ap.model.assignment.NewCollectionOrMapWrapper.ftl
similarity index 72%
rename from processor/src/main/resources/org.mapstruct.ap.model.assignment.NewCollectionOrMapDecorator.ftl
rename to processor/src/main/resources/org.mapstruct.ap.model.assignment.NewCollectionOrMapWrapper.ftl
index 30d3d75b4..1a013b644 100644
--- a/processor/src/main/resources/org.mapstruct.ap.model.assignment.NewCollectionOrMapDecorator.ftl
+++ b/processor/src/main/resources/org.mapstruct.ap.model.assignment.NewCollectionOrMapWrapper.ftl
@@ -18,4 +18,11 @@
limitations under the License.
-->
-${ext.target}( new <#if ext.targetType.implementationType??><@includeModel object=ext.targetType.implementationType/><#else><@includeModel object=ext.targetType/>#if>( ${sourceReference} ) );
+<@compress single_line=true>
+new <#if ext.targetType.implementationType??>
+ <@includeModel object=ext.targetType.implementationType/>
+<#else>
+ <@includeModel object=ext.targetType/>
+#if>
+( <@includeModel object=assignment target=ext.target targetType=ext.targetType raw=ext.raw/> )
+@compress>
\ No newline at end of file
diff --git a/processor/src/main/resources/org.mapstruct.ap.model.assignment.NullCheckDecorator.ftl b/processor/src/main/resources/org.mapstruct.ap.model.assignment.NullCheckWrapper.ftl
similarity index 100%
rename from processor/src/main/resources/org.mapstruct.ap.model.assignment.NullCheckDecorator.ftl
rename to processor/src/main/resources/org.mapstruct.ap.model.assignment.NullCheckWrapper.ftl
diff --git a/processor/src/main/resources/org.mapstruct.ap.model.assignment.SetterDecorator.ftl b/processor/src/main/resources/org.mapstruct.ap.model.assignment.SetterWrapper.ftl
similarity index 100%
rename from processor/src/main/resources/org.mapstruct.ap.model.assignment.SetterDecorator.ftl
rename to processor/src/main/resources/org.mapstruct.ap.model.assignment.SetterWrapper.ftl
diff --git a/processor/src/main/resources/org.mapstruct.ap.model.assignment.SimpleAssignment.ftl b/processor/src/main/resources/org.mapstruct.ap.model.assignment.Simple.ftl
similarity index 100%
rename from processor/src/main/resources/org.mapstruct.ap.model.assignment.SimpleAssignment.ftl
rename to processor/src/main/resources/org.mapstruct.ap.model.assignment.Simple.ftl