added dozer tutorial maven project
This commit is contained in:
parent
12e8296e65
commit
24dba2108a
59
dozer-tutorial/pom.xml
Normal file
59
dozer-tutorial/pom.xml
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>com.baeldung</groupId>
|
||||||
|
<artifactId>dozer-tutorial</artifactId>
|
||||||
|
<version>1.0</version>
|
||||||
|
<name>Dozer</name>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>3.3</version>
|
||||||
|
<configuration>
|
||||||
|
<source>7</source>
|
||||||
|
<target>7</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-api</artifactId>
|
||||||
|
<version>1.7.5</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>jcl-over-slf4j</artifactId>
|
||||||
|
<version>1.7.5</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.commons</groupId>
|
||||||
|
<artifactId>commons-lang3</artifactId>
|
||||||
|
<version>3.2.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-beanutils</groupId>
|
||||||
|
<artifactId>commons-beanutils</artifactId>
|
||||||
|
<version>1.9.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>net.sf.dozer</groupId>
|
||||||
|
<artifactId>dozer</artifactId>
|
||||||
|
<version>5.5.1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<version>4.3</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
33
dozer-tutorial/src/main/java/com/baeldung/dozer/Dest.java
Normal file
33
dozer-tutorial/src/main/java/com/baeldung/dozer/Dest.java
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package com.baeldung.dozer;
|
||||||
|
|
||||||
|
public class Dest {
|
||||||
|
private String name;
|
||||||
|
private int age;
|
||||||
|
|
||||||
|
public Dest() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Dest(String name, int age) {
|
||||||
|
super();
|
||||||
|
this.name = name;
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAge() {
|
||||||
|
return age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAge(int age) {
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
38
dozer-tutorial/src/main/java/com/baeldung/dozer/Dest2.java
Normal file
38
dozer-tutorial/src/main/java/com/baeldung/dozer/Dest2.java
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
package com.baeldung.dozer;
|
||||||
|
|
||||||
|
public class Dest2 {
|
||||||
|
private int id;
|
||||||
|
private int points;
|
||||||
|
|
||||||
|
public Dest2() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Dest2(int id, int points) {
|
||||||
|
super();
|
||||||
|
this.id = id;
|
||||||
|
this.points = points;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPoints() {
|
||||||
|
return points;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPoints(int points) {
|
||||||
|
this.points = points;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Dest2 [id=" + id + ", points=" + points + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
package com.baeldung.dozer;
|
||||||
|
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import org.dozer.CustomConverter;
|
||||||
|
import org.dozer.MappingException;
|
||||||
|
|
||||||
|
public class MyCustomConvertor implements CustomConverter {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object convert(Object dest, Object source, Class<?> arg2,
|
||||||
|
Class<?> arg3) {
|
||||||
|
if (source == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (source instanceof Personne3) {
|
||||||
|
Personne3 person = (Personne3) source;
|
||||||
|
Date date = new Date(person.getDtob());
|
||||||
|
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
|
||||||
|
String isoDate = format.format(date);
|
||||||
|
return new Person3(person.getName(), isoDate);
|
||||||
|
|
||||||
|
} else if (source instanceof Person3) {
|
||||||
|
Person3 person = (Person3) source;
|
||||||
|
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
|
||||||
|
Date date = null;
|
||||||
|
try {
|
||||||
|
date = format.parse(person.getDtob());
|
||||||
|
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new MappingException("Converter MyCustomConvertor "
|
||||||
|
+ "used incorrectly:" + e.getMessage());
|
||||||
|
}
|
||||||
|
long timestamp = date.getTime();
|
||||||
|
return new Personne3(person.getName(), timestamp);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
throw new MappingException("Converter MyCustomConvertor "
|
||||||
|
+ "used incorrectly. Arguments passed in were:" + dest
|
||||||
|
+ " and " + source);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
43
dozer-tutorial/src/main/java/com/baeldung/dozer/Person.java
Normal file
43
dozer-tutorial/src/main/java/com/baeldung/dozer/Person.java
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
package com.baeldung.dozer;
|
||||||
|
|
||||||
|
public class Person {
|
||||||
|
private String name;
|
||||||
|
private String nickname;
|
||||||
|
private int age;
|
||||||
|
|
||||||
|
public Person() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Person(String name, String nickname, int age) {
|
||||||
|
super();
|
||||||
|
this.name = name;
|
||||||
|
this.nickname = nickname;
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNickname() {
|
||||||
|
return nickname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNickname(String nickname) {
|
||||||
|
this.nickname = nickname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAge() {
|
||||||
|
return age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAge(int age) {
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
43
dozer-tutorial/src/main/java/com/baeldung/dozer/Person2.java
Normal file
43
dozer-tutorial/src/main/java/com/baeldung/dozer/Person2.java
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
package com.baeldung.dozer;
|
||||||
|
|
||||||
|
public class Person2 {
|
||||||
|
private String name;
|
||||||
|
private String nickname;
|
||||||
|
private int age;
|
||||||
|
|
||||||
|
public Person2() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Person2(String name, String nickname, int age) {
|
||||||
|
super();
|
||||||
|
this.name = name;
|
||||||
|
this.nickname = nickname;
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNickname() {
|
||||||
|
return nickname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNickname(String nickname) {
|
||||||
|
this.nickname = nickname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAge() {
|
||||||
|
return age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAge(int age) {
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
39
dozer-tutorial/src/main/java/com/baeldung/dozer/Person3.java
Normal file
39
dozer-tutorial/src/main/java/com/baeldung/dozer/Person3.java
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
package com.baeldung.dozer;
|
||||||
|
|
||||||
|
public class Person3 {
|
||||||
|
private String name;
|
||||||
|
private String dtob;
|
||||||
|
|
||||||
|
public Person3() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Person3(String name, String dtob) {
|
||||||
|
super();
|
||||||
|
this.name = name;
|
||||||
|
this.dtob = dtob;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDtob() {
|
||||||
|
return dtob;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDtob(String dtob) {
|
||||||
|
this.dtob = dtob;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Person3 [name=" + name + ", dtob=" + dtob + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,43 @@
|
|||||||
|
package com.baeldung.dozer;
|
||||||
|
|
||||||
|
public class Personne {
|
||||||
|
private String nom;
|
||||||
|
private String surnom;
|
||||||
|
private int age;
|
||||||
|
|
||||||
|
public Personne() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Personne(String nom, String surnom, int age) {
|
||||||
|
super();
|
||||||
|
this.nom = nom;
|
||||||
|
this.surnom = surnom;
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNom() {
|
||||||
|
return nom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNom(String nom) {
|
||||||
|
this.nom = nom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSurnom() {
|
||||||
|
return surnom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSurnom(String surnom) {
|
||||||
|
this.surnom = surnom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAge() {
|
||||||
|
return age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAge(int age) {
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,47 @@
|
|||||||
|
package com.baeldung.dozer;
|
||||||
|
|
||||||
|
import org.dozer.Mapping;
|
||||||
|
|
||||||
|
public class Personne2 {
|
||||||
|
private String nom;
|
||||||
|
private String surnom;
|
||||||
|
private int age;
|
||||||
|
|
||||||
|
public Personne2() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Personne2(String nom, String surnom, int age) {
|
||||||
|
super();
|
||||||
|
this.nom = nom;
|
||||||
|
this.surnom = surnom;
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Mapping("name")
|
||||||
|
public String getNom() {
|
||||||
|
return nom;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Mapping("nickname")
|
||||||
|
public String getSurnom() {
|
||||||
|
return surnom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNom(String nom) {
|
||||||
|
this.nom = nom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSurnom(String surnom) {
|
||||||
|
this.surnom = surnom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAge() {
|
||||||
|
return age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAge(int age) {
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package com.baeldung.dozer;
|
||||||
|
|
||||||
|
public class Personne3 {
|
||||||
|
private String name;
|
||||||
|
private long dtob;
|
||||||
|
|
||||||
|
public Personne3() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Personne3(String name, long dtob) {
|
||||||
|
super();
|
||||||
|
this.name = name;
|
||||||
|
this.dtob = dtob;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getDtob() {
|
||||||
|
return dtob;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDtob(long dtob) {
|
||||||
|
this.dtob = dtob;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Personne3 [name=" + name + ", dtob=" + dtob + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
32
dozer-tutorial/src/main/java/com/baeldung/dozer/Source.java
Normal file
32
dozer-tutorial/src/main/java/com/baeldung/dozer/Source.java
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
package com.baeldung.dozer;
|
||||||
|
|
||||||
|
public class Source {
|
||||||
|
private String name;
|
||||||
|
private int age;
|
||||||
|
|
||||||
|
public Source() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Source(String name, int age) {
|
||||||
|
super();
|
||||||
|
this.name = name;
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAge() {
|
||||||
|
return age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAge(int age) {
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
38
dozer-tutorial/src/main/java/com/baeldung/dozer/Source2.java
Normal file
38
dozer-tutorial/src/main/java/com/baeldung/dozer/Source2.java
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
package com.baeldung.dozer;
|
||||||
|
|
||||||
|
public class Source2 {
|
||||||
|
private String id;
|
||||||
|
private double points;
|
||||||
|
|
||||||
|
public Source2() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Source2(String id, double points) {
|
||||||
|
super();
|
||||||
|
this.id = id;
|
||||||
|
this.points = points;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getPoints() {
|
||||||
|
return points;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPoints(double points) {
|
||||||
|
this.points = points;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Source2 [id=" + id + ", points=" + points + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
199
dozer-tutorial/src/test/java/com/baeldung/dozer/DozerTest.java
Normal file
199
dozer-tutorial/src/test/java/com/baeldung/dozer/DozerTest.java
Normal file
@ -0,0 +1,199 @@
|
|||||||
|
package com.baeldung.dozer;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.dozer.DozerBeanMapper;
|
||||||
|
import org.dozer.loader.api.BeanMappingBuilder;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class DozerTest {
|
||||||
|
DozerBeanMapper mapper = new DozerBeanMapper();
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void before() throws Exception {
|
||||||
|
mapper = new DozerBeanMapper();
|
||||||
|
}
|
||||||
|
|
||||||
|
BeanMappingBuilder builder = new BeanMappingBuilder() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void configure() {
|
||||||
|
mapping(Person.class, Personne.class).fields("name", "nom").fields(
|
||||||
|
"nickname", "surnom");
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
BeanMappingBuilder builderMinusAge = new BeanMappingBuilder() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void configure() {
|
||||||
|
mapping(Person.class, Personne.class).fields("name", "nom")
|
||||||
|
.fields("nickname", "surnom").exclude("age");
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenApiMapper_whenMaps_thenCorrect() {
|
||||||
|
Personne frenchAppPerson = new Personne("Sylvester Stallone", "Rambo",
|
||||||
|
70);
|
||||||
|
mapper.addMapping(builder);
|
||||||
|
Person englishAppPerson = mapper.map(frenchAppPerson, Person.class);
|
||||||
|
assertEquals(englishAppPerson.getName(), frenchAppPerson.getNom());
|
||||||
|
assertEquals(englishAppPerson.getNickname(),
|
||||||
|
frenchAppPerson.getSurnom());
|
||||||
|
assertEquals(englishAppPerson.getAge(), frenchAppPerson.getAge());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenApiMapper_whenMapsOnlySpecifiedFields_thenCorrect() {
|
||||||
|
Person englishAppPerson = new Person("Sylvester Stallone", "Rambo", 70);
|
||||||
|
mapper.addMapping(builderMinusAge);
|
||||||
|
Personne frenchAppPerson = mapper.map(englishAppPerson, Personne.class);
|
||||||
|
assertEquals(frenchAppPerson.getNom(), englishAppPerson.getName());
|
||||||
|
assertEquals(frenchAppPerson.getSurnom(),
|
||||||
|
englishAppPerson.getNickname());
|
||||||
|
assertEquals(frenchAppPerson.getAge(), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenApiMapper_whenMapsBidirectionally_thenCorrect() {
|
||||||
|
Person englishAppPerson = new Person("Sylvester Stallone", "Rambo", 70);
|
||||||
|
mapper.addMapping(builder);
|
||||||
|
Personne frenchAppPerson = mapper.map(englishAppPerson, Personne.class);
|
||||||
|
assertEquals(frenchAppPerson.getNom(), englishAppPerson.getName());
|
||||||
|
assertEquals(frenchAppPerson.getSurnom(),
|
||||||
|
englishAppPerson.getNickname());
|
||||||
|
assertEquals(frenchAppPerson.getAge(), englishAppPerson.getAge());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenSourceObjectAndDestClass_whenMapsSameNameFieldsCorrectly_thenCorrect() {
|
||||||
|
Source source = new Source("Baeldung", 10);
|
||||||
|
Dest dest = mapper.map(source, Dest.class);
|
||||||
|
assertEquals(dest.getName(), "Baeldung");
|
||||||
|
assertEquals(dest.getAge(), 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenSourceObjectAndDestObject_whenMapsSameNameFieldsCorrectly_thenCorrect() {
|
||||||
|
Source source = new Source("Baeldung", 10);
|
||||||
|
Dest dest = new Dest();
|
||||||
|
mapper.map(source, dest);
|
||||||
|
assertEquals(dest.getName(), "Baeldung");
|
||||||
|
assertEquals(dest.getAge(), 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenSourceAndDestWithDifferentFieldTypes_whenMapsAndAutoConverts_thenCorrect() {
|
||||||
|
Source2 source = new Source2("320", 15.2);
|
||||||
|
Dest2 dest = mapper.map(source, Dest2.class);
|
||||||
|
assertEquals(dest.getId(), 320);
|
||||||
|
assertEquals(dest.getPoints(), 15);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenSrcAndDestWithDifferentFieldNamesWithCustomMapper_whenMaps_thenCorrect() {
|
||||||
|
List<String> mappingFiles = new ArrayList<>();
|
||||||
|
mappingFiles.add("dozer_mapping.xml");
|
||||||
|
Personne frenchAppPerson = new Personne("Sylvester Stallone", "Rambo",
|
||||||
|
70);
|
||||||
|
mapper.setMappingFiles(mappingFiles);
|
||||||
|
Person englishAppPerson = mapper.map(frenchAppPerson, Person.class);
|
||||||
|
assertEquals(englishAppPerson.getName(), frenchAppPerson.getNom());
|
||||||
|
assertEquals(englishAppPerson.getNickname(),
|
||||||
|
frenchAppPerson.getSurnom());
|
||||||
|
assertEquals(englishAppPerson.getAge(), frenchAppPerson.getAge());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenSrcAndDestWithDifferentFieldNamesWithCustomMapper_whenMapsBidirectionally_thenCorrect() {
|
||||||
|
List<String> mappingFiles = new ArrayList<>();
|
||||||
|
mappingFiles.add("dozer_mapping.xml");
|
||||||
|
Person englishAppPerson = new Person("Dwayne Johnson", "The Rock", 44);
|
||||||
|
mapper.setMappingFiles(mappingFiles);
|
||||||
|
Personne frenchAppPerson = mapper.map(englishAppPerson, Personne.class);
|
||||||
|
assertEquals(frenchAppPerson.getNom(), englishAppPerson.getName());
|
||||||
|
assertEquals(frenchAppPerson.getSurnom(),
|
||||||
|
englishAppPerson.getNickname());
|
||||||
|
assertEquals(frenchAppPerson.getAge(), englishAppPerson.getAge());
|
||||||
|
}
|
||||||
|
|
||||||
|
// @Test
|
||||||
|
// public void givenMappingFileOutsideClasspath_whenMaps_thenCorrect() {
|
||||||
|
// List<String> mappingFiles = new ArrayList<>();
|
||||||
|
// mappingFiles.add("file:E:\\dozer_mapping.xml");
|
||||||
|
// Person englishAppPerson = new Person("Marshall Bruce Mathers III",
|
||||||
|
// "Eminem", 43);
|
||||||
|
// mapper.setMappingFiles(mappingFiles);
|
||||||
|
// Personne frenchAppPerson = mapper.map(englishAppPerson, Personne.class);
|
||||||
|
// assertEquals(frenchAppPerson.getNom(), englishAppPerson.getName());
|
||||||
|
// assertEquals(frenchAppPerson.getSurnom(),
|
||||||
|
// englishAppPerson.getNickname());
|
||||||
|
// assertEquals(frenchAppPerson.getAge(), englishAppPerson.getAge());
|
||||||
|
// }
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenSrcAndDest_whenMapsOnlySpecifiedFields_thenCorrect() {
|
||||||
|
List<String> mappingFiles = new ArrayList<>();
|
||||||
|
mappingFiles.add("dozer_mapping2.xml");
|
||||||
|
Person englishAppPerson = new Person("Shawn Corey Carter", "Jay Z", 46);
|
||||||
|
mapper.setMappingFiles(mappingFiles);
|
||||||
|
Personne frenchAppPerson = mapper.map(englishAppPerson, Personne.class);
|
||||||
|
assertEquals(frenchAppPerson.getNom(), englishAppPerson.getName());
|
||||||
|
assertEquals(frenchAppPerson.getSurnom(),
|
||||||
|
englishAppPerson.getNickname());
|
||||||
|
assertEquals(frenchAppPerson.getAge(), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenAnnotatedSrcFields_whenMapsToRightDestField_thenCorrect() {
|
||||||
|
Person2 englishAppPerson = new Person2("Jean-Claude Van Damme", "JCVD",
|
||||||
|
55);
|
||||||
|
Personne2 frenchAppPerson = mapper.map(englishAppPerson,
|
||||||
|
Personne2.class);
|
||||||
|
assertEquals(frenchAppPerson.getNom(), englishAppPerson.getName());
|
||||||
|
assertEquals(frenchAppPerson.getSurnom(),
|
||||||
|
englishAppPerson.getNickname());
|
||||||
|
assertEquals(frenchAppPerson.getAge(), englishAppPerson.getAge());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenAnnotatedSrcFields_whenMapsToRightDestFieldBidirectionally_thenCorrect() {
|
||||||
|
Personne2 frenchAppPerson = new Personne2("Jason Statham",
|
||||||
|
"transporter", 49);
|
||||||
|
Person2 englishAppPerson = mapper.map(frenchAppPerson, Person2.class);
|
||||||
|
assertEquals(englishAppPerson.getName(), frenchAppPerson.getNom());
|
||||||
|
assertEquals(englishAppPerson.getNickname(),
|
||||||
|
frenchAppPerson.getSurnom());
|
||||||
|
assertEquals(englishAppPerson.getAge(), frenchAppPerson.getAge());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenSrcAndDestWithDifferentFieldTypes_whenAbleToCustomConvert_thenCorrect() {
|
||||||
|
String dateTime = "2007-06-26T21:22:39Z";
|
||||||
|
long timestamp = new Long("1182882159000");
|
||||||
|
Person3 person = new Person3("Rich", dateTime);
|
||||||
|
mapper.setMappingFiles(Arrays
|
||||||
|
.asList(new String[] { "dozer_custom_convertor.xml" }));
|
||||||
|
Personne3 person0 = mapper.map(person, Personne3.class);
|
||||||
|
assertEquals(timestamp, person0.getDtob());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenSrcAndDestWithDifferentFieldTypes_whenAbleToCustomConvertBidirectionally_thenCorrect() {
|
||||||
|
String dateTime = "2007-06-26T21:22:39Z";
|
||||||
|
long timestamp = new Long("1182882159000");
|
||||||
|
Personne3 person = new Personne3("Rich", timestamp);
|
||||||
|
mapper.setMappingFiles(Arrays
|
||||||
|
.asList(new String[] { "dozer_custom_convertor.xml" }));
|
||||||
|
Person3 person0 = mapper.map(person, Person3.class);
|
||||||
|
assertEquals(dateTime, person0.getDtob());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
14
dozer-tutorial/src/test/resources/dozer_custom_convertor.xml
Normal file
14
dozer-tutorial/src/test/resources/dozer_custom_convertor.xml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<mappings xmlns="http://dozer.sourceforge.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://dozer.sourceforge.net
|
||||||
|
http://dozer.sourceforge.net/schema/beanmapping.xsd">
|
||||||
|
<configuration>
|
||||||
|
<custom-converters>
|
||||||
|
<converter type="com.baeldung.dozer.MyCustomConvertor">
|
||||||
|
<class-a>com.baeldung.dozer.Personne3</class-a>
|
||||||
|
<class-b>com.baeldung.dozer.Person3</class-b>
|
||||||
|
</converter>
|
||||||
|
</custom-converters>
|
||||||
|
</configuration>
|
||||||
|
|
||||||
|
</mappings>
|
17
dozer-tutorial/src/test/resources/dozer_mapping.xml
Normal file
17
dozer-tutorial/src/test/resources/dozer_mapping.xml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<mappings xmlns="http://dozer.sourceforge.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://dozer.sourceforge.net
|
||||||
|
http://dozer.sourceforge.net/schema/beanmapping.xsd">
|
||||||
|
<mapping>
|
||||||
|
<class-a>com.baeldung.dozer.Personne</class-a>
|
||||||
|
<class-b>com.baeldung.dozer.Person</class-b>
|
||||||
|
<field>
|
||||||
|
<a>nom</a>
|
||||||
|
<b>name</b>
|
||||||
|
</field>
|
||||||
|
<field>
|
||||||
|
<a>surnom</a>
|
||||||
|
<b>nickname</b>
|
||||||
|
</field>
|
||||||
|
</mapping>
|
||||||
|
</mappings>
|
17
dozer-tutorial/src/test/resources/dozer_mapping2.xml
Normal file
17
dozer-tutorial/src/test/resources/dozer_mapping2.xml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<mappings xmlns="http://dozer.sourceforge.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://dozer.sourceforge.net
|
||||||
|
http://dozer.sourceforge.net/schema/beanmapping.xsd">
|
||||||
|
<mapping wildcard="false">
|
||||||
|
<class-a>com.baeldung.dozer.Personne</class-a>
|
||||||
|
<class-b>com.baeldung.dozer.Person</class-b>
|
||||||
|
<field>
|
||||||
|
<a>nom</a>
|
||||||
|
<b>name</b>
|
||||||
|
</field>
|
||||||
|
<field>
|
||||||
|
<a>surnom</a>
|
||||||
|
<b>nickname</b>
|
||||||
|
</field>
|
||||||
|
</mapping>
|
||||||
|
</mappings>
|
Loading…
x
Reference in New Issue
Block a user