You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jb...@apache.org on 2015/05/14 16:10:34 UTC

svn commit: r1679376 - in /lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io: comp/ComparatorLambda.java comp/FieldComparator.java stream/expr/StreamFactory.java

Author: jbernste
Date: Thu May 14 14:10:34 2015
New Revision: 1679376

URL: http://svn.apache.org/r1679376
Log:
SOLR-7377,SOLR-7524:Make Streaming Expressions Java 7 Compatible

Modified:
    lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/ComparatorLambda.java
    lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/FieldComparator.java
    lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamFactory.java

Modified: lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/ComparatorLambda.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/ComparatorLambda.java?rev=1679376&r1=1679375&r2=1679376&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/ComparatorLambda.java (original)
+++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/ComparatorLambda.java Thu May 14 14:10:34 2015
@@ -1,5 +1,7 @@
 package org.apache.solr.client.solrj.io.comp;
 
+import java.io.Serializable;
+
 import org.apache.solr.client.solrj.io.Tuple;
 
 /*
@@ -22,6 +24,6 @@ import org.apache.solr.client.solrj.io.T
 /**
  * Interface for use with a comparator lambda
  */
-public interface ComparatorLambda {
+public interface ComparatorLambda extends Serializable {
   public int compare(Tuple leftTuple, Tuple rightTuple);
 }

Modified: lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/FieldComparator.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/FieldComparator.java?rev=1679376&r1=1679375&r2=1679376&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/FieldComparator.java (original)
+++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/FieldComparator.java Thu May 14 14:10:34 2015
@@ -70,22 +70,21 @@ public class FieldComparator extends Str
    */
   private void assignComparator(){
     if(ComparatorOrder.DESCENDING == order){
-      // What black magic is this type intersection??
-      // Because this class is serializable we need to make sure the lambda is also serializable.
-      // This can be done by providing this type intersection on the definition of the lambda.
-      // Why not do it in the lambda interface? Functional Interfaces don't allow extends clauses
-      comparator = (ComparatorLambda & Serializable)(leftTuple, rightTuple) -> {
-        Comparable leftComp = (Comparable)leftTuple.get(leftField);
-        Comparable rightComp = (Comparable)rightTuple.get(rightField);
-        return rightComp.compareTo(leftComp);
+      comparator = new ComparatorLambda() {
+        public int compare(Tuple leftTuple, Tuple rightTuple) {
+          Comparable leftComp = (Comparable)leftTuple.get(leftField);
+          Comparable rightComp = (Comparable)rightTuple.get(rightField);
+          return rightComp.compareTo(leftComp);
+        }
       };
     }
     else{
-      // See above for black magic reasoning.
-      comparator = (ComparatorLambda & Serializable)(leftTuple, rightTuple) -> {
-        Comparable leftComp = (Comparable)leftTuple.get(leftField);
-        Comparable rightComp = (Comparable)rightTuple.get(rightField);
-        return leftComp.compareTo(rightComp);
+      comparator = new ComparatorLambda() {
+        public int compare(Tuple leftTuple, Tuple rightTuple) {
+          Comparable leftComp = (Comparable)leftTuple.get(leftField);
+          Comparable rightComp = (Comparable)rightTuple.get(rightField);
+          return leftComp.compareTo(rightComp);
+        }
       };
     }
   }

Modified: lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamFactory.java?rev=1679376&r1=1679375&r2=1679376&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamFactory.java (original)
+++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamFactory.java Thu May 14 14:10:34 2015
@@ -54,7 +54,10 @@ public class StreamFactory implements Se
     return this;
   }
   public String getCollectionZkHost(String collectionName){
-    return this.collectionZkHosts.getOrDefault(collectionName, null);
+    if(this.collectionZkHosts.containsKey(collectionName)){
+      return this.collectionZkHosts.get(collectionName);
+    }
+    return null;
   }
   
   public Map<String,Class> getStreamFunctions(){