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

[ignite] branch ignite-12248 updated: Calcite Message factory implements MessageFactoryProvider

This is an automated email from the ASF dual-hosted git repository.

gvvinblade pushed a commit to branch ignite-12248
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/ignite-12248 by this push:
     new 4250773  Calcite Message factory implements MessageFactoryProvider
4250773 is described below

commit 4250773ad498dc304d71b01a615b998f2983c548
Author: Igor Seliverstov <gv...@gmail.com>
AuthorDate: Mon Jul 13 16:13:00 2020 +0300

    Calcite Message factory implements MessageFactoryProvider
---
 .../calcite/message/CalciteMessageFactory.java     | 13 +++++---
 .../query/calcite/message/MessageType.java         | 39 ++--------------------
 2 files changed, 11 insertions(+), 41 deletions(-)

diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/message/CalciteMessageFactory.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/message/CalciteMessageFactory.java
index 258e03c..126515f 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/message/CalciteMessageFactory.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/message/CalciteMessageFactory.java
@@ -17,17 +17,20 @@
 
 package org.apache.ignite.internal.processors.query.calcite.message;
 
+import java.util.function.Supplier;
+import org.apache.ignite.plugin.extensions.communication.IgniteMessageFactory;
 import org.apache.ignite.plugin.extensions.communication.Message;
-import org.apache.ignite.plugin.extensions.communication.MessageFactory;
-import org.jetbrains.annotations.Nullable;
+import org.apache.ignite.plugin.extensions.communication.MessageFactoryProvider;
 
 /**
  * Message factory.
  */
-public class CalciteMessageFactory implements MessageFactory {
+public class CalciteMessageFactory implements MessageFactoryProvider {
     /** {@inheritDoc} */
-    @Override public @Nullable Message create(short type) {
-        return MessageType.newMessage(type);
+    @SuppressWarnings({"unchecked", "rawtypes"})
+    @Override public void registerAll(IgniteMessageFactory factory) {
+        for (MessageType type : MessageType.values())
+            factory.register(type.directType(), (Supplier)type.factory());
     }
 
     /**
diff --git a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/message/MessageType.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/message/MessageType.java
index 0f90bfd..9bd47c9 100644
--- a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/message/MessageType.java
+++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/message/MessageType.java
@@ -56,43 +56,10 @@ public enum MessageType {
         return (short) directType;
     }
 
-    /** */
-    private CalciteMessage newMessage() {
-        CalciteMessage msg = factory.get();
-
-        assert msg.type() == this;
-
-        return msg;
-    }
-
     /**
-     * Message factory method.
-     *
-     * @param directType Message direct type.
-     * @return new message or {@code null} in case of unknown message direct type.
+     * @return Message factory.
      */
-    public static CalciteMessage newMessage(short directType) {
-        switch (directType) {
-            case 300:
-                return QUERY_START_REQUEST.newMessage();
-            case 301:
-                return QUERY_START_RESPONSE.newMessage();
-            case 302:
-                return QUERY_CANCEL_REQUEST.newMessage();
-            case 303:
-                return QUERY_BATCH_MESSAGE.newMessage();
-            case 304:
-                return QUERY_ACKNOWLEDGE_MESSAGE.newMessage();
-            case 305:
-                return QUERY_INBOX_CANCEL_MESSAGE.newMessage();
-            case 306:
-                return GENERIC_ROW_MESSAGE.newMessage();
-            case 350:
-                return NODES_MAPPING.newMessage();
-            case 351:
-                return FRAGMENT_DESCRIPTION.newMessage();
-            default:
-                return null;
-        }
+    public Supplier<CalciteMessage> factory() {
+        return factory;
     }
 }