From 81de83a6e767a0d1c3fd62a179cd007a5dc3951c Mon Sep 17 00:00:00 2001 From: Robin Bygrave Date: Thu, 4 Aug 2016 20:23:11 +1200 Subject: [PATCH] #803 - Fix generics on findMap() to ... Map findMap(); --- .../java/com/avaje/ebean/EbeanServer.java | 2 +- .../java/com/avaje/ebean/ExpressionList.java | 2 +- src/main/java/com/avaje/ebean/Model.java | 2 +- src/main/java/com/avaje/ebean/Query.java | 4 +-- .../server/core/DefaultServer.java | 7 +++-- .../expression/DefaultExpressionList.java | 2 +- .../expression/FilterExpressionList.java | 2 +- .../server/expression/JunctionExpression.java | 2 +- .../server/querydefn/DefaultOrmQuery.java | 2 +- .../ebeaninternal/api/TDSpiEbeanServer.java | 2 +- .../tests/basic/TestLazyLoadInCache.java | 2 +- .../avaje/tests/basic/TestLoadBeanCache.java | 2 +- .../tests/query/TestQueryFindMapTypedKey.java | 30 ++++++++++++++----- .../avaje/tests/readaudit/TestReadAudit.java | 2 +- 14 files changed, 39 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/avaje/ebean/EbeanServer.java b/src/main/java/com/avaje/ebean/EbeanServer.java index f4710e709..6d13000b3 100644 --- a/src/main/java/com/avaje/ebean/EbeanServer.java +++ b/src/main/java/com/avaje/ebean/EbeanServer.java @@ -986,7 +986,7 @@ public interface EbeanServer { * @return the map of fetched beans. * @see Query#findMap() */ - Map findMap(Query query, Transaction transaction); + Map findMap(Query query, Transaction transaction); /** * Execute the query returning a list of values for a single property. diff --git a/src/main/java/com/avaje/ebean/ExpressionList.java b/src/main/java/com/avaje/ebean/ExpressionList.java index c0c8f6512..882fbdc36 100644 --- a/src/main/java/com/avaje/ebean/ExpressionList.java +++ b/src/main/java/com/avaje/ebean/ExpressionList.java @@ -203,7 +203,7 @@ public interface ExpressionList { * * @see Query#findMap() */ - Map findMap(); + Map findMap(); /** * Return a typed map specifying the key property and type. diff --git a/src/main/java/com/avaje/ebean/Model.java b/src/main/java/com/avaje/ebean/Model.java index 3f0bf9606..4431c18de 100644 --- a/src/main/java/com/avaje/ebean/Model.java +++ b/src/main/java/com/avaje/ebean/Model.java @@ -660,7 +660,7 @@ public abstract class Model { *

