All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.automationrockstars.gir.data.converter.TestDataRecordConverter Maven / Gradle / Ivy

The newest version!
/*
 * 
 */

package com.automationrockstars.gir.data.converter;

import com.automationrockstars.gir.data.TestDataRecord;
import com.automationrockstars.gir.data.impl.MapTestDataRecord;
import com.automationrockstars.gir.data.impl.TestDataProxyFactory;
import com.google.common.collect.Maps;
import org.apache.commons.beanutils.converters.AbstractConverter;

import java.util.Map;

public class TestDataRecordConverter extends AbstractConverter {

    public static Class convertible;

    @Override
    protected  T convertToType(Class type, Object value) throws Throwable {
        return convert(type, value);
    }

    @Override
    protected Class getDefaultType() {
        return convertible;
    }

    @SuppressWarnings("unchecked")
    public  T convert(Class type, Object value) {
        if (TestDataProxyFactory.isTestDataRecord(type)) {
            if (value == null) {
                value = MapTestDataRecord.empty();
            }
            if (type.isAssignableFrom(value.getClass())) {
                return (T) value;
            }
            if (TestDataRecord.class.isAssignableFrom(value.getClass())) {
                Map content = Maps.newHashMap();
                content.putAll(((TestDataRecord) value).toMap());
                value = content;
            }
            return (T) TestDataProxyFactory.createProxy(new MapTestDataRecord((Map) value), (Class) type);
        } else return null;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy