1 package org.simantics.scenegraph.profile.request;
3 import java.util.ArrayList;
4 import java.util.Collections;
7 import org.simantics.databoard.Bindings;
8 import org.simantics.db.ReadGraph;
9 import org.simantics.db.Resource;
10 import org.simantics.db.common.NamedResource;
11 import org.simantics.db.common.request.ResourceRead;
12 import org.simantics.db.exception.DatabaseException;
13 import org.simantics.db.layer0.adapter.Instances;
14 import org.simantics.diagram.stubs.DiagramResource;
15 import org.simantics.layer0.Layer0;
17 public class AvailableProfiles extends ResourceRead<List<NamedResource>>{
19 protected AvailableProfiles(Resource runtimeDiagram) {
20 super(runtimeDiagram);
24 public List<NamedResource> perform(ReadGraph graph) throws DatabaseException {
26 Layer0 L0 = Layer0.getInstance(graph);
27 DiagramResource DIA = DiagramResource.getInstance(graph);
29 String indexURI = graph.getPossibleRelatedValue(resource, DIA.RuntimeDiagram_HasModelURI);
31 return Collections.emptyList();
33 Resource index = graph.getPossibleResource(indexURI);
35 return Collections.emptyList();
37 Instances query = graph.adapt(DIA.Profile, Instances.class);
39 ArrayList<NamedResource> result = new ArrayList<>();
40 for(Resource profile : query.find(graph, index)) {
41 if(!graph.hasStatement(profile, L0.Abstract)) {
42 String name = graph.getRelatedValue(profile, L0.HasName, Bindings.STRING);
43 result.add(new NamedResource(name, profile));