]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.export.core/src/org/simantics/export/core/manager/PublishAction.java
ImportPdfReader now implements Closeable
[simantics/platform.git] / bundles / org.simantics.export.core / src / org / simantics / export / core / manager / PublishAction.java
1 package org.simantics.export.core.manager;
2
3 import java.util.Collections;
4 import java.util.List;
5
6 import org.eclipse.core.runtime.IProgressMonitor;
7 import org.simantics.databoard.binding.mutable.Variant;
8 import org.simantics.export.core.ExportContext;
9 import org.simantics.export.core.error.ExportException;
10 import org.simantics.export.core.intf.Publisher;
11 import org.simantics.export.core.intf.PublisherClass;
12
13 /**
14  * This action publishes the prepared content into an output location.
15  *
16  * @author toni.kalajainen@semantum.fi
17  */
18 public class PublishAction extends ExportAction {
19
20         public String publisherId;
21         public Variant locationOptions;
22         public List<Content> contents;
23         
24         public PublishAction( String publisherId, Variant locationOptions, List<Content> contents ) 
25         {
26                 this.publisherId = publisherId;
27                 this.locationOptions = locationOptions;
28                 this.contents = contents;
29         }
30         
31         @Override
32         public void execute(ExportContext ctx, IProgressMonitor progress, Variant options) throws ExportException {
33                 Publisher publisher = ctx.eep.getPublisher(publisherId);
34                 PublisherClass action = publisher.publisherClass();
35                 action.publish(ctx, contents, options, locationOptions, progress);
36         }
37
38         @Override
39         public String label(ExportContext ctx) {                
40                 Publisher publisher = ctx.eep.getPublisher(publisherId);
41                 return publisher.label();
42         }
43
44         @Override
45         public int work(ExportContext ctx) {
46                 return 2;
47         }
48
49         @Override
50         public List<String> validate(ExportContext ctx, Variant options) {
51                 try {
52                         Publisher publisher = ctx.eep.getPublisher(publisherId);
53                         PublisherClass action = publisher.publisherClass();
54                         return action.validate(ctx, contents, options, locationOptions);
55                 } catch (ExportException e) {
56                         return Collections.singletonList( e.getClass().getName()+": "+e.getMessage() );
57                 }               
58         }
59
60         @Override
61         public void cleanup(ExportContext ctx, IProgressMonitor progress, Variant options) throws ExportException {
62         }
63
64 }