Move wavelength selection logic to OpticalConnectivityIntentCompiler

Now, LinkResourceManager doesn't have a logic to select lambda(s)

Change-Id: I008d770f4f142f3d67afa734e50bd8761a0aafd2
diff --git a/core/api/src/main/java/org/onosproject/net/resource/link/DefaultLinkResourceRequest.java b/core/api/src/main/java/org/onosproject/net/resource/link/DefaultLinkResourceRequest.java
index 5153aeb..e61e87e 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/link/DefaultLinkResourceRequest.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/link/DefaultLinkResourceRequest.java
@@ -20,6 +20,7 @@
 import java.util.Set;
 import java.util.Objects;
 
+import com.google.common.annotations.Beta;
 import org.onlab.util.Bandwidth;
 import org.onosproject.net.Link;
 import org.onosproject.net.intent.Constraint;
@@ -114,13 +115,22 @@
          * Adds lambda request.
          *
          * @return self
+         * @deprecated in Emu Release
          */
+        @Deprecated
         @Override
         public Builder addLambdaRequest() {
             resources.add(new LambdaResourceRequest());
             return this;
         }
 
+        @Beta
+        @Override
+        public LinkResourceRequest.Builder addLambdaRequest(LambdaResource lambda) {
+            resources.add(new LambdaResourceRequest(lambda));
+            return this;
+        }
+
         /**
          * Adds Mpls request.
          *
diff --git a/core/api/src/main/java/org/onosproject/net/resource/link/LambdaResourceRequest.java b/core/api/src/main/java/org/onosproject/net/resource/link/LambdaResourceRequest.java
index b0391f5..acda18b 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/link/LambdaResourceRequest.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/link/LambdaResourceRequest.java
@@ -15,15 +15,50 @@
  */
 package org.onosproject.net.resource.link;
 
+import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import org.onosproject.net.resource.ResourceRequest;
 import org.onosproject.net.resource.ResourceType;
 
+import static com.google.common.base.Preconditions.checkNotNull;
+
 /**
  * Representation of a request for lambda resource.
  */
 public class LambdaResourceRequest implements ResourceRequest {
 
+    private final LambdaResource lambda;
+
+    /**
+     * Constructs a request specifying the given lambda.
+     *
+     * @param lambda lambda to be requested
+     */
+    @Beta
+    public LambdaResourceRequest(LambdaResource lambda) {
+        this.lambda = checkNotNull(lambda);
+    }
+
+    /**
+     * Constructs a request asking an arbitrary available lambda.
+     *
+     * @deprecated in Emu Release
+     */
+    @Deprecated
+    public LambdaResourceRequest() {
+        this.lambda = null;
+    }
+
+    /**
+     * Returns the lambda this request expects.
+     *
+     * @return the lambda this request expects
+     */
+    @Beta
+    public LambdaResource lambda() {
+        return lambda;
+    }
+
     @Override
     public ResourceType type() {
         return ResourceType.LAMBDA;
diff --git a/core/api/src/main/java/org/onosproject/net/resource/link/LinkResourceRequest.java b/core/api/src/main/java/org/onosproject/net/resource/link/LinkResourceRequest.java
index 00c8e8a..1478231 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/link/LinkResourceRequest.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/link/LinkResourceRequest.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.net.resource.link;
 
+import com.google.common.annotations.Beta;
 import org.onosproject.net.Link;
 import org.onosproject.net.intent.Constraint;
 import org.onosproject.net.intent.IntentId;
@@ -57,10 +58,21 @@
          * Adds lambda request.
          *
          * @return self
+         * @deprecated in Emu Release
          */
+        @Deprecated
         Builder addLambdaRequest();
 
         /**
+         * Adds lambda request.
+         *
+         * @param lambda lambda to be requested
+         * @return self
+         */
+        @Beta
+        Builder addLambdaRequest(LambdaResource lambda);
+
+        /**
          * Adds MPLS request.
          *
          * @return self