
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 extends TestDataRecord> 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 extends TestDataRecord>) type);
} else return null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy