/*
* This code is distributed under The GNU Lesser General Public License (LGPLv3)
* Please visit GNU site for LGPLv3 http://www.gnu.org/copyleft/lesser.html
*
* Copyright Denis Pavlov 2009
* Web: http://www.genericdtoassembler.org
* SVN: https://svn.code.sf.net/p/geda-genericdto/code/trunk/
* SVN (mirror): http://geda-genericdto.googlecode.com/svn/trunk/
*/
package com.inspiresoftware.lib.dto.geda.impl;
import com.inspiresoftware.lib.dto.geda.DTOAdaptersRegistrar;
import com.inspiresoftware.lib.dto.geda.DTOSupport;
import com.inspiresoftware.lib.dto.geda.DTOSupportAwareAdapter;
import org.springframework.util.CollectionUtils;
import java.util.Map;
/**
* Basic registrar that calls {@link com.inspiresoftware.lib.dto.geda.DTOSupport}#registerValueConverter()
* for each entry in map. All bean instances with {@link com.inspiresoftware.lib.dto.geda.DTOSupportAwareAdapter}
* will be enriched.
* <p/>
* User: denispavlov
* Date: Feb 21, 2012
* Time: 8:42:37 AM
*/
public class MappingAdapterRegistrar implements DTOAdaptersRegistrar {
private final Map<String, Object> adapters;
public MappingAdapterRegistrar(final Map<String, Object> adapters) {
this.adapters = adapters;
}
/**
* Hook for implementors.
*
* @return map of loaded adapters
*/
protected Map<String, Object> getAdapters() {
return adapters;
}
public void registerAdapters(final DTOSupport dtoSupport) {
final Map<String, Object> adapters = this.getAdapters();
if (CollectionUtils.isEmpty(adapters)) {
return;
}
for (Map.Entry<String, Object> adapterEntry : adapters.entrySet()) {
if (adapterEntry.getValue() instanceof DTOSupportAwareAdapter) {
((DTOSupportAwareAdapter) adapterEntry.getValue()).setDtoSupport(dtoSupport);
}
dtoSupport.registerAdapter(adapterEntry.getKey(), adapterEntry.getValue());
}
}
}