View Javadoc
1   package com.kodexa.client.remote;
2   
3   import com.kodexa.client.Document;
4   import com.kodexa.client.pipeline.Options;
5   import com.kodexa.client.pipeline.PipelineContext;
6   import com.kodexa.client.steps.PipelineStep;
7   import lombok.extern.slf4j.Slf4j;
8   
9   import java.util.Map;
10  
11  /**
12   * A step that is hosted in the Kodexa Cloud
13   */
14  @Slf4j
15  public class RemoteAction extends AbstractKodexaSession implements PipelineStep {
16  
17      private Options options;
18      private Map<String, Object> parameters;
19  
20      public RemoteAction(String organizationSlug, String serviceSlug) {
21          this(organizationSlug, serviceSlug, new Options());
22      }
23  
24      public RemoteAction(String ref) {
25          super(ref);
26      }
27  
28      public RemoteAction(String organizationSlug, String serviceSlug, Options options) {
29          super(organizationSlug + "/" + serviceSlug);
30          this.options = options;
31      }
32  
33      public RemoteAction options(Options options) {
34          this.options = options;
35          return this;
36      }
37  
38      public RemoteAction parameters(Map<String, Object> parameters) {
39          this.parameters = parameters;
40          return this;
41      }
42  
43      @Override
44      public Document../../../../com/kodexa/client/Document.html#Document">Document process(Document document, PipelineContext pipelineContext) {
45  
46          CloudSession session = this.createSession(CloudSessionType.service);
47          CloudExecution execution = executeService(session, document, pipelineContext, options, parameters);
48          execution = waitForExecution(session, execution);
49          mergeStores(session, execution, pipelineContext);
50          document = getOutputDocument(session, execution);
51          return document;
52      }
53  
54      @Override
55      public String getName() {
56          return "Kodexa Service [" + KodexaPlatform.getUrl() + "/" + this.getRef() + "]";
57      }
58  
59  }