package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common;
+import java.util.Collection;
+import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorExecutor;
+import org.opendaylight.yangtools.yang.binding.DataContainer;
+
/**
* Converts OpenflowJava to MDSal model and vice versa
*
* @param <FROM> type of source
* @param <TO> type of result
+ * @param <DATA> the type parameter
*/
-public interface Convertor<FROM, TO> {
+public abstract class Convertor<FROM, TO, DATA extends ConvertorData> {
+ private ConvertorExecutor convertorExecutor;
+
+ /**
+ * Gets convertor manager.
+ *
+ * @return the convertor manager
+ */
+ protected ConvertorExecutor getConvertorExecutor() {
+ return convertorExecutor;
+ }
+
+ /**
+ * Sets convertor manager.
+ *
+ * @param convertorExecutor the convertor manager
+ */
+ public void setConvertorExecutor(ConvertorExecutor convertorExecutor) {
+ this.convertorExecutor = convertorExecutor;
+ }
/**
* Gets type of convertor, used in
*
* @return the type of convertor
*/
- Class<?> getType();
+ public abstract Collection<Class<? extends DataContainer>> getTypes();
/**
* Converts source to result
*
* @param source source
+ * @param data convertor data
* @return converted source
*/
- TO convert(FROM source);
+ public abstract TO convert(FROM source, DATA data);
}