/*
* Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.openflowplugin.extension.api;
import org.opendaylight.openflowplugin.extension.api.exception.ConversionException;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.ExperimenterId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.experimenter.types.rev151020.experimenter.core.message.ExperimenterMessageOfChoice;
import org.opendaylight.yangtools.yang.binding.DataContainer;
/**
* convert message from MD-SAL model into OFJava-API model
*
* @param <F> input message model - MD-SAL model
* @param <T> output message model - OFJava-API
*/
public interface ConverterMessageToOFJava<F extends ExperimenterMessageOfChoice, T extends DataContainer> {
/**
* @param experimenterMessageCase where is vendor's augmentation
* @return message converted to OFJava-API
*/
T convert(F experimenterMessageCase) throws ConversionException;
/**
* @return corresponding experimenter id (vendor id)
*/
ExperimenterId getExperimenterId();
/**
* @return corresponding experimenter message type
*/
long getType();
}