BUG-6650: ep-ip/sgt, propose sxp-generator
[groupbasedpolicy.git] / sxp-integration / sxp-ep-provider / src / main / java / org / opendaylight / groupbasedpolicy / sxp / ep / provider / impl / util / EPTemplateUtil.java
index c3b89e16d7a6727feea948e281f30fc416d2717b..300ef8d36e27e3c150a0cd5a672f56e483c22ec7 100644 (file)
@@ -25,6 +25,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.integration.sxp.ep.provider.model.rev160302.sxp.ep.mapper.EndpointForwardingTemplateBySubnet;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.integration.sxp.ep.provider.model.rev160302.sxp.ep.mapper.EndpointPolicyTemplateBySgt;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.Sgt;
 
 /**
  * Purpose: util methods for {@link EndpointForwardingTemplateBySubnet} and {@link EndpointPolicyTemplateBySgt}
@@ -128,6 +129,19 @@ public final class EPTemplateUtil {
         });
     }
 
+    public static Ordering<Sgt> createSgtOrdering() {
+        return Ordering.natural().onResultOf(new Function<Sgt, Comparable>() {
+            @Nullable
+            @Override
+            public Comparable apply(@Nullable final Sgt input) {
+                if (input == null) {
+                    return EMPTY_COMPARABLE;
+                }
+                return MoreObjects.firstNonNull(input.getValue(), EMPTY_COMPARABLE);
+            }
+        });
+    }
+
     public static class OptionalMutablePair<L, R> extends MutablePair<Optional<L>, Optional<R>> {
         public OptionalMutablePair() {
             super(Optional.absent(), Optional.absent());