#1009 avoid including non used createDecimalFormat helper method

This commit is contained in:
sjaakd 2016-12-25 15:36:56 +01:00
parent 44fe197d3b
commit 3b84ff797c
3 changed files with 28 additions and 6 deletions

View File

@ -21,7 +21,7 @@ package org.mapstruct.ap.internal.conversion;
import static org.mapstruct.ap.internal.util.Collections.asSet; import static org.mapstruct.ap.internal.util.Collections.asSet;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Arrays; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -74,8 +74,11 @@ public class BigDecimalToStringConversion extends AbstractNumberToStringConversi
@Override @Override
public List<HelperMethod> getRequiredHelperMethods(ConversionContext conversionContext) { public List<HelperMethod> getRequiredHelperMethods(ConversionContext conversionContext) {
HelperMethod helperMethod = new CreateDecimalFormat( conversionContext.getTypeFactory() ); List<HelperMethod> helpers = new ArrayList();
return Arrays.asList( helperMethod ); if ( conversionContext.getNumberFormat() != null ) {
helpers.add( new CreateDecimalFormat( conversionContext.getTypeFactory() ) );
}
return helpers;
} }
private void appendDecimalFormatter(StringBuilder sb, ConversionContext conversionContext) { private void appendDecimalFormatter(StringBuilder sb, ConversionContext conversionContext) {

View File

@ -21,7 +21,7 @@ package org.mapstruct.ap.internal.conversion;
import static org.mapstruct.ap.internal.util.Collections.asSet; import static org.mapstruct.ap.internal.util.Collections.asSet;
import java.math.BigInteger; import java.math.BigInteger;
import java.util.Arrays; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -81,8 +81,11 @@ public class BigIntegerToStringConversion extends AbstractNumberToStringConversi
@Override @Override
public List<HelperMethod> getRequiredHelperMethods(ConversionContext conversionContext) { public List<HelperMethod> getRequiredHelperMethods(ConversionContext conversionContext) {
HelperMethod helperMethod = new CreateDecimalFormat( conversionContext.getTypeFactory() ); List<HelperMethod> helpers = new ArrayList();
return Arrays.asList( helperMethod ); if ( conversionContext.getNumberFormat() != null ) {
helpers.add( new CreateDecimalFormat( conversionContext.getTypeFactory() ) );
}
return helpers;
} }
private void appendDecimalFormatter(StringBuilder sb, ConversionContext conversionContext) { private void appendDecimalFormatter(StringBuilder sb, ConversionContext conversionContext) {

View File

@ -22,12 +22,14 @@ import static org.assertj.core.api.Assertions.assertThat;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.BigInteger; import java.math.BigInteger;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mapstruct.ap.testutil.IssueKey; import org.mapstruct.ap.testutil.IssueKey;
import org.mapstruct.ap.testutil.WithClasses; import org.mapstruct.ap.testutil.WithClasses;
import org.mapstruct.ap.testutil.runner.AnnotationProcessorTestRunner; 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. * 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) @RunWith(AnnotationProcessorTestRunner.class)
public class BigNumbersConversionTest { public class BigNumbersConversionTest {
private final GeneratedSource generatedSource = new GeneratedSource();
@Rule
public GeneratedSource getGeneratedSource() {
return generatedSource;
}
@Test @Test
@IssueKey("21") @IssueKey("21")
@WithClasses({ BigIntegerSource.class, BigIntegerTarget.class, BigIntegerMapper.class }) @WithClasses({ BigIntegerSource.class, BigIntegerTarget.class, BigIntegerMapper.class })
@ -188,4 +197,11 @@ public class BigNumbersConversionTest {
assertThat( source.getString() ).isEqualTo( new BigDecimal( "13.45" ) ); assertThat( source.getString() ).isEqualTo( new BigDecimal( "13.45" ) );
assertThat( source.getBigInteger() ).isEqualTo( new BigDecimal( "14" ) ); 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" );
}
} }