* Equivalent to {@link Query#findMap()} */ - public Map findMap() { + public Map findMap() { return query().findMap(); } diff --git a/src/main/java/com/avaje/ebean/Query.java b/src/main/java/com/avaje/ebean/Query.java index 7fb526336..920a148f8 100644 --- a/src/main/java/com/avaje/ebean/Query.java +++ b/src/main/java/com/avaje/ebean/Query.java @@ -661,7 +661,7 @@ public interface Query { *

*
{@code
    *
-   * Map map =
+   * Map map =
    *   ebeanServer.find(Product.class)
    *     .setMapKey("sku")
    *     .findMap();
@@ -670,7 +670,7 @@ public interface Query {
    *
    * @see EbeanServer#findMap(Query, Transaction)
    */
-  Map findMap();
+   Map findMap();
 
   /**
    * Return a typed map specifying the key property and type.
diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java b/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java
index 7b2af928f..7c3e76a57 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/core/DefaultServer.java
@@ -1134,18 +1134,18 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer {
   }
 
   @SuppressWarnings({ "unchecked", "rawtypes" })
-  public  Map findMap(Query query, Transaction t) {
+  public  Map findMap(Query query, Transaction t) {
 
     SpiOrmQueryRequest request = createQueryRequest(Type.MAP, query, t);
 
     Object result = request.getFromQueryCache();
     if (result != null) {
-      return (Map) result;
+      return (Map) result;
     }
 
     try {
       request.initTransIfRequired();
-      return (Map) request.findMap();
+      return (Map) request.findMap();
 
     } finally {
       request.endTransIfRequired();
@@ -1153,6 +1153,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer {
   }
 
   @Override
+  @SuppressWarnings("unchecked")
   public  List findSingleAttributeList(Query query, Transaction t) {
 
     SpiOrmQueryRequest request = createQueryRequest(Type.ATTRIBUTE, query, t);
diff --git a/src/main/java/com/avaje/ebeaninternal/server/expression/DefaultExpressionList.java b/src/main/java/com/avaje/ebeaninternal/server/expression/DefaultExpressionList.java
index a1e97986c..3dbf67571 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/expression/DefaultExpressionList.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/expression/DefaultExpressionList.java
@@ -379,7 +379,7 @@ public class DefaultExpressionList implements SpiExpressionList {
   }
 
   @Override
-  public Map findMap() {
+  public  Map findMap() {
     return query.findMap();
   }
 
diff --git a/src/main/java/com/avaje/ebeaninternal/server/expression/FilterExpressionList.java b/src/main/java/com/avaje/ebeaninternal/server/expression/FilterExpressionList.java
index 18284b842..cea91d4bf 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/expression/FilterExpressionList.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/expression/FilterExpressionList.java
@@ -64,7 +64,7 @@ public class FilterExpressionList extends DefaultExpressionList {
   }
 
   @Override
-  public Map findMap() {
+  public  Map findMap() {
     return rootQuery.findMap();
   }
 
diff --git a/src/main/java/com/avaje/ebeaninternal/server/expression/JunctionExpression.java b/src/main/java/com/avaje/ebeaninternal/server/expression/JunctionExpression.java
index 6db932350..21a085ed6 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/expression/JunctionExpression.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/expression/JunctionExpression.java
@@ -391,7 +391,7 @@ class JunctionExpression implements SpiJunction, SpiExpression, Expression
   }
 
   @Override
-  public Map findMap() {
+  public  Map findMap() {
     return exprList.findMap();
   }
 
diff --git a/src/main/java/com/avaje/ebeaninternal/server/querydefn/DefaultOrmQuery.java b/src/main/java/com/avaje/ebeaninternal/server/querydefn/DefaultOrmQuery.java
index 179999d93..75ae46827 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/querydefn/DefaultOrmQuery.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/querydefn/DefaultOrmQuery.java
@@ -1142,7 +1142,7 @@ public class DefaultOrmQuery implements SpiQuery {
   }
 
   @Override
-  public Map findMap() {
+  public  Map findMap() {
     return server.findMap(this, null);
   }
 
diff --git a/src/test/java/com/avaje/ebeaninternal/api/TDSpiEbeanServer.java b/src/test/java/com/avaje/ebeaninternal/api/TDSpiEbeanServer.java
index be387934e..e7ea6a3bb 100644
--- a/src/test/java/com/avaje/ebeaninternal/api/TDSpiEbeanServer.java
+++ b/src/test/java/com/avaje/ebeaninternal/api/TDSpiEbeanServer.java
@@ -516,7 +516,7 @@ public class TDSpiEbeanServer implements SpiEbeanServer {
   }
 
   @Override
-  public  Map findMap(Query query, Transaction transaction) {
+  public  Map findMap(Query query, Transaction transaction) {
     return null;
   }
 
diff --git a/src/test/java/com/avaje/tests/basic/TestLazyLoadInCache.java b/src/test/java/com/avaje/tests/basic/TestLazyLoadInCache.java
index 47c9d5a04..f1cb4a1c5 100644
--- a/src/test/java/com/avaje/tests/basic/TestLazyLoadInCache.java
+++ b/src/test/java/com/avaje/tests/basic/TestLazyLoadInCache.java
@@ -22,7 +22,7 @@ public class TestLazyLoadInCache extends BaseTestCase {
 		
 		ResetBasicData.reset();
 		
-		Map map = Ebean.find(Customer.class)
+		Map map = Ebean.find(Customer.class)
 			.select("id, name")
 			.setLoadBeanCache(true)
 			.setReadOnly(true)
diff --git a/src/test/java/com/avaje/tests/basic/TestLoadBeanCache.java b/src/test/java/com/avaje/tests/basic/TestLoadBeanCache.java
index e688df5b1..6e950ee62 100644
--- a/src/test/java/com/avaje/tests/basic/TestLoadBeanCache.java
+++ b/src/test/java/com/avaje/tests/basic/TestLoadBeanCache.java
@@ -17,7 +17,7 @@ public class TestLoadBeanCache extends BaseTestCase {
 		
 		ResetBasicData.reset();
 		
-		Map map = Ebean.find(Country.class)
+		Map map = Ebean.find(Country.class)
 			.setLoadBeanCache(true)
 			.setUseQueryCache(true)
 			.setReadOnly(true)
diff --git a/src/test/java/com/avaje/tests/query/TestQueryFindMapTypedKey.java b/src/test/java/com/avaje/tests/query/TestQueryFindMapTypedKey.java
index 8aaa9c12d..6648eb5f1 100644
--- a/src/test/java/com/avaje/tests/query/TestQueryFindMapTypedKey.java
+++ b/src/test/java/com/avaje/tests/query/TestQueryFindMapTypedKey.java
@@ -1,14 +1,16 @@
 package com.avaje.tests.query;
 
-import java.util.Map;
-
-import org.junit.Assert;
-import org.junit.Test;
-
 import com.avaje.ebean.BaseTestCase;
 import com.avaje.ebean.Ebean;
 import com.avaje.tests.model.basic.Customer;
+import com.avaje.tests.model.basic.Product;
 import com.avaje.tests.model.basic.ResetBasicData;
+import org.junit.Test;
+
+import java.util.Map;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertNotNull;
 
 public class TestQueryFindMapTypedKey extends BaseTestCase {
 
@@ -17,9 +19,21 @@ public class TestQueryFindMapTypedKey extends BaseTestCase {
 
     ResetBasicData.reset();
 
-    Map map = Ebean.find(Customer.class).select("id, name")
-        .findMap("name", String.class);
+    Map productsBySku = Ebean.find(Product.class)
+        .setMapKey("sku")
+        .findMap();
+
+    assertThat(productsBySku).isNotEmpty();
+
+    Product desk = productsBySku.get("DSK1");
+    assertNotNull(desk);
+
+    Map map = Ebean.find(Customer.class)
+        .select("id, name")
+        .setMapKey("name")
+        .findMap();
+
+    assertNotNull(map);
 
-    Assert.assertNotNull(map);
   }
 }
diff --git a/src/test/java/com/avaje/tests/readaudit/TestReadAudit.java b/src/test/java/com/avaje/tests/readaudit/TestReadAudit.java
index 578039966..927e75bba 100644
--- a/src/test/java/com/avaje/tests/readaudit/TestReadAudit.java
+++ b/src/test/java/com/avaje/tests/readaudit/TestReadAudit.java
@@ -257,7 +257,7 @@ public class TestReadAudit extends BaseTestCase {
 
     resetCounters();
 
-    Map list = server.find(EBasicChangeLog.class)
+    Map list = server.find(EBasicChangeLog.class)
         .where().startsWith("shortDescription", "readAudit")
         .findMap();