Replace GroupingResolver with AugmentationGroupingResolver 52/77852/13
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 15 Nov 2018 13:46:09 +0000 (14:46 +0100)
committerArunprakash D <d.arunprakash@ericsson.com>
Wed, 12 Dec 2018 13:13:03 +0000 (13:13 +0000)
AugmentationGroupingResolver provides the same functionality with
an immutable implementation, geared towards low memory overhead
both in terms of static allocation and memory usage during traversal.

GroupingResolver.getExtension() functionality is exposed as
findExtension(), returning java.util.Optional -- thus allowing
for a clean option to retrofit a @Nullable getter if the need
arises.

JIRA: OPNFLWPLUG-1050
Change-Id: I7346ff41c6b1425a9f95dccb11547836f0a15c53
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
36 files changed:
extension/openflowplugin-extension-api/src/main/java/org/opendaylight/openflowplugin/extension/api/AugmentationGroupingResolver.java [new file with mode: 0644]
extension/openflowplugin-extension-api/src/main/java/org/opendaylight/openflowplugin/extension/api/GroupingResolver.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/ArpOpConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/ArpShaConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/ArpSpaConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/ArpThaConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/ArpTpaConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/CtMarkConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/CtStateConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/CtTpDstConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/CtTpSrcConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/CtZoneConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/EthDstConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/EthSrcConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/EthTypeConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/MatchUtil.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/NshFlagsConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/NshMdtypeConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/NshNpConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/NshTtlConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/Nshc1Convertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/Nshc2Convertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/Nshc3Convertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/Nshc4Convertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/NsiConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/NspConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/NxmInPortConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/PktMarkConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/RegConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/TcpDstConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/TcpSrcConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/TunIPv4DstConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/TunIPv4SrcConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/TunIdConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/UdpDstConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/match/UdpSrcConvertor.java

diff --git a/extension/openflowplugin-extension-api/src/main/java/org/opendaylight/openflowplugin/extension/api/AugmentationGroupingResolver.java b/extension/openflowplugin-extension-api/src/main/java/org/opendaylight/openflowplugin/extension/api/AugmentationGroupingResolver.java
new file mode 100644 (file)
index 0000000..4bc991e
--- /dev/null
@@ -0,0 +1,171 @@
+/*
+ * Copyright (c) 2018 Pantheon Technologies, s.r.o. 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 static com.google.common.base.Preconditions.checkArgument;
+import static java.util.Objects.requireNonNull;
+
+import com.google.common.annotations.Beta;
+import java.util.HashSet;
+import java.util.Optional;
+import java.util.Set;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.concepts.Immutable;
+import org.opendaylight.yangtools.yang.binding.Augmentable;
+import org.opendaylight.yangtools.yang.binding.Augmentation;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+
+/**
+ * Resolver providing a bridge between a grouping and its various instantiations via augment. This is useful for
+ * extracting the grouping's content from a DataObject's augmentations without knowing from which instantiation it
+ * comes from.
+ *
+ * <p>
+ * Typical use case is, given a base grouping module:
+ * <pre>
+ *     module foo;
+ *
+ *     grouping foo {
+ *         container augmentable {
+ *
+ *         }
+ *     }
+ * </pre>
+ * and a module independent of it:
+ * <pre>
+ *     module bar;
+ *
+ *     container bar {
+ *         uses foo:foo;
+ *     }
+ * </pre>
+ * and
+ * <pre>
+ *     module baz;
+ *
+ *     container baz {
+ *         uses foo:foo;
+ *     }
+ * </pre>
+ * an external module can perform:
+ * <pre>
+ *     module xyzzy;
+ *
+ *     import bar { prefix bar; }
+ *     import baz { prefix baz; }
+ *
+ *     grouping something {
+ *         // ...
+ *     }
+ *
+ *     augment /bar:bar/bar:augmentable {
+ *         uses something;
+ *     }
+ *
+ *     augment /baz:baz/baz:augmentable {
+ *         uses something;
+ *     }
+ * </pre>
+ * The augmentations of {@code bar} and {@code baz} instantiations of {@code grouping foo} have an equivalent
+ * augmentation introduced by {@code xyzzy}. This equivalence is not expressed is generated code, in that it is
+ * not apparent given {@code bar} or {@code baz} there is an augmentation which provides {@code something}.
+ *
+ * <p>
+ * This class provides the static knowledge to ask for the contents of {@code something} given an instance of
+ * {@code augmentable}, without knowing which augmentation introduces it.
+ *
+ * @param <G> Grouping type
+ * @param <T> Augmentable type
+ */
+@Beta
+public final class AugmentationGroupingResolver<G extends DataObject, T extends Augmentable<T>> implements Immutable {
+    private final Class<? extends Augmentation<T>>[] augmentations;
+    private final Class<G> grouping;
+
+    AugmentationGroupingResolver(final Class<G> grouping, final Class<? extends Augmentation<T>>[] augmentations) {
+        this.grouping = requireNonNull(grouping);
+        this.augmentations = requireNonNull(augmentations);
+    }
+
+    public @NonNull Optional<G> findExtension(final T data) {
+        requireNonNull(data);
+
+        for (Class<? extends Augmentation<T>> cls : augmentations) {
+            final Augmentation<T> potential = data.augmentation(cls);
+            if (potential != null) {
+                return Optional.of(grouping.cast(potential));
+            }
+        }
+        return Optional.empty();
+    }
+
+    public static <G extends DataObject, T extends Augmentable<T>> @NonNull Builder<G, T> builder(
+            final Class<G> groupingClass) {
+        return new Builder<>(groupingClass);
+    }
+
+    @SuppressWarnings("unchecked")
+    public static <T extends Augmentable<T>> @NonNull Factory<T> factory(final Class<T> augmentableClass,
+            final Set<Class<? extends Augmentation<T>>> augmentationClasses) {
+        // Defensive copy via .clone() to guard against evil Set implementations
+        final Class<?>[] array = augmentationClasses.toArray(new Class<?>[0]).clone();
+
+        // Defensive check of all array elements
+        for (Class<?> clazz : array) {
+            checkArgument(Augmentation.class.isAssignableFrom(clazz), "Class %s is not an Augmentation", clazz);
+        }
+
+        return new Factory<>((Class<? extends Augmentation<T>>[]) array);
+    }
+
+    public static final class Builder<G extends DataObject, T extends Augmentable<T>>
+            implements org.opendaylight.yangtools.concepts.Builder<AugmentationGroupingResolver<G, T>> {
+        private final Set<Class<? extends Augmentation<T>>> augmentations = new HashSet<>();
+        private final Class<G> grouping;
+
+        Builder(final Class<G> groupingClass) {
+            grouping = requireNonNull(groupingClass);
+        }
+
+        public <X extends Augmentation<T>> @NonNull Builder<G, T> addAugmentationClass(
+                final Class<X> augmentationClass) {
+            checkAssignable(grouping, augmentationClass);
+            augmentations.add(augmentationClass);
+            return this;
+        }
+
+        @Override
+        @SuppressWarnings("unchecked")
+        public @NonNull AugmentationGroupingResolver<G, T> build() {
+            return new AugmentationGroupingResolver<>(grouping,
+                    (Class<? extends Augmentation<T>>[]) augmentations.toArray(new Class<?>[0]));
+        }
+    }
+
+    public static final class Factory<T extends Augmentable<T>> implements Immutable {
+        private final Class<? extends Augmentation<T>>[] augmentations;
+
+        Factory(final Class<? extends Augmentation<T>>[] augmentations) {
+            this.augmentations = requireNonNull(augmentations);
+        }
+
+        public <G extends DataObject> @NonNull AugmentationGroupingResolver<G, T> createResolver(
+                final Class<G> groupingClass) {
+            for (Class<? extends Augmentation<T>> cls : augmentations) {
+                checkAssignable(groupingClass, cls);
+            }
+
+            return new AugmentationGroupingResolver<>(groupingClass, augmentations);
+        }
+    }
+
+    static void checkAssignable(final Class<?> groupingClass, final Class<?> augmentationClass) {
+        checkArgument(groupingClass.isAssignableFrom(augmentationClass), "%s is not compatible with grouping %s",
+            augmentationClass, groupingClass);
+    }
+}
index a8191947bec43e3675ef4e2c11bfc4d2bfb1a860..886719c1cab26ed4dd799be46c03ca473328449d 100644 (file)
@@ -24,13 +24,15 @@ import org.opendaylight.yangtools.yang.binding.Augmentation;
  *
  * @param <G> grouping
  * @param <T> Augmentable
