/* * Copyright (c) 2016 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.openflow.md.core.sal.convertor; import java.util.Collection; import java.util.Optional; import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common.ConvertorData; import org.opendaylight.yangtools.yang.binding.DataContainer; public interface ConvertorExecutor { /** * Lookup and use convertor by specified type, then converts source and returns converted result * * @param the source type * @param the result type * @param the data type * @param source the source * @param data convertor data * @return the result (can be empty, if no convertor was found) */ Optional convert(final FROM source, final DATA data); /** * Lookup and use convertor by specified type, then converts source collection and returns converted result * * @param the source type * @param the result type * @param the data type * @param source the source collection * @param data convertor data * @return the result (can be empty, if no convertor was found) */ Optional convert(final Collection source, final DATA data); }