* 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.flow;
import java.util.HashMap;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModFlags;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModFlagsV10;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowModInputBuilder;
+import org.opendaylight.yangtools.yang.common.Uint8;
+
+public final class FlowFlagsInjector {
+ private FlowFlagsInjector() {
+ }
-public class FlowFlagsInjector {
@SuppressWarnings("unchecked")
- public static <FROM, TO> void inject(Optional<FROM> source, TO target, short version) {
- FROM sourceResult;
+ public static <F, T> void inject(final Optional<F> source, final T target, final Uint8 version) {
+ F sourceResult;
if (source.isPresent()) {
- sourceResult = source.get();
- } else if (version == EncodeConstants.OF10_VERSION_ID) {
- sourceResult = (FROM) FlowFlagsV10Convertor.defaultResult();
+ sourceResult = source.orElseThrow();
+ } else if (version.equals(EncodeConstants.OF_VERSION_1_0)) {
+ sourceResult = (F) FlowFlagsV10Convertor.defaultResult();
} else {
- sourceResult = (FROM) FlowFlagsConvertor.defaultResult();
+ sourceResult = (F) FlowFlagsConvertor.defaultResult();
}
final Map<ConvertorKey, ResultInjector<?, ?>> injectorMap = new HashMap<>();
addInjectors(injectorMap);
- final ResultInjector<FROM, TO> injection = (ResultInjector<FROM, TO>) injectorMap
+ final ResultInjector<F, T> injection = (ResultInjector<F, T>) injectorMap
.get(new ConvertorKey(version, target.getClass()));
injection.inject(sourceResult, target);
private static void addInjectors(final Map<ConvertorKey, ResultInjector<?, ?>> injectionMapping) {
// OF-1.3|FlowModFlags --> FlowModInputBuilder
injectionMapping.put(new ConvertorKey(OFConstants.OFP_VERSION_1_3, FlowModInputBuilder.class),
- new ResultInjector<FlowModFlags, FlowModInputBuilder>() {
- @Override
- public void inject(final FlowModFlags value,
- final FlowModInputBuilder target) {
- target.setFlags(value);
- }
- });
+ (ResultInjector<FlowModFlags, FlowModInputBuilder>)(value, target) -> target.setFlags(value));
// OF-1.3|FlowModFlagsV10 --> FlowModInputBuilder
injectionMapping.put(new ConvertorKey(OFConstants.OFP_VERSION_1_0, FlowModInputBuilder.class),
- new ResultInjector<FlowModFlagsV10, FlowModInputBuilder>() {
- @Override
- public void inject(final FlowModFlagsV10 value,
- final FlowModInputBuilder target) {
- target.setFlagsV10(value);
- }
- });
+ (ResultInjector<FlowModFlagsV10, FlowModInputBuilder>)(value, target) -> target.setFlagsV10(value));
}
-}
\ No newline at end of file
+}