1 package org.simantics.document.server;
\r
3 import java.util.List;
\r
4 import java.util.Map;
\r
6 import org.simantics.databoard.adapter.AdaptException;
\r
7 import org.simantics.databoard.binding.Binding;
\r
8 import org.simantics.db.ReadGraph;
\r
9 import org.simantics.db.Resource;
\r
10 import org.simantics.db.exception.DatabaseException;
\r
11 import org.simantics.db.layer0.request.VariableRead;
\r
12 import org.simantics.db.layer0.variable.Variable;
\r
13 import org.simantics.db.service.CollectionSupport;
\r
14 import org.simantics.document.base.ontology.DocumentationResource;
\r
15 import org.simantics.structural2.scl.StructuralComponent;
\r
17 public class VariableStructuralContext extends StructuralComponent<Variable> {
\r
19 final private Variable selfVariable;
\r
20 final private Variable variable;
\r
21 final private DocumentationResource DOC;
\r
23 public VariableStructuralContext(ReadGraph graph, Variable selfVariable) throws DatabaseException {
\r
24 this.selfVariable = selfVariable;
\r
25 this.variable = selfVariable.getParent(graph).getParent(graph);
\r
26 this.DOC = DocumentationResource.getInstance(graph);
\r
30 public Resource getType(ReadGraph g) throws DatabaseException {
\r
31 throw new UnsupportedOperationException();
\r
34 static class MapRequest extends VariableRead<Map<Resource,Variable>> {
\r
36 public MapRequest(Variable component) {
\r
41 public Map<Resource, Variable> perform(ReadGraph graph) throws DatabaseException {
\r
43 CollectionSupport cs = graph.getService(CollectionSupport.class);
\r
44 Map<Resource, Variable> result = cs.createMap(Variable.class);
\r
45 for(Variable property : variable.getProperties(graph)) {
\r
46 Resource predicate = property.getPossiblePredicateResource(graph);
\r
47 if(predicate != null)
\r
48 result.put(predicate, property);
\r
57 public Object getValue(ReadGraph g, Resource attribute, Binding binding) throws DatabaseException, AdaptException {
\r
59 Map<Resource,Variable> map = g.syncRequest(new MapRequest(variable));
\r
60 Variable p = map.get(attribute);
\r
63 return p.getValue(g, binding);
\r
65 return p.getValue(g);
\r
73 public boolean isParametrized(ReadGraph g) throws DatabaseException {
\r
74 throw new UnsupportedOperationException();
\r
78 public Variable getConnection(ReadGraph g, Resource connectionPoint) throws DatabaseException {
\r
79 throw new UnsupportedOperationException();
\r
82 @SuppressWarnings({ "unchecked", "rawtypes" })
\r
84 public List getConnections(ReadGraph g, Resource connectionPoint) throws DatabaseException {
\r
85 throw new UnsupportedOperationException();
\r
89 public Resource getResource() {
\r
90 throw new UnsupportedOperationException();
\r
94 public StructuralComponent<Variable> getContext() {
\r