-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Closed
Description
There are some unused import warnings on generated classes on version 1.5.2 that was not happening on 1.4.x
When I have a Mapper that uses a nested class for example:
Source:
package demo;
import java.util.Set;
import lombok.Data;
@Data
public class Source {
private Set<SourceNested> nested;
}
package demo;
import lombok.Data;
@Data
public class SourceNested {
private String prop;
}
Target:
package demo;
import lombok.Data;
@Data
public class Target {
private TargetNested[] nested;
@Data
public static class TargetNested {
private String prop;
}
}
Mapper:
package demo.mapper;
import org.mapstruct.Mapper;
import demo.Source;
import demo.Target;
@Mapper(componentModel = "spring")
public interface DemoMapper {
Target map(Source source);
}
Then the generated class have an unnecessary import
package demo.mapper;
import demo.Source;
import demo.SourceNested;
import demo.Target;
import demo.Target.TargetNested; // <------------- HERE IS WARNING. NOT NEED THIS IMPORT
import java.util.Set;
import javax.annotation.processing.Generated;
import org.springframework.stereotype.Component;
@Generated(
value = "org.mapstruct.ap.MappingProcessor",
date = "2022-06-24T19:26:33+0900",
comments = "version: 1.5.2.Final, compiler: Eclipse JDT (IDE) 1.4.100.v20220318-0906, environment: Java 17.0.3 (Eclipse Adoptium)"
)
@Component
public class DemoMapperImpl implements DemoMapper {
@Override
public Target map(Source source) {
if ( source == null ) {
return null;
}
Target target = new Target();
target.setNested( sourceNestedSetToTargetNestedArray( source.getNested() ) );
return target;
}
protected Target.TargetNested sourceNestedToTargetNested(SourceNested sourceNested) {
if ( sourceNested == null ) {
return null;
}
Target.TargetNested targetNested = new Target.TargetNested();
targetNested.setProp( sourceNested.getProp() );
return targetNested;
}
protected Target.TargetNested[] sourceNestedSetToTargetNestedArray(Set<SourceNested> set) {
if ( set == null ) {
return null;
}
Target.TargetNested[] targetNestedTmp = new Target.TargetNested[set.size()];
int i = 0;
for ( SourceNested sourceNested : set ) {
targetNestedTmp[i] = sourceNestedToTargetNested( sourceNested );
i++;
}
return targetNestedTmp;
}
}
Source code example:
demo.zip