#291 add test to verify that the simple case (target type with type arguments) already works, clean-up unnecessary "raw" definitions in templates

This commit is contained in:
Andreas Gudian 2015-03-26 21:01:47 +01:00 committed by sjaakd
parent fb6c4dbfbd
commit bcb722e2e9
20 changed files with 37 additions and 27 deletions

View File

@ -26,7 +26,7 @@
}
</#if>
<#if !existingInstanceMapping><@includeModel object=resultType/> ${resultName} = <#if factoryMethod??><@includeModel object=factoryMethod targetType=resultType raw=true/><#else>new <@includeModel object=resultType/>()</#if>;</#if>
<#if !existingInstanceMapping><@includeModel object=resultType/> ${resultName} = <#if factoryMethod??><@includeModel object=factoryMethod targetType=resultType/><#else>new <@includeModel object=resultType/>()</#if>;</#if>
<#if (sourceParameters?size > 1)>
<#list sourceParametersExcludingPrimitives as sourceParam>
<#if (propertyMappingsByParameter[sourceParam.name]?size > 0)>

View File

@ -107,7 +107,7 @@
<#macro iterableCreation>
<@compress single_line=true>
<#if factoryMethod??>
<@includeModel object=factoryMethod targetType=resultType raw=true/>
<@includeModel object=factoryMethod targetType=resultType/>
<#else>
new
<#if resultType.implementationType??>

View File

@ -68,7 +68,7 @@
<#macro returnObjectCreation>
<@compress single_line=true>
<#if factoryMethod??>
<@includeModel object=factoryMethod targetType=resultType raw=true/>
<@includeModel object=factoryMethod targetType=resultType/>
<#else>
new
<#if resultType.implementationType??>

View File

@ -39,7 +39,6 @@
<#macro _assignment>
<@includeModel object=assignment
targetBeanName=ext.targetBeanName
raw=ext.raw
existingInstanceMapping=ext.existingInstanceMapping
targetReadAccessorName=ext.targetReadAccessorName
targetWriteAccessorName=ext.targetWriteAccessorName

View File

@ -20,7 +20,6 @@
-->
<@includeModel object=assignment
targetBeanName=ext.targetBeanName
raw=ext.raw
existingInstanceMapping=ext.existingInstanceMapping
targetReadAccessorName=targetReadAccessorName
targetWriteAccessorName=targetWriteAccessorName

View File

@ -23,7 +23,6 @@ ${openExpression}<@_assignment/>${closeExpression}
<#macro _assignment>
<@includeModel object=assignment
targetBeanName=ext.targetBeanName
raw=ext.raw
existingInstanceMapping=ext.existingInstanceMapping
targetReadAccessorName=ext.targetReadAccessorName
targetWriteAccessorName=ext.targetWriteAccessorName

View File

