-package org.simantics.simulation.export;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Collection;\r
-\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.layer0.adapter.Instances;\r
-import org.simantics.db.request.Read;\r
-import org.simantics.export.core.ExportContext;\r
-import org.simantics.export.core.error.ExportException;\r
-import org.simantics.export.core.intf.DiscoverAction;\r
-import org.simantics.simulation.ontology.SimulationResource;\r
-\r
-/**\r
- * Discovers experiment results\r
- *\r
- * @author toni.kalajainen@semantum.fi\r
- */\r
-public class DiscoverExperimentResults implements DiscoverAction {\r
-\r
- public Read<Collection<String>> discoverRequest(\r
- final Collection<String> startLocations) throws ExportException {\r
- return new Read<Collection<String>>() {\r
- public Collection<String> perform(ReadGraph graph) throws DatabaseException {\r
- SimulationResource SIM = SimulationResource.getInstance(graph); \r
- \r
- // Ask Indexer\r
- Instances instances = graph.adapt(SIM.Experiment, Instances.class);\r
- ArrayList<String> result = new ArrayList<String>();\r
- for ( String startingLocation : startLocations ) {\r
- Resource sl = graph.getResource( startingLocation );\r
- for ( Resource diagram : instances.find(graph, sl) ) {\r
- result.add( graph.getURI(diagram) );\r
- }\r
- }\r
- return result; \r
- \r
- \r
- // Query\r
- /*\r
- Layer0 L0 = Layer0.getInstance(graph);\r
- TraverseQueryBuilder builder = new TraverseQueryBuilder();\r
- builder.setStartResources( graph.syncRequest( ExportQueries.toResources(startLocations) ) );\r
- builder.followRelation( L0.ConsistsOf );\r
- builder.followInstanceOf( SIM.Experiment );\r
- builder.followAndReturnInstanceOf( SIM.Run );\r
- TraverseResult traverseResult = graph.syncRequest( builder.build() );\r
- return graph.syncRequest( ExportQueries.toUris( traverseResult.result ) );\r
- */ \r
- }\r
- \r
- };\r
- }\r
-\r
- @Override\r
- public Collection<String> discoverContent(ExportContext ctx, Collection<String> startLocations) throws ExportException { \r
- try {\r
- return ctx.session.syncRequest( discoverRequest(startLocations) );\r
- } catch (DatabaseException e) {\r
- if ( e.getCause() instanceof ExportException ) throw (ExportException) e.getCause();\r
- throw new ExportException( e );\r
- }\r
- }\r
-\r
-}\r
+package org.simantics.simulation.export;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.adapter.Instances;
+import org.simantics.db.request.Read;
+import org.simantics.export.core.ExportContext;
+import org.simantics.export.core.error.ExportException;
+import org.simantics.export.core.intf.DiscoverAction;
+import org.simantics.simulation.ontology.SimulationResource;
+
+/**
+ * Discovers experiment results
+ *
+ * @author toni.kalajainen@semantum.fi
+ */
+public class DiscoverExperimentResults implements DiscoverAction {
+
+ public Read<Collection<String>> discoverRequest(
+ final Collection<String> startLocations) throws ExportException {
+ return new Read<Collection<String>>() {
+ public Collection<String> perform(ReadGraph graph) throws DatabaseException {
+ SimulationResource SIM = SimulationResource.getInstance(graph);
+
+ // Ask Indexer
+ Instances instances = graph.adapt(SIM.Experiment, Instances.class);
+ ArrayList<String> result = new ArrayList<String>();
+ for ( String startingLocation : startLocations ) {
+ Resource sl = graph.getResource( startingLocation );
+ for ( Resource diagram : instances.find(graph, sl) ) {
+ result.add( graph.getURI(diagram) );
+ }
+ }
+ return result;
+
+
+ // Query
+ /*
+ Layer0 L0 = Layer0.getInstance(graph);
+ TraverseQueryBuilder builder = new TraverseQueryBuilder();
+ builder.setStartResources( graph.syncRequest( ExportQueries.toResources(startLocations) ) );
+ builder.followRelation( L0.ConsistsOf );
+ builder.followInstanceOf( SIM.Experiment );
+ builder.followAndReturnInstanceOf( SIM.Run );
+ TraverseResult traverseResult = graph.syncRequest( builder.build() );
+ return graph.syncRequest( ExportQueries.toUris( traverseResult.result ) );
+ */
+ }
+
+ };
+ }
+
+ @Override
+ public Collection<String> discoverContent(ExportContext ctx, Collection<String> startLocations) throws ExportException {
+ try {
+ return ctx.session.syncRequest( discoverRequest(startLocations) );
+ } catch (DatabaseException e) {
+ if ( e.getCause() instanceof ExportException ) throw (ExportException) e.getCause();
+ throw new ExportException( e );
+ }
+ }
+
+}