#803 - Fix generics on findMap() to ... <K> Map<K, T> findMap();

This commit is contained in:
Robin Bygrave
2016-08-04 20:23:11 +12:00
parent b5b221ffb1
commit 81de83a6e7
14 changed files with 39 additions and 24 deletions
@@ -986,7 +986,7 @@ public interface EbeanServer {
* @return the map of fetched beans.
* @see Query#findMap()
*/
<T> Map<?, T> findMap(Query<T> query, Transaction transaction);
<K, T> Map<K, T> findMap(Query<T> query, Transaction transaction);
/**
* Execute the query returning a list of values for a single property.
@@ -203,7 +203,7 @@ public interface ExpressionList<T> {
*
* @see Query#findMap()
*/
Map<?, T> findMap();
<K> Map<K, T> findMap();
/**
* Return a typed map specifying the key property and type.
+1 -1
View File
@@ -660,7 +660,7 @@ public abstract class Model {
* <p>
* Equivalent to {@link Query#findMap()}
*/
public Map<?, T> findMap() {
public <K> Map<K, T> findMap() {
return query().findMap();
}
+2 -2
View File
@@ -661,7 +661,7 @@ public interface Query<T> {
* </p>
* <pre>{@code
*
* Map<?, Product> map =
* Map<String, Product> map =
* ebeanServer.find(Product.class)
* .setMapKey("sku")
* .findMap();
@@ -670,7 +670,7 @@ public interface Query<T> {
*
* @see EbeanServer#findMap(Query, Transaction)
*/
Map<?, T> findMap();
<K> Map<K, T> findMap();
/**
* Return a typed map specifying the key property and type.
@@ -1134,18 +1134,18 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer {
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public <T> Map<?, T> findMap(Query<T> query, Transaction t) {
public <K, T> Map<K, T> findMap(Query<T> query, Transaction t) {
SpiOrmQueryRequest request = createQueryRequest(Type.MAP, query, t);
Object result = request.getFromQueryCache();
if (result != null) {
return (Map<?, T>) result;
return (Map<K, T>) result;
}
try {
request.initTransIfRequired();
return (Map<?, T>) request.findMap();
return (Map<K, T>) request.findMap();
} finally {
request.endTransIfRequired();
@@ -1153,6 +1153,7 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer {
}
@Override
@SuppressWarnings("unchecked")
public <A> List<A> findSingleAttributeList(Query<?> query, Transaction t) {
SpiOrmQueryRequest request = createQueryRequest(Type.ATTRIBUTE, query, t);
@@ -379,7 +379,7 @@ public class DefaultExpressionList<T> implements SpiExpressionList<T> {
}
@Override
public Map<?, T> findMap() {
public <K> Map<K, T> findMap() {
return query.findMap();
}
@@ -64,7 +64,7 @@ public class FilterExpressionList<T> extends DefaultExpressionList<T> {
}
@Override
public Map<?, T> findMap() {
public <K> Map<K, T> findMap() {
return rootQuery.findMap();
}
@@ -391,7 +391,7 @@ class JunctionExpression<T> implements SpiJunction<T>, SpiExpression, Expression
}
@Override
public Map<?, T> findMap() {
public <K> Map<K, T> findMap() {
return exprList.findMap();
}
@@ -1142,7 +1142,7 @@ public class DefaultOrmQuery<T> implements SpiQuery<T> {
}
@Override
public Map<?, T> findMap() {
public <K> Map<K, T> findMap() {
return server.findMap(this, null);
}