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