From 3b84ff797c8d3565d9199d2f53d522b28e1de5df Mon Sep 17 00:00:00 2001 From: sjaakd Date: Sun, 25 Dec 2016 15:36:56 +0100 Subject: [PATCH] #1009 avoid including non used createDecimalFormat helper method --- .../conversion/BigDecimalToStringConversion.java | 9 ++++++--- .../conversion/BigIntegerToStringConversion.java | 9 ++++++--- .../bignumbers/BigNumbersConversionTest.java | 16 ++++++++++++++++ 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/processor/src/main/java/org/mapstruct/ap/internal/conversion/BigDecimalToStringConversion.java b/processor/src/main/java/org/mapstruct/ap/internal/conversion/BigDecimalToStringConversion.java index e03e215d0..09663855a 100644 --- a/processor/src/main/java/org/mapstruct/ap/internal/conversion/BigDecimalToStringConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/internal/conversion/BigDecimalToStringConversion.java @@ -21,7 +21,7 @@ package org.mapstruct.ap.internal.conversion; import static org.mapstruct.ap.internal.util.Collections.asSet; import java.math.BigDecimal; -import java.util.Arrays; +import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -74,8 +74,11 @@ public class BigDecimalToStringConversion extends AbstractNumberToStringConversi @Override public List getRequiredHelperMethods(ConversionContext conversionContext) { - HelperMethod helperMethod = new CreateDecimalFormat( conversionContext.getTypeFactory() ); - return Arrays.asList( helperMethod ); + List helpers = new ArrayList(); + if ( conversionContext.getNumberFormat() != null ) { + helpers.add( new CreateDecimalFormat( conversionContext.getTypeFactory() ) ); + } + return helpers; } private void appendDecimalFormatter(StringBuilder sb, ConversionContext conversionContext) { diff --git a/processor/src/main/java/org/mapstruct/ap/internal/conversion/BigIntegerToStringConversion.java b/processor/src/main/java/org/mapstruct/ap/internal/conversion/BigIntegerToStringConversion.java index b5f5a3421..51693cd9c 100644 --- a/processor/src/main/java/org/mapstruct/ap/internal/conversion/BigIntegerToStringConversion.java +++ b/processor/src/main/java/org/mapstruct/ap/internal/conversion/BigIntegerToStringConversion.java @@ -21,7 +21,7 @@ package org.mapstruct.ap.internal.conversion; import static org.mapstruct.ap.internal.util.Collections.asSet; import java.math.BigInteger; -import java.util.Arrays; +import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -81,8 +81,11 @@ public class BigIntegerToStringConversion extends AbstractNumberToStringConversi @Override public List getRequiredHelperMethods(ConversionContext conversionContext) { - HelperMethod helperMethod = new CreateDecimalFormat( conversionContext.getTypeFactory() ); - return Arrays.asList( helperMethod ); + List helpers = new ArrayList(); + if ( conversionContext.getNumberFormat() != null ) { + helpers.add( new CreateDecimalFormat( conversionContext.getTypeFactory() ) ); + } + return helpers; } private void appendDecimalFormatter(StringBuilder sb, ConversionContext conversionContext) { diff --git a/processor/src/test/java/org/mapstruct/ap/test/conversion/bignumbers/BigNumbersConversionTest.java b/processor/src/test/java/org/mapstruct/ap/test/conversion/bignumbers/BigNumbersConversionTest.java index 9f18468a0..9e91f0f1e 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/conversion/bignumbers/BigNumbersConversionTest.java +++ b/processor/src/test/java/org/mapstruct/ap/test/conversion/bignumbers/BigNumbersConversionTest.java @@ -22,12 +22,14 @@ import static org.assertj.core.api.Assertions.assertThat; import java.math.BigDecimal; import java.math.BigInteger; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mapstruct.ap.testutil.IssueKey; import org.mapstruct.ap.testutil.WithClasses; import org.mapstruct.ap.testutil.runner.AnnotationProcessorTestRunner; +import org.mapstruct.ap.testutil.runner.GeneratedSource; /** * Tests conversions between {@link BigInteger} and numbers as well as String. @@ -37,6 +39,13 @@ import org.mapstruct.ap.testutil.runner.AnnotationProcessorTestRunner; @RunWith(AnnotationProcessorTestRunner.class) public class BigNumbersConversionTest { + private final GeneratedSource generatedSource = new GeneratedSource(); + + @Rule + public GeneratedSource getGeneratedSource() { + return generatedSource; + } + @Test @IssueKey("21") @WithClasses({ BigIntegerSource.class, BigIntegerTarget.class, BigIntegerMapper.class }) @@ -188,4 +197,11 @@ public class BigNumbersConversionTest { assertThat( source.getString() ).isEqualTo( new BigDecimal( "13.45" ) ); assertThat( source.getBigInteger() ).isEqualTo( new BigDecimal( "14" ) ); } + + @Test + @IssueKey("1009") + @WithClasses({ BigIntegerSource.class, BigIntegerTarget.class, BigIntegerMapper.class }) + public void shouldNotGenerateCreateDecimalFormatMethod() { + getGeneratedSource().forMapper( BigIntegerMapper.class ).content().doesNotContain( "createDecimalFormat" ); + } }