Skip to content

Commit 7592d1e

Browse files
committed
remove unused imports from generated code
1 parent 33ad138 commit 7592d1e

6 files changed

Lines changed: 21 additions & 36 deletions

File tree

processor/src/main/java/org/mapstruct/tools/gem/processor/GemInfo.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ public Set<String> getImports() {
6363
.map( GemValueInfo::getValueType )
6464
.filter( this::isNotJavaLang )
6565
.filter( this::isNotSamePackage )
66+
.filter( this::isNotTypeMirror )
6667
.map( GemValueType::getFqn )
6768
.collect( Collectors.toSet() );
6869
}
@@ -86,4 +87,8 @@ private boolean isNotSamePackage(GemValueType valueType ) {
8687
private boolean isNotJavaLang( GemValueType valueType ) {
8788
return !"java.lang".equals( valueType.getPacakage() );
8889
}
90+
91+
private boolean isNotTypeMirror( GemValueType valueType ) {
92+
return !"javax.lang.model.type.TypeMirror".equals( valueType.getFqn() );
93+
}
8994
}

processor/src/main/resources/org/mapstruct/tools/gem/processor/Gem.ftl

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,30 @@
88
<#-- @ftlvariable name="gemInfo" type="org.mapstruct.tools.gem.processor.GemInfo" -->
99
package ${gemInfo.gemPackageName};
1010

11-
import java.util.ArrayList;
11+
<#assign hasGemInfoValues = gemInfo.gemValueInfos?size &gt; 0>
12+
<#if hasGemInfoValues>
1213
import java.util.HashMap;
1314
import java.util.List;
1415
import java.util.Map;
1516

17+
</#if>
1618
import javax.lang.model.element.AnnotationMirror;
19+
<#if hasGemInfoValues>
1720
import javax.lang.model.element.AnnotationValue;
21+
</#if>
1822
import javax.lang.model.element.Element;
19-
import javax.lang.model.element.ElementKind;
23+
<#if hasGemInfoValues>
2024
import javax.lang.model.element.ExecutableElement;
25+
</#if>
2126
import javax.lang.model.element.TypeElement;
22-
import javax.lang.model.element.VariableElement;
27+
<#if hasGemInfoValues>
2328
import javax.lang.model.type.TypeMirror;
24-
import javax.lang.model.util.AbstractAnnotationValueVisitor8;
2529
import javax.lang.model.util.ElementFilter;
30+
</#if>
2631
import org.mapstruct.tools.gem.Gem;
32+
<#if hasGemInfoValues>
2733
import org.mapstruct.tools.gem.GemValue;
34+
</#if>
2835

