Get rid of netconf operation filters
[controller.git] / opendaylight / netconf / netconf-mapping-api / src / main / java / org / opendaylight / controller / netconf / mapping / api / HandlingPriority.java
index 176cf2d28c02d54dbaeedc39abe23357e27d8324..1236138e6c6437a181b11425ac0f2f0449930944 100644 (file)
@@ -9,6 +9,7 @@
 package org.opendaylight.controller.netconf.mapping.api;
 
 import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
 
 public class HandlingPriority implements Comparable<HandlingPriority> {
 
@@ -33,7 +34,15 @@ public class HandlingPriority implements Comparable<HandlingPriority> {
      * @return priority number or Optional.absent otherwise
      */
     public Optional<Integer> getPriority() {
-        return Optional.of(priority).or(Optional.<Integer> absent());
+        return Optional.fromNullable(priority);
+    }
+
+    public HandlingPriority increasePriority(int priorityIncrease) {
+        Preconditions.checkState(priority!=null, "Unable to increase priority for %s", this);
+        Preconditions.checkArgument(priorityIncrease > 0, "Negative increase");
+        Preconditions.checkArgument(Long.valueOf(priority) + priorityIncrease < Integer.MAX_VALUE,
+                "Resulting priority cannot be higher than %s", Integer.MAX_VALUE);
+        return getHandlingPriority(priority + priorityIncrease);
     }
 
     @Override