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