2936
<#list gemInfo.imports as importItem>
3037
import ${importItem};
@@ -35,7 +42,7 @@ public class ${gemInfo.gemName} implements Gem {
3542
<#list gemInfo.gemValueInfos as gemValueInfo>
3643
private final GemValue<${gemValueInfo.valueType.name}> ${gemValueInfo.name};
3744
</#list>
38-
<#if (gemInfo.gemValueInfos?size > 0) >
45+
<#if hasGemInfoValues>
3946
private final boolean isValid;
4047
</#if>
4148
private final AnnotationMirror mirror;
@@ -68,10 +75,10 @@ public class ${gemInfo.gemName} implements Gem {
6875

6976
@Override
7077
public boolean isValid( ) {
71-
<#if gemInfo.gemValueInfos?size == 0>
72-
return true;
73-
<#else>
78+
<#if hasGemInfoValues>
7479
return isValid;
80+
<#else>
81+
return true;
7582
</#if>
7683
}
7784

@@ -97,7 +104,7 @@ public class ${gemInfo.gemName} implements Gem {
97104
if ( mirror == null || builder == null ) {
98105
return null;
99106
}
100-
<#if gemInfo.gemValueInfos?size != 0>
107+
<#if hasGemInfoValues>
101108

102109
// fetch defaults from all defined values in the annotation type
103110
List<ExecutableElement> enclosed = ElementFilter.methodsIn( mirror.getAnnotationType().asElement().getEnclosedElements() );

processor/src/test/resources/fixtures/org/mapstruct/tools/gem/processor/BuilderGem.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,9 @@
11
package org.mapstruct.tools.gem.processor;
22

3-
import java.util.ArrayList;
4-
import java.util.HashMap;
5-
import java.util.List;
6-
import java.util.Map;
7-
83
import javax.lang.model.element.AnnotationMirror;
9-
import javax.lang.model.element.AnnotationValue;
104
import javax.lang.model.element.Element;
11-
import javax.lang.model.element.ElementKind;
12-
import javax.lang.model.element.ExecutableElement;
135
import javax.lang.model.element.TypeElement;
14-
import javax.lang.model.element.VariableElement;
15-
import javax.lang.model.type.TypeMirror;
16-
import javax.lang.model.util.AbstractAnnotationValueVisitor8;
17-
import javax.lang.model.util.ElementFilter;
186
import org.mapstruct.tools.gem.Gem;
19-
import org.mapstruct.tools.gem.GemValue;
207

218

229
public class BuilderGem implements Gem {

processor/src/test/resources/fixtures/org/mapstruct/tools/gem/processor/SomeAnnotationGem.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,19 @@
11
package org.mapstruct.tools.gem.processor;
22

3-
import java.util.ArrayList;
43
import java.util.HashMap;
54
import java.util.List;
65
import java.util.Map;
76

87
import javax.lang.model.element.AnnotationMirror;
98
import javax.lang.model.element.AnnotationValue;
109
import javax.lang.model.element.Element;
11-
import javax.lang.model.element.ElementKind;
1210
import javax.lang.model.element.ExecutableElement;
1311
import javax.lang.model.element.TypeElement;
14-
import javax.lang.model.element.VariableElement;
1512
import javax.lang.model.type.TypeMirror;
16-
import javax.lang.model.util.AbstractAnnotationValueVisitor8;
1713
import javax.lang.model.util.ElementFilter;
1814
import org.mapstruct.tools.gem.Gem;
1915
import org.mapstruct.tools.gem.GemValue;
2016

21-
import javax.lang.model.type.TypeMirror;
2217

2318
public class SomeAnnotationGem implements Gem {
2419

processor/src/test/resources/fixtures/org/mapstruct/tools/gem/processor/SomeAnnotationsGem.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
package org.mapstruct.tools.gem.processor;
22

3-
import java.util.ArrayList;
43
import java.util.HashMap;
54
import java.util.List;
65
import java.util.Map;
76

87
import javax.lang.model.element.AnnotationMirror;
98
import javax.lang.model.element.AnnotationValue;
109
import javax.lang.model.element.Element;
11-
import javax.lang.model.element.ElementKind;
1210
import javax.lang.model.element.ExecutableElement;
1311
import javax.lang.model.element.TypeElement;
14-
import javax.lang.model.element.VariableElement;
1512
import javax.lang.model.type.TypeMirror;
16-
import javax.lang.model.util.AbstractAnnotationValueVisitor8;
1713
import javax.lang.model.util.ElementFilter;
1814
import org.mapstruct.tools.gem.Gem;
1915
import org.mapstruct.tools.gem.GemValue;

processor/src/test/resources/fixtures/org/mapstruct/tools/gem/processor/SomeArrayAnnotationGem.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,19 @@
11
package org.mapstruct.tools.gem.processor;
22

3-
import java.util.ArrayList;
43
import java.util.HashMap;
54
import java.util.List;
65
import java.util.Map;
76

87
import javax.lang.model.element.AnnotationMirror;
98
import javax.lang.model.element.AnnotationValue;
109
import javax.lang.model.element.Element;
11-
import javax.lang.model.element.ElementKind;
1210
import javax.lang.model.element.ExecutableElement;
1311
import javax.lang.model.element.TypeElement;
14-
import javax.lang.model.element.VariableElement;
1512
import javax.lang.model.type.TypeMirror;
16-
import javax.lang.model.util.AbstractAnnotationValueVisitor8;
1713
import javax.lang.model.util.ElementFilter;
1814
import org.mapstruct.tools.gem.Gem;
1915
import org.mapstruct.tools.gem.GemValue;
2016

21-
import javax.lang.model.type.TypeMirror;
2217

2318
public class SomeArrayAnnotationGem implements Gem {
2419

0 commit comments

Comments
 (0)