You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by iv...@apache.org on 2015/07/01 12:14:06 UTC

[30/39] incubator-ignite git commit: #ignite-964: QueryCommandHandler code style.

#ignite-964: QueryCommandHandler code style.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/7e0a63b6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/7e0a63b6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/7e0a63b6

Branch: refs/heads/ignite-964
Commit: 7e0a63b6408d079b146e7d5b9dc21efd766e803f
Parents: f9a738f
Author: ivasilinets <iv...@gridgain.com>
Authored: Wed Jul 1 12:25:35 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Wed Jul 1 12:25:35 2015 +0300

----------------------------------------------------------------------
 .../handlers/query/QueryCommandHandler.java     | 99 +++++++++-----------
 1 file changed, 43 insertions(+), 56 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e0a63b6/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java
index a254115..9432bb7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java
@@ -25,7 +25,6 @@ import org.apache.ignite.internal.processors.rest.request.*;
 import org.apache.ignite.internal.util.future.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 
-import javax.cache.*;
 import java.util.*;
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.*;
@@ -45,8 +44,7 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
     private static final AtomicLong qryIdGen = new AtomicLong();
 
     /** Current queries. */
-    private final ConcurrentHashMap<Long, Iterator<Cache.Entry<Object, Object>>> curs =
-        new ConcurrentHashMap<>();
+    private final ConcurrentHashMap<Long, Iterator> curs = new ConcurrentHashMap<>();
 
     /**
      * @param ctx Context.
@@ -79,7 +77,7 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
                 assert req instanceof RestSqlQueryRequest : "Invalid type of query request.";
 
                 return ctx.closure().callLocalSafe(
-                    new FetchQueryCallable(ctx, (RestSqlQueryRequest)req, curs), false);
+                    new FetchQueryCallable((RestSqlQueryRequest)req, curs), false);
             }
         }
 
@@ -90,9 +88,6 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
      * Execute query callable.
      */
     private static class ExecuteQueryCallable implements Callable<GridRestResponse> {
-        /** */
-        private static final long serialVersionUID = 0L;
-
         /** Kernal context. */
         private GridKernalContext ctx;
 
@@ -100,14 +95,15 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
         private RestSqlQueryRequest req;
 
         /** Queries cursors. */
-        private ConcurrentHashMap<Long, Iterator<Cache.Entry<Object, Object>>> curs;
+        private ConcurrentHashMap<Long, Iterator> curs;
 
         /**
          * @param ctx Kernal context.
          * @param req Execute query request.
+         * @param curs Queries cursors.
          */
         public ExecuteQueryCallable(GridKernalContext ctx, RestSqlQueryRequest req,
-            ConcurrentHashMap<Long, Iterator<Cache.Entry<Object, Object>>> curs) {
+            ConcurrentHashMap<Long, Iterator> curs) {
             this.ctx = ctx;
             this.req = req;
             this.curs = curs;
@@ -129,31 +125,15 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
                     ((SqlFieldsQuery)qry).setArgs(req.arguments());
                 }
 
-                Iterator<Cache.Entry<Object, Object>> cur =
-                    ctx.grid().cache(req.cacheName()).query(qry).iterator();
+                Iterator cur = ctx.grid().cache(req.cacheName()).query(qry).iterator();
 
                 long qryId = qryIdGen.getAndIncrement();
 
                 curs.put(qryId, cur);
 
-                List res = new ArrayList<>();
-
-                CacheQueryResult response = new CacheQueryResult();
-
-                for (int i = 0; i < req.pageSize() && cur.hasNext(); ++i) {
-                    res.add(cur.next());
-                }
-
-                response.setItems(res);
-
-                response.setLast(!cur.hasNext());
-
-                response.setQueryId(qryId);
-
-                if (!cur.hasNext())
-                    curs.remove(qryId);
+                CacheQueryResult res = createQueryResult(curs, cur, req, qryId);
 
-                return new GridRestResponse(response);
+                return new GridRestResponse(res);
             }
             catch (Exception e) {
                 return new GridRestResponse(GridRestResponse.STATUS_FAILED, e.getMessage());
@@ -165,25 +145,18 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
      * Fetch query callable.
      */
     private static class FetchQueryCallable implements Callable<GridRestResponse> {
-        /** */
-        private static final long serialVersionUID = 0L;
-
-        /** Kernal context. */
-        private GridKernalContext ctx;
-
         /** Execute query request. */
         private RestSqlQueryRequest req;
 
         /** Queries cursors. */
-        private ConcurrentHashMap<Long, Iterator<Cache.Entry<Object, Object>>> curs;
+        private ConcurrentHashMap<Long, Iterator> curs;
 
         /**
-         * @param ctx Kernal context.
          * @param req Execute query request.
+         * @param curs Queries cursors.
          */
-        public FetchQueryCallable(GridKernalContext ctx, RestSqlQueryRequest req,
-            ConcurrentHashMap<Long, Iterator<Cache.Entry<Object, Object>>> curs) {
-            this.ctx = ctx;
+        public FetchQueryCallable(RestSqlQueryRequest req,
+            ConcurrentHashMap<Long, Iterator> curs) {
             this.req = req;
             this.curs = curs;
         }
@@ -191,29 +164,15 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
         /** {@inheritDoc} */
         @Override public GridRestResponse call() throws Exception {
             try {
-                Iterator<Cache.Entry<Object, Object>> cur = curs.get(req.queryId());
+                Iterator cur = curs.get(req.queryId());
 
                 if (cur == null)
                     return new GridRestResponse(GridRestResponse.STATUS_FAILED,
                         "Cannot find query [qryId=" + req.queryId() + "]");
 
-                List res = new ArrayList<>();
+                CacheQueryResult res = createQueryResult(curs, cur, req, req.queryId());
 
-                CacheQueryResult response = new CacheQueryResult();
-
-                for (int i = 0; i < req.pageSize() && cur.hasNext(); ++i) {
-                    res.add(cur.next());
-                }
-                response.setItems(res);
-
-                response.setLast(!cur.hasNext());
-
-                response.setQueryId(req.queryId());
-
-                if (!cur.hasNext())
-                    curs.remove(req.queryId());
-
-                return new GridRestResponse(response);
+                return new GridRestResponse(res);
             }
             catch (Exception e) {
                 curs.remove(req.queryId());
@@ -222,4 +181,32 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
             }
         }
     }
+
+    /**
+     * @param curs Queries cursors.
+     * @param cur Current cursor.
+     * @param req Sql request.
+     * @param qryId Query id.
+     * @return Query result with items.
+     */
+    private static CacheQueryResult createQueryResult(ConcurrentHashMap<Long, Iterator> curs, Iterator cur,
+        RestSqlQueryRequest req, Long qryId) {
+        CacheQueryResult res = new CacheQueryResult();
+
+        List<Object> items = new ArrayList<>();
+
+        for (int i = 0; i < req.pageSize() && cur.hasNext(); ++i)
+            items.add(cur.next());
+
+        res.setItems(items);
+
+        res.setLast(!cur.hasNext());
+
+        res.setQueryId(qryId);
+
+        if (!cur.hasNext())
+            curs.remove(req.queryId());
+
+        return res;
+    }
 }