+ * @deprecated Use {@link AugmentationGroupingResolver} instead.
  */
+@Deprecated
 public class GroupingResolver<G, T extends Augmentable<T>> {
 
     Class<G> commonInterface;
     Set<Class<? extends Augmentation<T>>> classes;
 
-    public GroupingResolver(Class<G> commonInterface) {
+    public GroupingResolver(final Class<G> commonInterface) {
         this.commonInterface = commonInterface;
         classes = new HashSet<>();
     }
@@ -41,7 +43,7 @@ public class GroupingResolver<G, T extends Augmentable<T>> {
      * @param cls equivalent augmentation class
      * @return this for chaining
      */
-    public <X extends Augmentation<T>> GroupingResolver<G, T> add(Class<X> cls) {
+    public <X extends Augmentation<T>> GroupingResolver<G, T> add(final Class<X> cls) {
         Preconditions.checkArgument(commonInterface.isAssignableFrom(cls));
         classes.add(cls);
         return this;
@@ -52,7 +54,7 @@ public class GroupingResolver<G, T extends Augmentable<T>> {
      *
      * @param clses set of equivalent augmentation classes
      */
-    public void setAugmentations(Set<Class<? extends Augmentation<T>>> clses) {
+    public void setAugmentations(final Set<Class<? extends Augmentation<T>>> clses) {
         for (Class<? extends Augmentation<T>> cls : clses) {
             Preconditions.checkArgument(commonInterface.isAssignableFrom(cls));
         }
@@ -66,7 +68,7 @@ public class GroupingResolver<G, T extends Augmentable<T>> {
      * @return shared grouping
      */
     @SuppressWarnings("unchecked")
-    public Optional<G> getExtension(T data) {
+    public Optional<G> getExtension(final T data) {
         for (Class<? extends Augmentation<T>> cls : classes) {
             Augmentation<T> potential = data.augmentation(cls);
             if (potential != null) {
index fd569699474a22b54b689ccc217a32c41e0b6243..c31f6e6e41f447c0792de1cff8a8210600c7d8d4 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -52,7 +52,7 @@ public class ArpOpConvertor implements ConvertorToOFJava<MatchEntry>, ConvertorF
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmOfArpOpGrouping> matchGrouping = MatchUtil.ARP_OP_RESOLVER.getExtension(extension);
+        Optional<NxmOfArpOpGrouping> matchGrouping = MatchUtil.ARP_OP_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index f75749ad0e485151145ea1c163e8eaa23b37e01a..5d820f3e8bfc750ec517408acaf4d93637ba52e3 100644 (file)
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -53,7 +53,7 @@ public class ArpShaConvertor implements ConvertorToOFJava<MatchEntry>, Convertor
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxArpShaGrouping> matchGrouping = MatchUtil.ARP_SHA_RESOLVER.getExtension(extension);
+        Optional<NxmNxArpShaGrouping> matchGrouping = MatchUtil.ARP_SHA_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index 9f05096cc95f462553807f43a6bc9427363a3146..5dbafde1bc8c984210c5083de9dc9d1f07ae2fcc 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -55,7 +55,7 @@ public class ArpSpaConvertor implements ConvertorToOFJava<MatchEntry>, Convertor
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmOfArpSpaGrouping> matchGrouping = MatchUtil.ARP_SPA_RESOLVER.getExtension(extension);
+        Optional<NxmOfArpSpaGrouping> matchGrouping = MatchUtil.ARP_SPA_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index ef161c0b54ad05f197112bed6a6de29819d87001..7d7b4d12b6a42bddd44e4394f2f84c888c94de52 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -54,7 +54,7 @@ public class ArpThaConvertor implements ConvertorToOFJava<MatchEntry>, Convertor
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxArpThaGrouping> matchGrouping = MatchUtil.ARP_THA_RESOLVER.getExtension(extension);
+        Optional<NxmNxArpThaGrouping> matchGrouping = MatchUtil.ARP_THA_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index 66fcd44079966ce083cb2d5429d775f739c4e3e9..20771cc33e991d2873444aa10a0c1d68080a8d93 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -55,7 +55,7 @@ public class ArpTpaConvertor implements ConvertorToOFJava<MatchEntry>, Convertor
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmOfArpTpaGrouping> matchGrouping = MatchUtil.ARP_TPA_RESOLVER.getExtension(extension);
+        Optional<NxmOfArpTpaGrouping> matchGrouping = MatchUtil.ARP_TPA_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index 6b39053b2044cac60b192e35a2f0eef8068da379..3b5ce00643e406f724f1f44d4226195b1f0d614f 100755 (executable)
@@ -5,10 +5,9 @@
  * 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.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -50,7 +49,7 @@ public class CtMarkConvertor implements ConvertorToOFJava<MatchEntry>, Convertor
      */
     @Override
     public ExtensionAugment<? extends Augmentation<Extension>> convert(MatchEntry input, MatchPath path) {
-        CtMarkCaseValue ctMarkCaseValue = ((CtMarkCaseValue) input.getMatchEntryValue());
+        CtMarkCaseValue ctMarkCaseValue = (CtMarkCaseValue) input.getMatchEntryValue();
         NxmNxCtMarkBuilder ctMarkBuilder = new NxmNxCtMarkBuilder();
         ctMarkBuilder.setCtMark(ctMarkCaseValue.getCtMarkValues().getCtMark());
         ctMarkBuilder.setMask(ctMarkCaseValue.getCtMarkValues().getMask());
@@ -69,7 +68,7 @@ public class CtMarkConvertor implements ConvertorToOFJava<MatchEntry>, Convertor
      */
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxCtMarkGrouping> matchGrouping = MatchUtil.CT_MARK_RESOLVER.getExtension(extension);
+        Optional<NxmNxCtMarkGrouping> matchGrouping = MatchUtil.CT_MARK_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index 71d81c567b8c98ff1faf967dc77cbc75ff7f58fe..5c37adfc7851057d0213d955a91a8814c95ba80f 100644 (file)
@@ -5,10 +5,9 @@
  * 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.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -57,7 +56,7 @@ public class CtStateConvertor implements ConvertorToOFJava<MatchEntry>, Converto
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxCtStateGrouping> matchGrouping = MatchUtil.CT_STATE_RESOLVER.getExtension(extension);
+        Optional<NxmNxCtStateGrouping> matchGrouping = MatchUtil.CT_STATE_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index b963a0624d0ab8551116ef557288bc527935a909..8c6bcfea907e8090677d247864f65495b3181899 100644 (file)
@@ -5,10 +5,9 @@
  * 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.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -42,7 +41,7 @@ public class CtTpDstConvertor implements ConvertorToOFJava<MatchEntry>, Converto
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxCtTpDstGrouping> matchGrouping = MatchUtil.CT_TP_DST_RESOLVER.getExtension(extension);
+        Optional<NxmNxCtTpDstGrouping> matchGrouping = MatchUtil.CT_TP_DST_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index 13b23249fc448cc9ce300b199b1023a7e58cb438..dfde71063cdab5476dbd473acb1244c27adb23b2 100644 (file)
@@ -5,10 +5,9 @@
  * 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.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -42,7 +41,7 @@ public class CtTpSrcConvertor implements ConvertorToOFJava<MatchEntry>, Converto
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxCtTpSrcGrouping> matchGrouping = MatchUtil.CT_TP_SRC_RESOLVER.getExtension(extension);
+        Optional<NxmNxCtTpSrcGrouping> matchGrouping = MatchUtil.CT_TP_SRC_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index 62e064a224eacdde9457b4099edd75220b0b6057..cc64c360343552c89985f47e246f57f93d9417e9 100644 (file)
@@ -5,10 +5,9 @@
  * 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.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -56,7 +55,7 @@ public class CtZoneConvertor implements ConvertorToOFJava<MatchEntry>, Convertor
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxCtZoneGrouping> matchGrouping = MatchUtil.CT_ZONE_RESOLVER.getExtension(extension);
+        Optional<NxmNxCtZoneGrouping> matchGrouping = MatchUtil.CT_ZONE_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index 30800db56711f8152be795b4f63bc2fbad7848aa..6b7f4c2409926b07dc9302da52eabb005747e8ef 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -54,7 +54,7 @@ public class EthDstConvertor implements ConvertorToOFJava<MatchEntry>, Convertor
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmOfEthDstGrouping> matchGrouping = MatchUtil.ETH_DST_RESOLVER.getExtension(extension);
+        Optional<NxmOfEthDstGrouping> matchGrouping = MatchUtil.ETH_DST_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index b061caa0d9f48841d495615d0957e9dc0360545d..2390dabef1eb980d85a2ddc64d39886ac516977b 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -54,7 +54,7 @@ public class EthSrcConvertor implements ConvertorToOFJava<MatchEntry>, Convertor
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmOfEthSrcGrouping> matchGrouping = MatchUtil.ETH_SRC_RESOLVER.getExtension(extension);
+        Optional<NxmOfEthSrcGrouping> matchGrouping = MatchUtil.ETH_SRC_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index cc510bd6784d635e3e8ef1b0a04b425247271043..951ebe972dde3a976c6080cd281e63558f57ad88 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -53,7 +53,7 @@ public class EthTypeConvertor implements ConvertorToOFJava<MatchEntry>, Converto
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmOfEthTypeGrouping> matchGrouping = MatchUtil.ETH_TYPE_RESOLVER.getExtension(extension);
+        Optional<NxmOfEthTypeGrouping> matchGrouping = MatchUtil.ETH_TYPE_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index a660a2117c16e1ac1043a292fa2e5332b6c59ad1..74f9eb343b715a075ee62884e70f825c5222e244 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * Copyright (c) 2014, 2017 Cisco Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -9,12 +9,12 @@ package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match;
 
 import com.google.common.base.Joiner;
 import com.google.common.base.Splitter;
+import com.google.common.collect.ImmutableSet;
 import com.google.common.primitives.Longs;
 import com.google.common.primitives.UnsignedBytes;
-import java.util.HashSet;
 import java.util.Iterator;
-import java.util.Set;
-import org.opendaylight.openflowplugin.extension.api.GroupingResolver;
+import org.opendaylight.openflowplugin.extension.api.AugmentationGroupingResolver;
+import org.opendaylight.openflowplugin.extension.api.AugmentationGroupingResolver.Factory;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.oxm.container.match.entry.value.ExperimenterIdCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.oxm.container.match.entry.value.ExperimenterIdCaseBuilder;
@@ -81,125 +81,93 @@ public final class MatchUtil {
     private static final Splitter SPLITTER = Splitter.on('.');
     private static final Joiner JOINER = Joiner.on('.');
 
-    private static final Set<Class<? extends Augmentation<Extension>>> AUGMENTATIONS_OF_EXTENSION = new HashSet<>();
-    public static final GroupingResolver<NxmNxRegGrouping, Extension> REG_RESOLVER = new GroupingResolver<>(
-            NxmNxRegGrouping.class);
-    public static final GroupingResolver<NxmNxTunIdGrouping, Extension> TUN_ID_RESOLVER = new GroupingResolver<>(
-            NxmNxTunIdGrouping.class);
-    public static final GroupingResolver<NxmNxArpShaGrouping, Extension> ARP_SHA_RESOLVER = new GroupingResolver<>(
-            NxmNxArpShaGrouping.class);
-    public static final GroupingResolver<NxmNxArpThaGrouping, Extension> ARP_THA_RESOLVER = new GroupingResolver<>(
-            NxmNxArpThaGrouping.class);
-    public static final GroupingResolver<NxmOfArpOpGrouping, Extension> ARP_OP_RESOLVER = new GroupingResolver<>(
-            NxmOfArpOpGrouping.class);
-    public static final GroupingResolver<NxmOfArpSpaGrouping, Extension> ARP_SPA_RESOLVER = new GroupingResolver<>(
-            NxmOfArpSpaGrouping.class);
-    public static final GroupingResolver<NxmOfArpTpaGrouping, Extension> ARP_TPA_RESOLVER = new GroupingResolver<>(
-            NxmOfArpTpaGrouping.class);
-    public static final GroupingResolver<NxmNxTunIpv4DstGrouping, Extension> TUN_IPV4_DST_RESOLVER =
-            new GroupingResolver<>(NxmNxTunIpv4DstGrouping.class);
-    public static final GroupingResolver<NxmNxTunIpv4SrcGrouping, Extension> TUN_IPV4_SRC_RESOLVER =
-            new GroupingResolver<>(NxmNxTunIpv4SrcGrouping.class);
-    public static final GroupingResolver<NxmOfEthDstGrouping, Extension> ETH_DST_RESOLVER = new GroupingResolver<>(
-            NxmOfEthDstGrouping.class);
-    public static final GroupingResolver<NxmOfEthSrcGrouping, Extension> ETH_SRC_RESOLVER = new GroupingResolver<>(
-            NxmOfEthSrcGrouping.class);
-    public static final GroupingResolver<NxmOfEthTypeGrouping, Extension> ETH_TYPE_RESOLVER = new GroupingResolver<>(
-            NxmOfEthTypeGrouping.class);
-    public static final GroupingResolver<NxmNxNsiGrouping, Extension> NSI_RESOLVER = new GroupingResolver<>(
-            NxmNxNsiGrouping.class);
-    public static final GroupingResolver<NxmNxNspGrouping, Extension> NSP_RESOLVER = new GroupingResolver<>(
-            NxmNxNspGrouping.class);
-    public static final GroupingResolver<NxmNxNshc1Grouping, Extension> NSC1_RESOLVER = new GroupingResolver<>(
-            NxmNxNshc1Grouping.class);
-    public static final GroupingResolver<NxmNxNshc2Grouping, Extension> NSC2_RESOLVER = new GroupingResolver<>(
-            NxmNxNshc2Grouping.class);
-    public static final GroupingResolver<NxmNxNshc3Grouping, Extension> NSC3_RESOLVER = new GroupingResolver<>(
-            NxmNxNshc3Grouping.class);
-    public static final GroupingResolver<NxmNxNshc4Grouping, Extension> NSC4_RESOLVER = new GroupingResolver<>(
-            NxmNxNshc4Grouping.class);
-    public static final GroupingResolver<NxmNxNshFlagsGrouping, Extension> NSH_FLAGS_RESOLVER =
-            new GroupingResolver<>(NxmNxNshFlagsGrouping.class);
-    public static final GroupingResolver<NxmNxNshMdtypeGrouping, Extension> NSH_MDTYPE_RESOLVER =
-            new GroupingResolver<>(NxmNxNshMdtypeGrouping.class);
-    public static final GroupingResolver<NxmNxNshNpGrouping, Extension> NSH_NP_RESOLVER = new GroupingResolver<>(
-            NxmNxNshNpGrouping.class);
-    public static final GroupingResolver<NxmNxNshTtlGrouping, Extension> NSH_TTL_RESOLVER =
-            new GroupingResolver<>(NxmNxNshTtlGrouping.class);
-    public static final GroupingResolver<NxmOfTcpSrcGrouping, Extension> TCP_SRC_RESOLVER = new GroupingResolver<>(
-            NxmOfTcpSrcGrouping.class);
-    public static final GroupingResolver<NxmOfTcpDstGrouping, Extension> TCP_DST_RESOLVER = new GroupingResolver<>(
-            NxmOfTcpDstGrouping.class);
-    public static final GroupingResolver<NxmOfUdpSrcGrouping, Extension> UDP_SRC_RESOLVER = new GroupingResolver<>(
-            NxmOfUdpSrcGrouping.class);
-    public static final GroupingResolver<NxmOfUdpDstGrouping, Extension> UDP_DST_RESOLVER = new GroupingResolver<>(
-            NxmOfUdpDstGrouping.class);
-    public static final GroupingResolver<NxmNxCtMarkGrouping, Extension> CT_MARK_RESOLVER = new GroupingResolver<>(
-            NxmNxCtMarkGrouping.class);
-    public static final GroupingResolver<NxmNxCtStateGrouping, Extension> CT_STATE_RESOLVER = new GroupingResolver<>(
-            NxmNxCtStateGrouping.class);
-    public static final GroupingResolver<NxmNxCtZoneGrouping, Extension> CT_ZONE_RESOLVER = new GroupingResolver<>(
-            NxmNxCtZoneGrouping.class);
-    public static final GroupingResolver<NxmNxCtTpSrcGrouping, Extension> CT_TP_SRC_RESOLVER = new GroupingResolver<>(
-            NxmNxCtTpSrcGrouping.class);
-    public static final GroupingResolver<NxmNxCtTpDstGrouping, Extension> CT_TP_DST_RESOLVER = new GroupingResolver<>(
-            NxmNxCtTpDstGrouping.class);
-    public static final GroupingResolver<NxmNxPktMarkGrouping, Extension> PKT_MARK_RESOLVER = new GroupingResolver<>(
-            NxmNxPktMarkGrouping.class);
-    public static final GroupingResolver<NxmOfInPortGrouping, Extension> NXM_OF_INPORT_RESOLVER =
-            new GroupingResolver<>(NxmOfInPortGrouping.class);
+    public static final AugmentationGroupingResolver<NxmNxRegGrouping, Extension> REG_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxTunIdGrouping, Extension> TUN_ID_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxArpShaGrouping, Extension> ARP_SHA_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxArpThaGrouping, Extension> ARP_THA_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmOfArpOpGrouping, Extension> ARP_OP_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmOfArpSpaGrouping, Extension> ARP_SPA_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmOfArpTpaGrouping, Extension> ARP_TPA_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxTunIpv4DstGrouping, Extension> TUN_IPV4_DST_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxTunIpv4SrcGrouping, Extension> TUN_IPV4_SRC_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmOfEthDstGrouping, Extension> ETH_DST_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmOfEthSrcGrouping, Extension> ETH_SRC_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmOfEthTypeGrouping, Extension> ETH_TYPE_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxNsiGrouping, Extension> NSI_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxNspGrouping, Extension> NSP_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxNshc1Grouping, Extension> NSC1_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxNshc2Grouping, Extension> NSC2_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxNshc3Grouping, Extension> NSC3_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxNshc4Grouping, Extension> NSC4_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxNshFlagsGrouping, Extension> NSH_FLAGS_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxNshMdtypeGrouping, Extension> NSH_MDTYPE_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxNshNpGrouping, Extension> NSH_NP_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxNshTtlGrouping, Extension> NSH_TTL_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmOfTcpSrcGrouping, Extension> TCP_SRC_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmOfTcpDstGrouping, Extension> TCP_DST_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmOfUdpSrcGrouping, Extension> UDP_SRC_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmOfUdpDstGrouping, Extension> UDP_DST_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxCtMarkGrouping, Extension> CT_MARK_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxCtStateGrouping, Extension> CT_STATE_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxCtZoneGrouping, Extension> CT_ZONE_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxCtTpSrcGrouping, Extension> CT_TP_SRC_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxCtTpDstGrouping, Extension> CT_TP_DST_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmNxPktMarkGrouping, Extension> PKT_MARK_RESOLVER;
+    public static final AugmentationGroupingResolver<NxmOfInPortGrouping, Extension> NXM_OF_INPORT_RESOLVER;
 
     static {
-        AUGMENTATIONS_OF_EXTENSION.add(NxAugMatchRpcAddFlow.class);
-        AUGMENTATIONS_OF_EXTENSION.add(NxAugMatchRpcRemoveFlow.class);
-        AUGMENTATIONS_OF_EXTENSION.add(NxAugMatchRpcUpdateFlowOriginal.class);
-        AUGMENTATIONS_OF_EXTENSION.add(NxAugMatchRpcUpdateFlowUpdated.class);
-        AUGMENTATIONS_OF_EXTENSION.add(NxAugMatchNodesNodeTableFlow.class);
-        AUGMENTATIONS_OF_EXTENSION.add(NxAugMatchNotifSwitchFlowRemoved.class);
-        AUGMENTATIONS_OF_EXTENSION.add(NxAugMatchNotifPacketIn.class);
-        //augmentationsOfExtension.add(NxAugMatchNotifUpdateFlowStats.class);
-        AUGMENTATIONS_OF_EXTENSION.add(NxAugMatchPacketInMessage.class);
-        REG_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        TUN_ID_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        ARP_SHA_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        ARP_THA_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        ARP_OP_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        ARP_SPA_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        ARP_TPA_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        TUN_IPV4_DST_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        TUN_IPV4_SRC_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        ETH_DST_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        ETH_SRC_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        ETH_TYPE_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        NSP_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        NSI_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        NSC1_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        NSC2_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        NSC3_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        NSC4_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        NSH_FLAGS_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        NSH_MDTYPE_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        NSH_NP_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        NSH_TTL_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        TCP_SRC_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        TCP_DST_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        UDP_SRC_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        UDP_DST_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        CT_STATE_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        CT_ZONE_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        NXM_OF_INPORT_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        CT_MARK_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        CT_TP_SRC_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        CT_TP_DST_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
-        PKT_MARK_RESOLVER.setAugmentations(AUGMENTATIONS_OF_EXTENSION);
+        final Factory<Extension> factory = AugmentationGroupingResolver.factory(Extension.class, ImmutableSet.of(
+            NxAugMatchRpcAddFlow.class,
+            NxAugMatchRpcRemoveFlow.class,
+            NxAugMatchRpcUpdateFlowOriginal.class,
+            NxAugMatchRpcUpdateFlowUpdated.class,
+            NxAugMatchNodesNodeTableFlow.class,
+            NxAugMatchNotifSwitchFlowRemoved.class,
+            NxAugMatchNotifPacketIn.class,
+            // NxAugMatchNotifUpdateFlowStats.class,
+            NxAugMatchPacketInMessage.class));
+
+        REG_RESOLVER = factory.createResolver(NxmNxRegGrouping.class);
+        TUN_ID_RESOLVER = factory.createResolver(NxmNxTunIdGrouping.class);
+        ARP_SHA_RESOLVER = factory.createResolver(NxmNxArpShaGrouping.class);
+        ARP_THA_RESOLVER = factory.createResolver(NxmNxArpThaGrouping.class);
+        ARP_OP_RESOLVER = factory.createResolver(NxmOfArpOpGrouping.class);
+        ARP_SPA_RESOLVER = factory.createResolver(NxmOfArpSpaGrouping.class);
+        ARP_TPA_RESOLVER = factory.createResolver(NxmOfArpTpaGrouping.class);
+        TUN_IPV4_DST_RESOLVER = factory.createResolver(NxmNxTunIpv4DstGrouping.class);
+        TUN_IPV4_SRC_RESOLVER = factory.createResolver(NxmNxTunIpv4SrcGrouping.class);
+        ETH_DST_RESOLVER = factory.createResolver(NxmOfEthDstGrouping.class);
+        ETH_SRC_RESOLVER = factory.createResolver(NxmOfEthSrcGrouping.class);
+        ETH_TYPE_RESOLVER = factory.createResolver(NxmOfEthTypeGrouping.class);
+        NSP_RESOLVER = factory.createResolver(NxmNxNspGrouping.class);
+        NSI_RESOLVER = factory.createResolver(NxmNxNsiGrouping.class);
+        NSC1_RESOLVER = factory.createResolver(NxmNxNshc1Grouping.class);
+        NSC2_RESOLVER = factory.createResolver(NxmNxNshc2Grouping.class);
+        NSC3_RESOLVER = factory.createResolver(NxmNxNshc3Grouping.class);
+        NSC4_RESOLVER = factory.createResolver(NxmNxNshc4Grouping.class);
+        NSH_FLAGS_RESOLVER = factory.createResolver(NxmNxNshFlagsGrouping.class);
+        NSH_MDTYPE_RESOLVER = factory.createResolver(NxmNxNshMdtypeGrouping.class);
+        NSH_NP_RESOLVER = factory.createResolver(NxmNxNshNpGrouping.class);
+        NSH_TTL_RESOLVER = factory.createResolver(NxmNxNshTtlGrouping.class);
+        TCP_SRC_RESOLVER = factory.createResolver(NxmOfTcpSrcGrouping.class);
+        TCP_DST_RESOLVER = factory.createResolver(NxmOfTcpDstGrouping.class);
+        UDP_SRC_RESOLVER = factory.createResolver(NxmOfUdpSrcGrouping.class);
+        UDP_DST_RESOLVER = factory.createResolver(NxmOfUdpDstGrouping.class);
+        CT_STATE_RESOLVER = factory.createResolver(NxmNxCtStateGrouping.class);
+        CT_ZONE_RESOLVER = factory.createResolver(NxmNxCtZoneGrouping.class);
+        NXM_OF_INPORT_RESOLVER = factory.createResolver(NxmOfInPortGrouping.class);
+        CT_MARK_RESOLVER = factory.createResolver(NxmNxCtMarkGrouping.class);
+        CT_TP_SRC_RESOLVER = factory.createResolver(NxmNxCtTpSrcGrouping.class);
+        CT_TP_DST_RESOLVER = factory.createResolver(NxmNxCtTpDstGrouping.class);
+        PKT_MARK_RESOLVER = factory.createResolver(NxmNxPktMarkGrouping.class);
     }
 
     private MatchUtil() {
     }
 
-    public static MatchEntryBuilder createDefaultMatchEntryBuilder(Class<? extends MatchField> matchField,
-                                                                   Class<? extends OxmClassBase> oxmClass,
-                                                                   MatchEntryValue matchEntryValue) {
+    public static MatchEntryBuilder createDefaultMatchEntryBuilder(final Class<? extends MatchField> matchField,
+                                                                   final Class<? extends OxmClassBase> oxmClass,
+                                                                   final MatchEntryValue matchEntryValue) {
         MatchEntryBuilder matchEntryBuilder = new MatchEntryBuilder();
         matchEntryBuilder.setHasMask(false);
         matchEntryBuilder.setOxmMatchField(matchField);
@@ -209,9 +177,9 @@ public final class MatchUtil {
     }
 
     public static <V extends Augmentation<ExperimenterIdCase>> MatchEntryBuilder createExperimenterMatchEntryBuilder(
-            Class<? extends MatchField> matchField,
-            long experimenterId,
-            NxExpMatchEntryValue value) {
+            final Class<? extends MatchField> matchField,
+            final long experimenterId,
+            final NxExpMatchEntryValue value) {
         ExperimenterBuilder experimenterBuilder = new ExperimenterBuilder();
         experimenterBuilder.setExperimenter(new ExperimenterId(experimenterId));
         ExperimenterIdCaseBuilder expCaseBuilder = new ExperimenterIdCaseBuilder();
@@ -221,7 +189,7 @@ public final class MatchUtil {
         return createDefaultMatchEntryBuilder(matchField, ExperimenterClass.class, expCaseBuilder.build());
     }
 
-    public static Long ipv4ToLong(Ipv4Address ipv4) {
+    public static Long ipv4ToLong(final Ipv4Address ipv4) {
         Iterator<String> iterator = SPLITTER.split(ipv4.getValue()).iterator();
         byte[] bytes = new byte[8];
         for (int i = 0; i < bytes.length; i++) {
@@ -235,7 +203,7 @@ public final class MatchUtil {
         return result;
     }
 
-    public static Ipv4Address longToIpv4Address(Long value) {
+    public static Ipv4Address longToIpv4Address(final Long value) {
         byte[] bytes = Longs.toByteArray(value);
         String[] strArray = new String[4];
         for (int i = 4; i < bytes.length; i++) {
index 91d1900cb701b0be6d787fd0ef1caf77bca1cd80..febcfb36f2d5918aef936f83ba6221f5a10eff60 100644 (file)
@@ -5,10 +5,9 @@
  * 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.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowjava.nx.api.NiciraConstants;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
@@ -61,7 +60,7 @@ public class NshFlagsConvertor implements ConvertorToOFJava<MatchEntry>, Convert
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxNshFlagsGrouping> matchGrouping = MatchUtil.NSH_FLAGS_RESOLVER.getExtension(extension);
+        Optional<NxmNxNshFlagsGrouping> matchGrouping = MatchUtil.NSH_FLAGS_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index 4f7a22289e0521bf7d281fac651230f3bab25ad3..949702e19d83d1dd1a7704b48c285e77f79a5413 100644 (file)
@@ -5,10 +5,9 @@
  * 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.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowjava.nx.api.NiciraConstants;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
@@ -60,7 +59,7 @@ public class NshMdtypeConvertor implements ConvertorToOFJava<MatchEntry>, Conver
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxNshMdtypeGrouping> matchGrouping = MatchUtil.NSH_MDTYPE_RESOLVER.getExtension(extension);
+        Optional<NxmNxNshMdtypeGrouping> matchGrouping = MatchUtil.NSH_MDTYPE_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index fdb030555156018c27a52b5098d20d800d3ff7fd..c72c04b3faf74da7d79ea6599aa6f8c3d1451e2f 100644 (file)
@@ -5,10 +5,9 @@
  * 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.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowjava.nx.api.NiciraConstants;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
@@ -60,7 +59,7 @@ public class NshNpConvertor implements ConvertorToOFJava<MatchEntry>, ConvertorF
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxNshNpGrouping> matchGrouping = MatchUtil.NSH_NP_RESOLVER.getExtension(extension);
+        Optional<NxmNxNshNpGrouping> matchGrouping = MatchUtil.NSH_NP_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index 1242ce6be7494aaa455af14ebf2c413f7fc4fea1..f75757a5c0198294d33d10c8204b6b08e75d8341 100644 (file)
@@ -5,10 +5,9 @@
  * 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.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowjava.nx.api.NiciraConstants;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
@@ -58,7 +57,7 @@ public class NshTtlConvertor implements ConvertorToOFJava<MatchEntry>, Convertor
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxNshTtlGrouping> matchGrouping = MatchUtil.NSH_TTL_RESOLVER.getExtension(extension);
+        Optional<NxmNxNshTtlGrouping> matchGrouping = MatchUtil.NSH_TTL_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index cbb7288a8a6100c53834dd6c3c08e380a0799186..ee47eb720fa62b499e41f3e9bd024179eacc70c7 100644 (file)
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowjava.nx.api.NiciraConstants;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
@@ -53,7 +53,7 @@ public class Nshc1Convertor implements ConvertorToOFJava<MatchEntry>, ConvertorF
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxNshc1Grouping> matchGrouping = MatchUtil.NSC1_RESOLVER.getExtension(extension);
+        Optional<NxmNxNshc1Grouping> matchGrouping = MatchUtil.NSC1_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index fdf894d7a6f477bd7fc604bbc7fd205e7340eb37..fcba288232912e0855ea07b1f1350097312d7a5c 100644 (file)
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowjava.nx.api.NiciraConstants;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
@@ -53,7 +53,7 @@ public class Nshc2Convertor implements ConvertorToOFJava<MatchEntry>, ConvertorF
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxNshc2Grouping> matchGrouping = MatchUtil.NSC2_RESOLVER.getExtension(extension);
+        Optional<NxmNxNshc2Grouping> matchGrouping = MatchUtil.NSC2_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index 89bb0e7ce9ce0d7c25f0e41df6d52b709b90be8f..c697eb9f18d30840ddd06576668d1f7a8cd0be8a 100644 (file)
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowjava.nx.api.NiciraConstants;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
@@ -53,7 +53,7 @@ public class Nshc3Convertor implements ConvertorToOFJava<MatchEntry>, ConvertorF
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxNshc3Grouping> matchGrouping = MatchUtil.NSC3_RESOLVER.getExtension(extension);
+        Optional<NxmNxNshc3Grouping> matchGrouping = MatchUtil.NSC3_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index eb9ac9414e4e6b8bab7487b414d7d71ae509c4e1..2b61cfa1e5a4b83953df1f86e171caa208731170 100644 (file)
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowjava.nx.api.NiciraConstants;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
@@ -53,7 +53,7 @@ public class Nshc4Convertor implements ConvertorToOFJava<MatchEntry>, ConvertorF
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxNshc4Grouping> matchGrouping = MatchUtil.NSC4_RESOLVER.getExtension(extension);
+        Optional<NxmNxNshc4Grouping> matchGrouping = MatchUtil.NSC4_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index 95a9d139d723909e1d2ec0945067d39ce74e6b1c..b3bdceada347fa9bb50394857d624eb1e0eac061 100644 (file)
@@ -5,10 +5,9 @@
  * 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.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowjava.nx.api.NiciraConstants;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
@@ -55,7 +54,7 @@ public class NsiConvertor implements ConvertorToOFJava<MatchEntry>, ConvertorFro
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxNsiGrouping> matchGrouping = MatchUtil.NSI_RESOLVER.getExtension(extension);
+        Optional<NxmNxNsiGrouping> matchGrouping = MatchUtil.NSI_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index eb44b15015fdbc8b7cc9fd989522d93c1054b624..e612bfad5e6fd6cb261feea2881a13feef1df223 100644 (file)
@@ -5,10 +5,9 @@
  * 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.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowjava.nx.api.NiciraConstants;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
@@ -56,7 +55,7 @@ public class NspConvertor implements ConvertorToOFJava<MatchEntry>, ConvertorFro
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxNspGrouping> matchGrouping = MatchUtil.NSP_RESOLVER.getExtension(extension);
+        Optional<NxmNxNspGrouping> matchGrouping = MatchUtil.NSP_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index f3a33a1637852672ac07600ba9cc3b9393c61d64..04d20065122eeca417b03d84b25105c26b3bb685 100644 (file)
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -50,8 +50,7 @@ public class NxmInPortConvertor implements ConvertorToOFJava<MatchEntry>,
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmOfInPortGrouping> matchGrouping = MatchUtil.NXM_OF_INPORT_RESOLVER
-                .getExtension(extension);
+        Optional<NxmOfInPortGrouping> matchGrouping = MatchUtil.NXM_OF_INPORT_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index c1fd148239757ee800136fda8d781f40505f06e3..dccffb02d8438d3606a8c602d92672360204e8b6 100644 (file)
@@ -5,10 +5,9 @@
  * 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.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -42,7 +41,7 @@ public class PktMarkConvertor implements ConvertorToOFJava<MatchEntry>, Converto
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxPktMarkGrouping> matchGrouping = MatchUtil.PKT_MARK_RESOLVER.getExtension(extension);
+        Optional<NxmNxPktMarkGrouping> matchGrouping = MatchUtil.PKT_MARK_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index dfd68766cd91bc7a5cc603df085a770a153f2522..2714ea920fa759458de9f3307413de569b33c5d4 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -7,8 +7,8 @@
  */
 package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
 import java.util.Objects;
+import java.util.Optional;
 import org.opendaylight.openflowjava.nx.codec.match.NiciraMatchCodecs;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
@@ -83,7 +83,7 @@ public class RegConvertor implements ConvertorToOFJava<MatchEntry>, ConvertorFro
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxRegGrouping> matchGrouping = MatchUtil.REG_RESOLVER.getExtension(extension);
+        Optional<NxmNxRegGrouping> matchGrouping = MatchUtil.REG_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index 5c556c65486ee571a412e0bdcb36a0a881175eda..f0d543e2f35b36504cfc4510189a170a3d3a6aa0 100644 (file)
@@ -5,10 +5,9 @@
  * 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.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -57,7 +56,7 @@ public class TcpDstConvertor implements ConvertorToOFJava<MatchEntry>, Convertor
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmOfTcpDstGrouping> matchGrouping = MatchUtil.TCP_DST_RESOLVER.getExtension(extension);
+        Optional<NxmOfTcpDstGrouping> matchGrouping = MatchUtil.TCP_DST_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index 8eaa8b2b4eb48b0397c02c9f096fe90cd0b643a5..7b09c567926a134c172a2dc00c266a96167fa3e7 100644 (file)
@@ -5,10 +5,9 @@
  * 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.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -56,7 +55,7 @@ public class TcpSrcConvertor implements ConvertorToOFJava<MatchEntry>, Convertor
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmOfTcpSrcGrouping> matchGrouping = MatchUtil.TCP_SRC_RESOLVER.getExtension(extension);
+        Optional<NxmOfTcpSrcGrouping> matchGrouping = MatchUtil.TCP_SRC_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index 6c9af2287a83bf90d35165477ccf394668a10334..a34cc688ff12c7110e2bcbc56c9302d7ea9a15c6 100644 (file)
@@ -5,10 +5,9 @@
  * 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.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -73,7 +72,7 @@ public class TunIPv4DstConvertor implements ConvertorToOFJava<MatchEntry>, Conve
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxTunIpv4DstGrouping> matchGrouping = MatchUtil.TUN_IPV4_DST_RESOLVER.getExtension(extension);
+        Optional<NxmNxTunIpv4DstGrouping> matchGrouping = MatchUtil.TUN_IPV4_DST_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index 0b8752deb97ec46d95a7da2b6b912a411155ed85..9da50d600ada637d14ff5923d3019035e2518007 100644 (file)
@@ -5,10 +5,9 @@
  * 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.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -73,7 +72,7 @@ public class TunIPv4SrcConvertor implements ConvertorToOFJava<MatchEntry>, Conve
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmNxTunIpv4SrcGrouping> matchGrouping = MatchUtil.TUN_IPV4_SRC_RESOLVER.getExtension(extension);
+        Optional<NxmNxTunIpv4SrcGrouping> matchGrouping = MatchUtil.TUN_IPV4_SRC_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index cb80d4c48ad673de7d0371920404218893484373..4f26d5c6a6b33c5c57c90146de0d3ca5c21a96a3 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -7,8 +7,8 @@
  */
 package org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
 import java.math.BigInteger;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -52,7 +52,7 @@ public class TunIdConvertor implements ConvertorToOFJava<MatchEntry>, ConvertorF
 
     @Override
     public MatchEntry convert(final Extension extension) {
-        Optional<NxmNxTunIdGrouping> matchGrouping = MatchUtil.TUN_ID_RESOLVER.getExtension(extension);
+        Optional<NxmNxTunIdGrouping> matchGrouping = MatchUtil.TUN_ID_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index 0a93a9f793c63504d3b0103d53871fd2f5220128..5269e241153666f163c61ebd6e2e0c4875006cdb 100644 (file)
@@ -5,10 +5,9 @@
  * 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.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -57,7 +56,7 @@ public class UdpDstConvertor implements ConvertorToOFJava<MatchEntry>, Convertor
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmOfUdpDstGrouping> matchGrouping = MatchUtil.UDP_DST_RESOLVER.getExtension(extension);
+        Optional<NxmOfUdpDstGrouping> matchGrouping = MatchUtil.UDP_DST_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }
index 4ad47b3bc50e2fd488ff5961d5f9228471c1e0c2..9138c5266e872c3790d332fed6f8b5ee3e179e08 100644 (file)
@@ -5,10 +5,9 @@
  * 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.vendor.nicira.convertor.match;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 import org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava;
 import org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava;
 import org.opendaylight.openflowplugin.extension.api.ExtensionAugment;
@@ -57,7 +56,7 @@ public class UdpSrcConvertor implements ConvertorToOFJava<MatchEntry>, Convertor
 
     @Override
     public MatchEntry convert(Extension extension) {
-        Optional<NxmOfUdpSrcGrouping> matchGrouping = MatchUtil.UDP_SRC_RESOLVER.getExtension(extension);
+        Optional<NxmOfUdpSrcGrouping> matchGrouping = MatchUtil.UDP_SRC_RESOLVER.findExtension(extension);
         if (!matchGrouping.isPresent()) {
             throw new CodecPreconditionException(extension);
         }