package org.simantics.modeling; import java.util.Collection; import org.simantics.db.Resource; import org.simantics.db.WriteGraph; import org.simantics.db.common.request.WriteRequest; import org.simantics.db.exception.DatabaseException; import org.simantics.structural.stubs.StructuralResource2; public class AssignConnectionTypesRequest extends WriteRequest { Collection addedConnectionTypes; Collection removedConnectionTypes; Collection connectionPoints; public AssignConnectionTypesRequest(Collection addedConnectionTypes, Collection removedConnectionTypes, Collection connectionPoints) { this.addedConnectionTypes = addedConnectionTypes; this.removedConnectionTypes = removedConnectionTypes; this.connectionPoints = connectionPoints; } @Override public void perform(WriteGraph graph) throws DatabaseException { assignSymbolGroup(graph, addedConnectionTypes, removedConnectionTypes, connectionPoints); } public static void assignSymbolGroup(WriteGraph graph, Collection addedConnectionTypes, Collection removedConnectionTypes, Collection connectionPoints) throws DatabaseException { StructuralResource2 STR = StructuralResource2.getInstance(graph); for (Resource connectionPoint : connectionPoints) { for (Resource type : addedConnectionTypes) graph.claim(connectionPoint, STR.AllowsConnectionType, type); for (Resource type : removedConnectionTypes) graph.deny(connectionPoint, STR.AllowsConnectionType, type); } } }