@@ -0,0 +1,2440 @@
+package com.github.aureliano.evtbridge.converter.input;%0A%0Aimport java.util.List;%0Aimport java.util.Map;%0Aimport java.util.Properties;%0A%0Aimport com.github.aureliano.evtbridge.common.helper.ReflectionHelper;%0Aimport com.github.aureliano.evtbridge.common.helper.StringHelper;%0Aimport com.github.aureliano.evtbridge.converter.IConfigurationConverter;%0Aimport com.github.aureliano.evtbridge.core.config.IConfigInput;%0Aimport com.github.aureliano.evtbridge.core.exception.IExceptionHandler;%0Aimport com.github.aureliano.evtbridge.core.helper.DataHelper;%0Aimport com.github.aureliano.evtbridge.core.listener.DataReadingListener;%0Aimport com.github.aureliano.evtbridge.core.listener.ExecutionListener;%0Aimport com.github.aureliano.evtbridge.core.matcher.IMatcher;%0A%0Apublic abstract class AbstractInputConverter%3CT%3E implements IConfigurationConverter%3CT%3E %7B%0A%0A%09@SuppressWarnings(%22unchecked%22)%0A%09protected void configureObject(IConfigInput conf, Map%3CString, Object%3E data) %7B%0A%09%09conf.withConfigurationId(StringHelper.parse(data.get(%22id%22)));%0A%09%09%0A%09%09String value = StringHelper.parse(data.get(%22matcher%22));%0A%09%09if (!StringHelper.isEmpty(value)) %7B%0A%09%09%09conf.withMatcher((IMatcher) ReflectionHelper.newInstance(value));%0A%09%09%7D%0A%09%09%0A%09%09value = StringHelper.parse(data.get(%22useLastExecutionLog%22));%0A%09%09if (!StringHelper.isEmpty(value)) %7B%0A%09%09%09conf.withUseLastExecutionRecords(Boolean.parseBoolean(value.toLowerCase()));%0A%09%09%7D%0A%09%09%0A%09%09if (data.get(%22exceptionHandlers%22) != null) %7B%0A%09%09%09List%3CString%3E handlers = (List%3CString%3E) data.get(%22exceptionHandlers%22);%0A%09%09%09for (String handler : handlers) %7B%0A%09%09%09%09conf.addExceptionHandler((IExceptionHandler) ReflectionHelper.newInstance(handler));%0A%09%09%09%7D%0A%09%09%7D%0A%09%09%0A%09%09if (data.get(%22dataReadingListeners%22) != null) %7B%0A%09%09%09List%3CString%3E listeners = (List%3CString%3E) data.get(%22dataReadingListeners%22);%0A%09%09%09for (String listener : listeners) %7B%0A%09%09%09%09conf.addDataReadingListener((DataReadingListener) ReflectionHelper.newInstance(listener));%0A%09%09%09%7D%0A%09%09%7D%0A%09%09%0A%09%09if (data.get(%22executionListeners%22) != null) %7B%0A%09%09%09List%3CString%3E listeners = (List%3CString%3E) data.get(%22executionListeners%22);%0A%09%09%09for (String listener : listeners) %7B%0A%09%09%09%09conf.addExecutionListener((ExecutionListener) ReflectionHelper.newInstance(listener));%0A%09%09%09%7D%0A%09%09%7D%0A%09%09%0A%09%09if (data.get(%22metadata%22) != null) %7B%0A%09%09%09Properties properties = DataHelper.mapToProperties((Map%3CString, Object%3E) data.get(%22metadata%22));%0A%09%09%09for (Object key : properties.keySet()) %7B%0A%09%09%09%09conf.putMetadata(key.toString(), properties.getProperty(key.toString()));%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%0A%7D

Create abstract input converter.