]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.export.core/src/org/simantics/export/core/manager/CreatePublishLocationAction.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.export.core / src / org / simantics / export / core / manager / CreatePublishLocationAction.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.util.ExporterUtils;\r
12 \r
13 /**\r
14  * Checks if publish location exists, if not, creates one.\r
15  *\r
16  * @author toni.kalajainen@semantum.fi\r
17  */\r
18 public class CreatePublishLocationAction extends ExportAction {\r
19 \r
20         String publisherId;\r
21         \r
22         public CreatePublishLocationAction(String publisherId) \r
23         {\r
24                 this.publisherId = publisherId;\r
25         }\r
26         \r
27         @Override\r
28         public void execute(ExportContext ctx, IProgressMonitor progress, Variant options) throws ExportException {\r
29                 // Get publisher options\r
30                 Publisher publisher = ctx.eep.getPublisher( publisherId );\r
31                 Variant locationOptions = ExporterUtils.getPublisherLocationOptions(ctx, publisherId, options);\r
32                 if ( locationOptions == null ) return;\r
33                 boolean exists = publisher.publisherClass().locationExists(ctx, locationOptions);\r
34                         \r
35                 if ( !exists ) {\r
36                         publisher.publisherClass().createLocation(ctx, locationOptions);\r
37                 }\r
38         }\r
39 \r
40         @Override\r
41         public String label(ExportContext ctx) {\r
42                 Publisher publisher = ctx.eep.getPublisher( publisherId );\r
43                 String label = publisher.label();\r
44                 return "Assert "+label+" location exists.";\r
45         }\r
46 \r
47         @Override\r
48         public int work(ExportContext ctx) {\r
49                 return 1;\r
50         }\r
51 \r
52         @Override\r
53         public List<String> validate(ExportContext ctx, Variant options) {\r
54                 return Collections.emptyList();\r
55         }\r
56 \r
57         @Override\r
58         public void cleanup(ExportContext ctx, IProgressMonitor progress, Variant options) throws ExportException {\r
59         }\r
60 \r
61 }\r