2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
9 package eu
.etaxonomy
.cdm
.remote
.dto
.assembler
;
11 import java
.util
.ArrayList
;
12 import java
.util
.List
;
15 import org
.dozer
.BeanFactory
;
16 import org
.dozer
.CustomConverter
;
17 import org
.dozer
.CustomFieldMapper
;
18 import org
.dozer
.DozerBeanMapper
;
19 import org
.dozer
.DozerEventListener
;
20 import org
.dozer
.Mapper
;
21 import org
.springframework
.beans
.factory
.FactoryBean
;
22 import org
.springframework
.beans
.factory
.InitializingBean
;
23 import org
.springframework
.core
.io
.Resource
;
26 * extended version of Sören Chittka's DozerBeanMapperFactoryBean, allowing other
27 * properties to be set.
28 * @author Sören Chittka
30 public class DozerBeanMapperFactoryBean
implements FactoryBean
, InitializingBean
{
32 private DozerBeanMapper beanMapper
;
33 private Resource
[] mappingFiles
;
34 private List
<CustomConverter
> customConverters
;
35 private Map
<String
,CustomConverter
> customConvertersWithId
;
36 private List
<DozerEventListener
> eventListeners
;
37 private Map
<String
, BeanFactory
> factories
;
38 private CustomFieldMapper customFieldMapper
;
41 public final void setMappingFiles(final Resource
[] mappingFiles
) {
42 this.mappingFiles
= mappingFiles
;
45 public final void setCustomConverters(final List
<CustomConverter
> customConverters
) {
46 this.customConverters
= customConverters
;
49 public final void setEventListeners(final List
<EventListener
> eventListeners
) {
50 this.eventListeners
= eventListeners
;
53 public final void setFactories(final Map
<String
, BeanFactory
> factories
) {
54 this.factories
= factories
;
57 public final void setCustomFieldMapper(final CustomFieldMapper customFieldMapper
) {
58 this.customFieldMapper
= customFieldMapper
;
61 public final void setCustomConvertersWithId(final Map
<String
,CustomConverter
> customConvertersWithId
) {
62 this.customConvertersWithId
= customConvertersWithId
;
65 // ==================================================================================================================================
66 // interface 'FactoryBean'
67 // ==================================================================================================================================
68 public final Object
getObject() throws Exception
{
69 return this.beanMapper
;
73 public final Class
<Mapper
> getObjectType() {
78 public final boolean isSingleton() {
82 // ==================================================================================================================================
83 // interface 'InitializingBean'
84 // ==================================================================================================================================
86 public final void afterPropertiesSet() throws Exception
{
88 DozerBeanMapperBuilder beanMapperBuilder
= DozerBeanMapperBuilder
.create();
90 final List
<String
> mappings
= new ArrayList
<>(this.mappingFiles
.length
);
91 if (this.mappingFiles
!= null) {
92 for (Resource mappingFile
: this.mappingFiles
) {
93 mappings
.add(mappingFile
.getURL().toString());
95 beanMapperBuilder
.withMappingFiles(mappings
);
98 if (this.customConverters
!= null) {
99 beanMapperBuilder
.withCustomConverters(customConverters
);
101 if (this.eventListeners
!= null) {
102 beanMapperBuilder
.withEventListeners(eventListeners
);
104 if (this.factories
!= null) {
105 beanMapperBuilder
.withBeanFactorys(factories
);
108 if(this.customFieldMapper
!= null) {
109 beanMapperBuilder
.withCustomFieldMapper(customFieldMapper
);
112 if(this.customConvertersWithId
!= null) {
113 beanMapperBuilder
.withCustomConvertersWithIds(customConvertersWithId
);