com.inspiresoftware.lib.dto.geda.impl.MappingAdapterRegistrar.java Source code

Java tutorial

Introduction

Here is the source code for com.inspiresoftware.lib.dto.geda.impl.MappingAdapterRegistrar.java

Source

/*
 * 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());
        }
    }
}