]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.modeling/src/org/simantics/modeling/AssignConnectionTypesRequest.java
Add utility class org.simantics.modeling.help.HelpContexts
[simantics/platform.git] / bundles / org.simantics.modeling / src / org / simantics / modeling / AssignConnectionTypesRequest.java
1 package org.simantics.modeling;
2
3 import java.util.Collection;
4
5 import org.simantics.db.Resource;
6 import org.simantics.db.WriteGraph;
7 import org.simantics.db.common.request.WriteRequest;
8 import org.simantics.db.exception.DatabaseException;
9 import org.simantics.structural.stubs.StructuralResource2;
10
11 public class AssignConnectionTypesRequest extends WriteRequest {
12     
13     Collection<Resource>    addedConnectionTypes;
14     Collection<Resource>    removedConnectionTypes;
15     Collection<Resource>    connectionPoints;
16     
17     public AssignConnectionTypesRequest(Collection<Resource> addedConnectionTypes, Collection<Resource> removedConnectionTypes, Collection<Resource> connectionPoints) {
18         this.addedConnectionTypes = addedConnectionTypes;
19         this.removedConnectionTypes = removedConnectionTypes;
20         this.connectionPoints = connectionPoints;
21     }
22
23     @Override
24     public void perform(WriteGraph graph) throws DatabaseException {
25         assignSymbolGroup(graph, addedConnectionTypes, removedConnectionTypes, connectionPoints);
26     }
27
28     public static void assignSymbolGroup(WriteGraph graph, Collection<Resource> addedConnectionTypes, Collection<Resource> removedConnectionTypes, Collection<Resource> connectionPoints) throws DatabaseException {
29         StructuralResource2 STR = StructuralResource2.getInstance(graph);
30         for (Resource connectionPoint : connectionPoints) {
31             for (Resource type : addedConnectionTypes)
32                 graph.claim(connectionPoint, STR.AllowsConnectionType, type);
33             for (Resource type : removedConnectionTypes)
34                 graph.deny(connectionPoint, STR.AllowsConnectionType, type);
35         }
36     }
37     
38 }