]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.export.ui/src/org/simantics/export/ui/util/ExportUIQueries.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.export.ui / src / org / simantics / export / ui / util / ExportUIQueries.java
1 package org.simantics.export.ui.util;\r
2 \r
3 import java.util.ArrayList;\r
4 import java.util.Collection;\r
5 import java.util.List;\r
6 \r
7 import org.simantics.db.ReadGraph;\r
8 import org.simantics.db.Resource;\r
9 import org.simantics.db.common.request.ObjectsWithType;\r
10 import org.simantics.db.common.request.ResourceRead;\r
11 import org.simantics.db.common.request.UniqueRead;\r
12 import org.simantics.db.exception.AssumptionException;\r
13 import org.simantics.db.exception.DatabaseException;\r
14 import org.simantics.db.exception.ServiceException;\r
15 import org.simantics.db.exception.ValidationException;\r
16 import org.simantics.db.layer0.request.ActiveModels;\r
17 import org.simantics.db.request.Read;\r
18 import org.simantics.layer0.Layer0;\r
19 import org.simantics.simulation.ontology.SimulationResource;\r
20 \r
21 public class ExportUIQueries {\r
22 \r
23         \r
24         /**\r
25          * Get a query that returns active models\r
26          * @param project\r
27          * @return a query that returns active models\r
28          */\r
29         public static ResourceRead<Collection<Resource>> activeModels(Resource project) {\r
30                 return new ActiveModels(project);\r
31         }\r
32         \r
33 \r
34         public static Read<List<String>> models(final String project) {\r
35                 return new UniqueRead<List<String>>() {\r
36                         @Override\r
37                         public List<String> perform(ReadGraph graph) throws DatabaseException {\r
38                         Layer0 L0 = Layer0.getInstance(graph);\r
39                         SimulationResource SIMU = SimulationResource.getInstance(graph);\r
40                         ArrayList<String> result = new ArrayList<String>();\r
41                         Resource projectRes = graph.getResource(project);\r
42                         for (Resource model : graph.syncRequest(new ObjectsWithType(projectRes, L0.ConsistsOf, SIMU.Model))) {\r
43                         try { \r
44                                 String uri = graph.getURI(model);\r
45                                 if ( uri!=null ) result.add( uri );\r
46                         } catch (AssumptionException e) {\r
47                                 e.printStackTrace();\r
48                         } catch (ValidationException e) {\r
49                                 e.printStackTrace();\r
50                         } catch (ServiceException e) {\r
51                                 e.printStackTrace();\r
52                         }                               \r
53                         }\r
54                         return result;\r
55                                 \r
56                         }\r
57                 };\r
58         }       \r
59 }\r