]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/ElementParameterRequest.java
Fixed multiple issues causing dangling references to discarded queries
[simantics/platform.git] / bundles / org.simantics.diagram / src / org / simantics / diagram / adapter / ElementParameterRequest.java
1 package org.simantics.diagram.adapter;
2
3 import java.util.HashMap;
4 import java.util.Map;
5
6 import org.simantics.db.ReadGraph;
7 import org.simantics.db.Resource;
8 import org.simantics.db.common.request.ResourceRead;
9 import org.simantics.db.exception.DatabaseException;
10 import org.simantics.db.layer0.variable.Variable;
11 import org.simantics.db.layer0.variable.Variables;
12 import org.simantics.diagram.stubs.DiagramResource;
13
14 class ElementParameterRequest extends ResourceRead<Map<String,Object>> {
15
16         protected ElementParameterRequest(Resource resource) {
17                 super(resource);
18         }
19
20         @Override
21         public Map<String, Object> perform(ReadGraph graph) throws DatabaseException {
22                 Variable var = Variables.getPossibleVariable(graph, resource);
23                 if(var == null) return null;
24                 Map<String,Object> result = null;
25                 for(Variable property : var.getProperties(graph, DiagramResource.URIs.DefinedElement_Parameter)) {
26                         Object value = property.getPossibleValue(graph);
27                         if(value != null) {
28                                 if(result == null) result = new HashMap<>();
29                                 result.put(property.getName(graph), value);
30                         }
31                 }
32                 return result;
33         }
34
35 }