Skip to content

Commit b657927

Browse files
author
Jeroen van Schagen
committed
added converter adapter for bean mapper, allowing it to be used in native spring conversions. also renamed some test packages as my ide was complaining
1 parent 664748c commit b657927

File tree

12 files changed

+86
-12
lines changed

12 files changed

+86
-12
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package io.beanmapper;
2+
3+
import java.util.Collections;
4+
import java.util.Set;
5+
6+
import org.springframework.core.convert.TypeDescriptor;
7+
import org.springframework.core.convert.converter.GenericConverter;
8+
9+
/**
10+
* Adapter that allows the bean mapper to be used in
11+
* the spring conversion service.
12+
*
13+
* @author Jeroen van Schagen
14+
* @since Aug 21, 2015
15+
*/
16+
public class BeanMapperConverterAdapter implements GenericConverter {
17+
18+
/**
19+
* Delegate bean mapper.
20+
*/
21+
private final BeanMapper beanMapper;
22+
23+
/**
24+
* Construct a new instance.
25+
* @param beanMapper the bean mapper
26+
*/
27+
public BeanMapperConverterAdapter(BeanMapper beanMapper) {
28+
this.beanMapper = beanMapper;
29+
}
30+
31+
/**
32+
* {@inheritDoc}
33+
*/
34+
@Override
35+
public Set<ConvertiblePair> getConvertibleTypes() {
36+
return Collections.singleton(new ConvertiblePair(Object.class, Object.class));
37+
}
38+
39+
/**
40+
* {@inheritDoc}
41+
*/
42+
@Override
43+
public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
44+
return beanMapper.map(source, targetType.getType());
45+
}
46+
47+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* (C) 2014 42 bv (www.42.nl). All rights reserved.
3+
*/
4+
package io.beanmapper;
5+
6+
import io.beanmapper.testmodel.person.Person;
7+
import io.beanmapper.testmodel.person.PersonView;
8+
9+
import org.junit.Assert;
10+
import org.junit.Test;
11+
import org.springframework.core.convert.support.DefaultConversionService;
12+
13+
public class BeanMapperConverterAdapterTest {
14+
15+
@Test
16+
public void testConvert() {
17+
BeanMapper beanMapper = new BeanMapper();
18+
DefaultConversionService conversionService = new DefaultConversionService();
19+
conversionService.addConverter(new BeanMapperConverterAdapter(beanMapper));
20+
Person person = new Person();
21+
person.setName("Jan");
22+
PersonView personView = conversionService.convert(person, PersonView.class);
23+
Assert.assertEquals("Jan", personView.name);
24+
}
25+
26+
}

src/test/java/io/beanmapper/BeanMapperTest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
import io.beanmapper.testmodel.collections.*;
99
import io.beanmapper.testmodel.converter.SourceWithDate;
1010
import io.beanmapper.testmodel.converter.TargetWithDateTime;
11-
import io.beanmapper.testmodel.converterBetweenNestedClasses.NestedSourceClass;
12-
import io.beanmapper.testmodel.converterBetweenNestedClasses.NestedTargetClass;
13-
import io.beanmapper.testmodel.converterBetweenNestedClasses.SourceWithNestedClass;
14-
import io.beanmapper.testmodel.converterBetweenNestedClasses.TargetWithNestedClass;
11+
import io.beanmapper.testmodel.converterbetweennestedclasses.NestedSourceClass;
12+
import io.beanmapper.testmodel.converterbetweennestedclasses.NestedTargetClass;
13+
import io.beanmapper.testmodel.converterbetweennestedclasses.SourceWithNestedClass;
14+
import io.beanmapper.testmodel.converterbetweennestedclasses.TargetWithNestedClass;
1515
import io.beanmapper.testmodel.defaults.SourceWithDefaults;
1616
import io.beanmapper.testmodel.defaults.TargetWithDefaults;
1717
import io.beanmapper.testmodel.numbers.ClassWithInteger;
@@ -59,6 +59,7 @@
5959
import mockit.Expectations;
6060
import mockit.Mocked;
6161
import mockit.Verifications;
62+
6263
import org.junit.Before;
6364
import org.junit.Test;
6465

src/test/java/io/beanmapper/core/converter/impl/NestedSourceClassToNestedTargetClassConverter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package io.beanmapper.core.converter.impl;
22

33
import io.beanmapper.core.converter.SimpleBeanConverter;
4-
import io.beanmapper.testmodel.converterBetweenNestedClasses.NestedSourceClass;
5-
import io.beanmapper.testmodel.converterBetweenNestedClasses.NestedTargetAbstractClass;
6-
import io.beanmapper.testmodel.converterBetweenNestedClasses.NestedTargetClass;
4+
import io.beanmapper.testmodel.converterbetweennestedclasses.NestedSourceClass;
5+
import io.beanmapper.testmodel.converterbetweennestedclasses.NestedTargetAbstractClass;
6+
import io.beanmapper.testmodel.converterbetweennestedclasses.NestedTargetClass;
77

88
public class NestedSourceClassToNestedTargetClassConverter extends SimpleBeanConverter<NestedSourceClass, NestedTargetAbstractClass> {
99

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.beanmapper.testmodel.converterBetweenNestedClasses;
1+
package io.beanmapper.testmodel.converterbetweennestedclasses;
22

33
public class NestedSourceClass {
44

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.beanmapper.testmodel.converterBetweenNestedClasses;
1+
package io.beanmapper.testmodel.converterbetweennestedclasses;
22

33
public abstract class NestedTargetAbstractClass {
44

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.beanmapper.testmodel.converterBetweenNestedClasses;
1+
package io.beanmapper.testmodel.converterbetweennestedclasses;
22

33
public class NestedTargetClass extends NestedTargetAbstractClass {
44

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.beanmapper.testmodel.converterBetweenNestedClasses;
1+
package io.beanmapper.testmodel.converterbetweennestedclasses;
22

33
public class SourceWithNestedClass {
44

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.beanmapper.testmodel.converterBetweenNestedClasses;
1+
package io.beanmapper.testmodel.converterbetweennestedclasses;
22

33
public class TargetWithNestedClass {
44

0 commit comments

Comments
 (0)