]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/StandardResourceVariableSpaceManipulator.java
Tried to improve the implementation of getPossibleDomainProperty
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / variable / StandardResourceVariableSpaceManipulator.java
1 /*******************************************************************************
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management
3  * in Industry THTH ry.
4  * All rights reserved. This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License v1.0
6  * which accompanies this distribution, and is available at
7  * http://www.eclipse.org/legal/epl-v10.html
8  *
9  * Contributors:
10  *     VTT Technical Research Centre of Finland - initial API and implementation
11  *******************************************************************************/
12 package org.simantics.db.layer0.variable;
13
14 import org.simantics.databoard.Bindings;
15 import org.simantics.db.Resource;
16 import org.simantics.db.WriteGraph;
17 import org.simantics.db.exception.DatabaseException;
18 import org.simantics.layer0.Layer0;
19
20 public class StandardResourceVariableSpaceManipulator implements VariableSpaceManipulator {
21         
22         final Variable target;
23         
24         public StandardResourceVariableSpaceManipulator(Variable target) {
25                 this.target = target;
26         }
27         
28         public Variable createVariable(WriteGraph graph, String rvi) throws DatabaseException {
29                 return null;
30         }
31         
32         public Variable createProperty(WriteGraph graph, String name) throws DatabaseException {
33                 if("HasDescription".equals(name)) {
34                         Layer0 l0 = Layer0.getInstance(graph);
35                         Resource targetResource = target.getInterface(graph, Resource.class);
36                         graph.claimLiteral(targetResource, l0.HasDescription, "", Bindings.STRING);
37                         return target.getProperty(graph, "HasDescription");
38                 }
39                 return null;
40         }
41         
42         public Variable createChild(WriteGraph graph, String name, Object content) throws DatabaseException {
43                 return null;
44         }
45
46         @Override
47         public void apply(WriteGraph graph, Modification modification)
48                         throws DatabaseException {
49                 for(PropertyCreationData data : modification.newProperties) {
50                         createProperty(graph, data.name);
51                 }
52         }
53         
54 }