public class User {
private Integer key1;
private Integer key2;
private Integer num1;
private Integer num2;
private String name;
public class UserDto {
private String key1;
private String key2;
private String num1;
private String num2;
private String name;
@Mapper(uses = KeyMapper.class)
public interface UserMapper {
@Mappings({
@Mapping(target = "key1", qualifiedBy = Key.class),
@Mapping(target = "key2", qualifiedBy = Key.class)
})
UserDto toUserDto(User disciplina);
@Mappings({
@Mapping(target = "key1", qualifiedBy = Key.class),
@Mapping(target = "key2", qualifiedBy = Key.class)
})
User toUser(UserDto dto);
}
public class KeyMapper {
@Key
public String asString(Integer value) {
return "[" + value + "]";
}
@Key
public Integer asInteger(String value) {
return 0;
}
}
@Generated(
value = "org.mapstruct.ap.MappingProcessor",
date = "2015-07-02T22:00:58+0100",
comments = "version: 1.0.0.CR1, compiler: javac, environment: Java 1.8.0_45 (Oracle Corporation)"
)
public class UserMapperImpl implements UserMapper {
private final KeyMapper keyMapper = new KeyMapper();
@Override
public UserDto toUserDto(User user) {
if ( user == null ) {
return null;
}
UserDto userDto = new UserDto();
userDto.setKey1( keyMapper.asString( user.getKey1() ) );
userDto.setKey2( keyMapper.asString( user.getKey2() ) );
userDto.setName( user.getName() );
userDto.setNum1( keyMapper.asString( user.getNum1() ) );
userDto.setNum2( keyMapper.asString( user.getNum2() ) );
return userDto;
}
@Override
public UserDto toUserDto(User user) {
if ( user == null ) {
return null;
}
UserDto userDto = new UserDto();
userDto.setKey1( keyMapper.asString( user.getKey1() ) );
userDto.setKey2( keyMapper.asString( user.getKey2() ) );
userDto.setName( user.getName() );
if ( user.getNum1() != null ) {
userDto.setNum1( String.valueOf( user.getNum1() ) );
}
if ( user.getNum2() != null ) {
userDto.setNum2( String.valueOf( user.getNum2() ) );
}
return userDto;
}
--
You received this message because you are subscribed to the Google Groups "mapstruct-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mapstruct-use...@googlegroups.com.
To post to this group, send email to mapstru...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
I just tried in Eclipse and it created the code I described. I am wondering though why it should change intermittendly which is what Filipe seems to report IIUC?
@Qualifier
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Key {
}
<dependencies>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.0.0.CR1</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.0.0.CR1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<target>1.7</target>
<source>1.7</source>
<annotationProcessors>
<annotationProcessor>org.mapstruct.ap.MappingProcessor</annotationProcessor>
</annotationProcessors>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
</plugins>
</build>