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;
}
}