You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2018/11/29 17:35:04 UTC

svn commit: r1847741 - /uima/uima-as/branches/uima-as-3/uimaj-as-connectors/src/main/java/org/apache/uima/as/connectors/direct/DirectMessageBuilder.java

Author: cwiklik
Date: Thu Nov 29 17:35:04 2018
New Revision: 1847741

URL: http://svn.apache.org/viewvc?rev=1847741&view=rev
Log:
UIMA-5501 refactored to use pluggagble endpoints

Added:
    uima/uima-as/branches/uima-as-3/uimaj-as-connectors/src/main/java/org/apache/uima/as/connectors/direct/DirectMessageBuilder.java

Added: uima/uima-as/branches/uima-as-3/uimaj-as-connectors/src/main/java/org/apache/uima/as/connectors/direct/DirectMessageBuilder.java
URL: http://svn.apache.org/viewvc/uima/uima-as/branches/uima-as-3/uimaj-as-connectors/src/main/java/org/apache/uima/as/connectors/direct/DirectMessageBuilder.java?rev=1847741&view=auto
==============================================================================
--- uima/uima-as/branches/uima-as-3/uimaj-as-connectors/src/main/java/org/apache/uima/as/connectors/direct/DirectMessageBuilder.java (added)
+++ uima/uima-as/branches/uima-as-3/uimaj-as-connectors/src/main/java/org/apache/uima/as/connectors/direct/DirectMessageBuilder.java Thu Nov 29 17:35:04 2018
@@ -0,0 +1,115 @@
+package org.apache.uima.as.connectors.direct;
+
+import org.apache.uima.aae.definition.connectors.UimaAsConsumer;
+import org.apache.uima.aae.definition.connectors.UimaAsConsumer.ConsumerType;
+import org.apache.uima.aae.definition.connectors.UimaAsEndpoint;
+import org.apache.uima.aae.message.AsynchAEMessage;
+import org.apache.uima.aae.message.MessageBuilder;
+import org.apache.uima.aae.message.MessageContext;
+import org.apache.uima.aae.message.Origin;
+import org.apache.uima.analysis_engine.metadata.AnalysisEngineMetaData;
+import org.apache.uima.as.client.DirectMessage;
+import org.apache.uima.as.client.DirectMessageContext;
+
+public class DirectMessageBuilder implements MessageBuilder {
+		private DirectMessage message;
+		private String id;
+		private UimaAsEndpoint endpoint;
+		
+		protected DirectMessageBuilder(UimaAsEndpoint endpoint ) {
+			this.endpoint = endpoint;
+		}
+		private MessageBuilder newMessage(int command, int msgType, Origin origin) {
+			message = new DirectMessage().
+					withCommand(command).
+					withMessageType(msgType).
+					withOrigin(origin);
+			return this;
+		}
+
+		public MessageContext build() {
+			return new DirectMessageContext(message,id,id);
+		}
+
+		public DirectMessageBuilder withSenderKey(String senderKey) {
+			message.withDelegateKey(senderKey);
+			return this;
+		}
+		public DirectMessageBuilder withReplyDestination(Object replyToDestination) {
+			message.withReplyDestination(replyToDestination);
+			return this;
+		}
+		public DirectMessageBuilder withPayload(int payload) {
+			message.withPayload(payload);
+			return this;
+		}
+
+		@Override
+		public MessageBuilder withId(String id) {
+			message.withEndpointName(id);
+			return this;
+		}
+		@Override
+		public MessageBuilder withCasReferenceId(String casReferenceId) {
+			message.withCasReferenceId(casReferenceId);
+			return this;
+		}
+		@Override
+		public MessageBuilder withParentCasReferenceId(String parentCasReferenceId) {
+			message.withParentCasReferenceId(parentCasReferenceId);
+			return this;
+		}
+		@Override
+		public MessageBuilder withMetadata(AnalysisEngineMetaData meta) {
+			message.withMetadata(meta);
+			return this;
+		}
+		@Override
+		public MessageBuilder withSequenceNo(long sequence) {
+			message.withSequenceNumber(sequence);
+			return this;
+		}
+
+		@Override
+		public MessageBuilder newGetMetaReplyMessage(Origin origin) {
+			return newMessage(AsynchAEMessage.GetMeta, AsynchAEMessage.Response, origin);
+		}
+
+		@Override
+		public MessageBuilder newGetMetaRequestMessage(Origin origin) {
+			UimaAsConsumer consumer =
+					endpoint.getConsumer(origin.getName(), ConsumerType.GetMetaResponse);
+			return newMessage(AsynchAEMessage.GetMeta, AsynchAEMessage.Request, origin).withReplyDestination(consumer);
+		}
+
+		@Override
+		public MessageBuilder newProcessCASReplyMessage(Origin origin) {
+			return newMessage(AsynchAEMessage.Process, AsynchAEMessage.Response, origin);
+		}
+
+		@Override
+		public MessageBuilder newProcessCASRequestMessage(Origin origin) {
+			UimaAsConsumer consumer =
+					endpoint.getConsumer(origin.getName(), ConsumerType.ProcessCASResponse);
+			return newMessage(AsynchAEMessage.Process, AsynchAEMessage.Request, origin).withReplyDestination(consumer);
+		}
+
+		@Override
+		public MessageBuilder newCpCReplyMessage(Origin origin) {
+			return newMessage(AsynchAEMessage.CollectionProcessComplete, AsynchAEMessage.Response, origin);
+		}
+
+		@Override
+		public MessageBuilder newCpCRequestMessage(Origin origin) {
+			UimaAsConsumer consumer =
+					endpoint.getConsumer(origin.getName(), ConsumerType.CpcResponse);
+			return newMessage(AsynchAEMessage.CollectionProcessComplete, AsynchAEMessage.Request, origin).withReplyDestination(consumer);
+		}
+
+		@Override
+		public MessageBuilder newReleaseCASRequestMessage(Origin origin) {
+			return newMessage(AsynchAEMessage.ReleaseCAS, AsynchAEMessage.Request, origin);
+		}
+
+
+}