Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ public Set<String> getImports() {
.map( GemValueInfo::getValueType )
.filter( this::isNotJavaLang )
.filter( this::isNotSamePackage )
.filter( this::isNotTypeMirror )
.map( GemValueType::getFqn )
.collect( Collectors.toSet() );
}
Expand All @@ -86,4 +87,8 @@ private boolean isNotSamePackage(GemValueType valueType ) {
private boolean isNotJavaLang( GemValueType valueType ) {
return !"java.lang".equals( valueType.getPacakage() );
}

private boolean isNotTypeMirror( GemValueType valueType ) {
return !"javax.lang.model.type.TypeMirror".equals( valueType.getFqn() );
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,30 @@
<#-- @ftlvariable name="gemInfo" type="org.mapstruct.tools.gem.processor.GemInfo" -->
package ${gemInfo.gemPackageName};

import java.util.ArrayList;
<#assign hasGemInfoValues = gemInfo.gemValueInfos?size &gt; 0>
<#if hasGemInfoValues>
import java.util.HashMap;
import java.util.List;
import java.util.Map;

</#if>
import javax.lang.model.element.AnnotationMirror;
<#if hasGemInfoValues>
import javax.lang.model.element.AnnotationValue;
</#if>
import javax.lang.model.element.Element;
import javax.lang.model.element.ElementKind;
<#if hasGemInfoValues>
import javax.lang.model.element.ExecutableElement;
</#if>
import javax.lang.model.element.TypeElement;
import javax.lang.model.element.VariableElement;
<#if hasGemInfoValues>
import javax.lang.model.type.TypeMirror;
import javax.lang.model.util.AbstractAnnotationValueVisitor8;
import javax.lang.model.util.ElementFilter;
</#if>
import org.mapstruct.tools.gem.Gem;
<#if hasGemInfoValues>
import org.mapstruct.tools.gem.GemValue;
</#if>

<#list gemInfo.imports as importItem>
import ${importItem};
Expand All @@ -35,7 +42,7 @@ public class ${gemInfo.gemName} implements Gem {
<#list gemInfo.gemValueInfos as gemValueInfo>
private final GemValue<${gemValueInfo.valueType.name}> ${gemValueInfo.name};
</#list>
<#if (gemInfo.gemValueInfos?size > 0) >
<#if hasGemInfoValues>
private final boolean isValid;
</#if>
private final AnnotationMirror mirror;
Expand Down Expand Up @@ -68,10 +75,10 @@ public class ${gemInfo.gemName} implements Gem {

@Override
public boolean isValid( ) {
<#if gemInfo.gemValueInfos?size == 0>
return true;
<#else>
<#if hasGemInfoValues>
return isValid;
<#else>
return true;
</#if>
}

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

// fetch defaults from all defined values in the annotation type
List<ExecutableElement> enclosed = ElementFilter.methodsIn( mirror.getAnnotationType().asElement().getEnclosedElements() );
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,9 @@
package org.mapstruct.tools.gem.processor;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.lang.model.element.AnnotationMirror;
import javax.lang.model.element.AnnotationValue;
import javax.lang.model.element.Element;
import javax.lang.model.element.ElementKind;
import javax.lang.model.element.ExecutableElement;
import javax.lang.model.element.TypeElement;
import javax.lang.model.element.VariableElement;
import javax.lang.model.type.TypeMirror;
import javax.lang.model.util.AbstractAnnotationValueVisitor8;
import javax.lang.model.util.ElementFilter;
import org.mapstruct.tools.gem.Gem;
import org.mapstruct.tools.gem.GemValue;


public class BuilderGem implements Gem {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,19 @@
package org.mapstruct.tools.gem.processor;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.lang.model.element.AnnotationMirror;
import javax.lang.model.element.AnnotationValue;
import javax.lang.model.element.Element;
import javax.lang.model.element.ElementKind;
import javax.lang.model.element.ExecutableElement;
import javax.lang.model.element.TypeElement;
import javax.lang.model.element.VariableElement;
import javax.lang.model.type.TypeMirror;
import javax.lang.model.util.AbstractAnnotationValueVisitor8;
import javax.lang.model.util.ElementFilter;
import org.mapstruct.tools.gem.Gem;
import org.mapstruct.tools.gem.GemValue;

import javax.lang.model.type.TypeMirror;

public class SomeAnnotationGem implements Gem {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
package org.mapstruct.tools.gem.processor;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.lang.model.element.AnnotationMirror;
import javax.lang.model.element.AnnotationValue;
import javax.lang.model.element.Element;
import javax.lang.model.element.ElementKind;
import javax.lang.model.element.ExecutableElement;
import javax.lang.model.element.TypeElement;
import javax.lang.model.element.VariableElement;
import javax.lang.model.type.TypeMirror;
import javax.lang.model.util.AbstractAnnotationValueVisitor8;
import javax.lang.model.util.ElementFilter;
import org.mapstruct.tools.gem.Gem;
import org.mapstruct.tools.gem.GemValue;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,19 @@
package org.mapstruct.tools.gem.processor;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.lang.model.element.AnnotationMirror;
import javax.lang.model.element.AnnotationValue;
import javax.lang.model.element.Element;
import javax.lang.model.element.ElementKind;
import javax.lang.model.element.ExecutableElement;
import javax.lang.model.element.TypeElement;
import javax.lang.model.element.VariableElement;
import javax.lang.model.type.TypeMirror;
import javax.lang.model.util.AbstractAnnotationValueVisitor8;
import javax.lang.model.util.ElementFilter;
import org.mapstruct.tools.gem.Gem;
import org.mapstruct.tools.gem.GemValue;

import javax.lang.model.type.TypeMirror;

public class SomeArrayAnnotationGem implements Gem {

Expand Down