@ -22,7 +22,6 @@
for ( <@includeModel object=sourceType/> ${iteratorReference} : ${sourceReference} ) {
${ext.targetBeanName}.${ext.targetWriteAccessorName}( <@includeModel object=assignment
targetBeanName=ext.targetBeanName
raw=ext.raw
existingInstanceMapping=ext.existingInstanceMapping
targetReadAccessorName=ext.targetReadAccessorName
targetWriteAccessorName=ext.targetWriteAccessorName
@ -33,7 +32,6 @@
for ( <@includeModel object=sourceType/> ${iteratorReference} : ${sourceReference} ) {
${ext.targetBeanName}.${ext.targetWriteAccessorName}( <@includeModel object=assignment
targetBeanName=ext.targetBeanName
raw=ext.raw
existingInstanceMapping=ext.existingInstanceMapping
targetReadAccessorName=ext.targetReadAccessorName
targetWriteAccessorName=ext.targetWriteAccessorName

View File

@ -35,7 +35,6 @@
<#macro _assignment>
<@includeModel object=assignment
targetBeanName=ext.targetBeanName
raw=ext.raw
existingInstanceMapping=ext.existingInstanceMapping
targetReadAccessorName=ext.targetReadAccessorName
targetWriteAccessorName=ext.targetWriteAccessorName

View File

@ -44,7 +44,6 @@ if ( ${ext.targetBeanName}.${ext.targetWriteAccessorName}() != null ) {
<#macro _assignment>
<@includeModel object=assignment
targetBeanName=ext.targetBeanName
raw=ext.raw
existingInstanceMapping=ext.existingInstanceMapping
targetReadAccessorName=ext.targetReadAccessorName
targetWriteAccessorName=ext.targetWriteAccessorName

View File

@ -34,7 +34,6 @@
<#macro _assignment>
<@includeModel object=assignment
targetBeanName=ext.targetBeanName
raw=ext.raw
existingInstanceMapping=ext.existingInstanceMapping
targetReadAccessorName=ext.targetReadAccessorName
targetWriteAccessorName=ext.targetWriteAccessorName

View File

@ -24,5 +24,5 @@ new <#if ext.targetType.implementationType??>
<#else>
<@includeModel object=ext.targetType/>
</#if>
( <@includeModel object=assignment targetBeanName=ext.targetBeanName targetReadAccessorName=ext.targetReadAccessorName targetWriteAccessorName=ext.targetWriteAccessorName targetType=ext.targetType raw=ext.raw/> )
( <@includeModel object=assignment targetBeanName=ext.targetBeanName targetReadAccessorName=ext.targetReadAccessorName targetWriteAccessorName=ext.targetWriteAccessorName targetType=ext.targetType/> )
</@compress>

View File

@ -21,7 +21,6 @@
if ( ${sourceReference} != null ) {
<@includeModel object=assignment
targetBeanName=ext.targetBeanName
raw=ext.raw
existingInstanceMapping=ext.existingInstanceMapping
targetReadAccessorName=ext.targetReadAccessorName
targetWriteAccessorName=ext.targetWriteAccessorName

View File

@ -33,7 +33,6 @@
<#macro _assignment>
<@includeModel object=assignment
targetBeanName=ext.targetBeanName
raw=ext.raw
existingInstanceMapping=ext.existingInstanceMapping
targetReadAccessorName=ext.targetReadAccessorName
targetWriteAccessorName=ext.targetWriteAccessorName

View File

@ -24,7 +24,6 @@
<#if ext.targetType.collectionType>
<@includeModel object=assignment
targetBeanName=ext.targetBeanName
raw=ext.raw
existingInstanceMapping=ext.existingInstanceMapping
targetReadAccessorName=ext.targetReadAccessorName
targetWriteAccessorName="${targetGetterName}().addAll"
@ -32,7 +31,6 @@
<#else>
<@includeModel object=assignment
targetBeanName=ext.targetBeanName
raw=ext.raw
existingInstanceMapping=ext.existingInstanceMapping
targetReadAccessorName=ext.targetReadAccessorName
targetWriteAccessorName="${targetGetterName}().putAll"
@ -56,7 +54,6 @@
<#macro _assignment>
<@includeModel object=assignment
targetBeanName=ext.targetBeanName
raw=ext.raw
existingInstanceMapping=ext.existingInstanceMapping
targetReadAccessorName=ext.targetReadAccessorName
targetWriteAccessorName=ext.targetWriteAccessorName
@ -65,7 +62,6 @@
<#macro _newCollectionOrMapAssignment>
<@includeModel object=newCollectionOrMapAssignment
targetBeanName=ext.targetBeanName
raw=ext.raw
existingInstanceMapping=ext.existingInstanceMapping
targetReadAccessorName=ext.targetReadAccessorName
targetWriteAccessorName=ext.targetWriteAccessorName

View File

@ -32,11 +32,10 @@
</#if>
<#macro _assignment>
if ( ${ext.targetBeanName}.${ext.targetReadAccessorName}() == null ) {
${ext.targetBeanName}.${ext.targetWriteAccessorName}( <#if factoryMethod??><@includeModel object=factoryMethod targetType=ext.targetType raw=true/><#else>new <@includeModel object=ext.targetType/>()</#if> );
${ext.targetBeanName}.${ext.targetWriteAccessorName}( <#if factoryMethod??><@includeModel object=factoryMethod targetType=ext.targetType/><#else>new <@includeModel object=ext.targetType/>()</#if> );
}
<@includeModel object=assignment
targetBeanName=ext.targetBeanName
raw=ext.raw
existingInstanceMapping=ext.existingInstanceMapping
targetReadAccessorName=ext.targetReadAccessorName
targetWriteAccessorName=ext.targetWriteAccessorName

View File

@ -22,7 +22,7 @@ package org.mapstruct.ap.test.references;
* @author Andreas Gudian
*
*/
public class GenericWrapper<T> {
public class GenericWrapper<T> extends BaseType {
private final T wrapped;
public GenericWrapper(T someType) {

View File

@ -39,6 +39,9 @@ public class ReferencedCustomMapper {
else if ( clazz == SomeOtherType.class ) {
return (T) new SomeOtherType( string );
}
else if ( clazz == GenericWrapper.class ) {
return (T) new GenericWrapper<String>( string );
}
return null;
}

View File

@ -18,9 +18,6 @@
*/
package org.mapstruct.ap.test.references;
import static org.fest.assertions.Assertions.assertThat;
import static org.fest.assertions.MapAssert.entry;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
@ -32,13 +29,19 @@ import org.mapstruct.ap.testutil.IssueKey;
import org.mapstruct.ap.testutil.WithClasses;
import org.mapstruct.ap.testutil.runner.AnnotationProcessorTestRunner;
import static org.fest.assertions.Assertions.assertThat;
import static org.fest.assertions.MapAssert.entry;
/**
* @author Andreas Gudian
*
*/
@IssueKey( "82" )
@WithClasses( { Bar.class, Foo.class, FooMapper.class, ReferencedCustomMapper.class, Source.class,
SourceTargetMapper.class, Target.class, BaseType.class, SomeType.class, SomeOtherType.class } )
SourceTargetMapper.class, Target.class, BaseType.class, SomeType.class, SomeOtherType.class,
GenericWrapper.class
})
@RunWith(AnnotationProcessorTestRunner.class)
public class ReferencedMapperTest {
@Test
@ -50,6 +53,7 @@ public class ReferencedMapperTest {
assertThat( target.getProp2() ).isNotNull();
assertThat( target.getProp2().getProp1() ).isEqualTo( "foo" );
assertThat( target.getProp3().getValue() ).isEqualTo( "prop3" );
assertThat( target.getProp4().getWrapped() ).isEqualTo( "prop4" );
}
private Source createSource() {
@ -60,6 +64,7 @@ public class ReferencedMapperTest {
prop2.setProp1( "foo" );
source.setProp2( prop2 );
source.setProp3( "prop3" );
source.setProp4( "prop4" );
return source;
}
@ -88,8 +93,7 @@ public class ReferencedMapperTest {
@Test
@IssueKey( "136" )
@WithClasses( { SourceTargetMapperWithPrimitives.class, SourceWithWrappers.class, TargetWithPrimitives.class,
GenericWrapper.class } )
@WithClasses({ SourceTargetMapperWithPrimitives.class, SourceWithWrappers.class, TargetWithPrimitives.class })
public void shouldMapPrimitivesWithCustomMapper() {
SourceWithWrappers source = new SourceWithWrappers();
source.setProp1( new SomeType( "42" ) );

View File

@ -26,6 +26,7 @@ public class Source {
private int prop1;
private Foo prop2;
private String prop3;
private String prop4;
public int getProp1() {
return prop1;
@ -50,4 +51,12 @@ public class Source {
public void setProp3(String prop3) {
this.prop3 = prop3;
}
public String getProp4() {
return prop4;
}
public void setProp4(String prop4) {
this.prop4 = prop4;
}
}

View File

@ -27,6 +27,7 @@ public class Target {
private long prop1;
private Bar prop2;
private SomeType prop3;
private GenericWrapper<String> prop4;
public long getProp1() {
return prop1;
@ -51,4 +52,12 @@ public class Target {
public void setProp3(SomeType prop3) {
this.prop3 = prop3;
}
public GenericWrapper<String> getProp4() {
return prop4;
}
public void setProp4(GenericWrapper<String> prop4) {
this.prop4 = prop4;
}
}