-/*******************************************************************************\r
- * Copyright (c) 2007, 2014 Association for Decentralized Information Management\r
- * in Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- * VTT Technical Research Centre of Finland - initial API and implementation\r
- * Semantum Oy - #5290\r
- *******************************************************************************/\r
-package org.simantics.modeling.rules;\r
-\r
-import java.util.Collection;\r
-\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.WriteGraph;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.modeling.ModelingResources;\r
-import org.simantics.structural2.modelingRules.CPConnection;\r
-import org.simantics.structural2.modelingRules.CPConnectionJoin;\r
-import org.simantics.structural2.modelingRules.CPTerminal;\r
-import org.simantics.structural2.modelingRules.IConnectionPoint;\r
-\r
-public class Mapping implements IMapping {\r
-\r
- Resource componentMap;\r
- Resource connectionMap;\r
- Resource mapsToConnection;\r
- Resource invConnectionMap;\r
- Resource componentTypeMap;\r
- Resource connectionRelationMap;\r
- \r
- public Mapping(ReadGraph g) throws DatabaseException {\r
- initializeRelations(g);\r
- }\r
-\r
- protected void initializeRelations(ReadGraph g) throws DatabaseException {\r
- componentMap = g.getResource(ModelingResources.URIs.ElementToComponent);\r
- connectionMap = g.getResource(ModelingResources.URIs.DiagramConnectionToConnection);\r
- mapsToConnection = g.getResource(ModelingResources.URIs.MapsToConnection);\r
- invConnectionMap = g.getResource(ModelingResources.URIs.ConnectionToDiagramConnection);\r
- componentTypeMap = g.getResource(ModelingResources.URIs.SymbolToComponentType); \r
- connectionRelationMap = g.getResource(ModelingResources.URIs.DiagramConnectionRelationToConnectionRelation);\r
- }\r
-\r
- @Override\r
- public Resource mapComponentType(ReadGraph g, Resource componentType)\r
- throws DatabaseException {\r
- return g.getPossibleObject(componentType, componentTypeMap);\r
- }\r
-\r
- public Collection<Resource> mapToConnections(ReadGraph g, Resource connection)\r
- throws DatabaseException {\r
- return g.getObjects(connection, mapsToConnection);\r
- }\r
-\r
- @Override\r
- public Resource mapConnection(ReadGraph g, Resource connection)\r
- throws DatabaseException {\r
- return g.getPossibleObject(connection, connectionMap);\r
- }\r
- \r
- @Override\r
- public Resource invMapConnection(WriteGraph g, Resource connection) \r
- throws DatabaseException {\r
- return g.getPossibleObject(connection, invConnectionMap);\r
- }\r
- \r
- @Override\r
- public Resource mapConnectionRelation(ReadGraph g, Resource relation)\r
- throws DatabaseException {\r
- return g.getPossibleObject(relation, connectionRelationMap);\r
- }\r
-\r
- @Override\r
- public Resource mapComponent(ReadGraph g, Resource component)\r
- throws DatabaseException {\r
- return g.getPossibleObject(component, componentMap);\r
- }\r
- \r
- @Override\r
- public IConnectionPoint mapConnectionPoint(ReadGraph g,\r
- IConnectionPoint cp) throws DatabaseException {\r
- if(cp instanceof CPConnection) {\r
- CPConnection ccp = (CPConnection)cp;\r
- Resource connection = mapConnection(g, ccp.connection);\r
- if (connection == null)\r
- return null;\r
- return new CPConnection(connection);\r
- }\r
- if(cp instanceof CPTerminal)\r
- return mapCPTerminal(g, (CPTerminal)cp);\r
- if(cp instanceof CPConnectionJoin)\r
- return cp;\r
- return null;\r
- } \r
-\r
- @Override\r
- public int mapToConnectionPoints(ReadGraph g, IConnectionPoint cp,\r
- Collection<IConnectionPoint> result) throws DatabaseException {\r
- if(cp instanceof CPConnection) {\r
- CPConnection ccp = (CPConnection)cp;\r
- Collection<Resource> connections = mapToConnections(g, ccp.connection);\r
- int size = connections.size();\r
- if (size > 0)\r
- for (Resource connection : connections)\r
- result.add(new CPConnection(connection));\r
- return size;\r
- }\r
- if(cp instanceof CPTerminal) {\r
- IConnectionPoint mcp = mapCPTerminal(g, (CPTerminal) cp);\r
- if (mcp != null)\r
- result.add(mcp);\r
- return mcp != null ? 1 : 0;\r
- }\r
- if(cp instanceof CPConnectionJoin) {\r
- result.add(cp);\r
- return 1;\r
- }\r
- return 0;\r
- }\r
-\r
- protected IConnectionPoint mapCPTerminal(ReadGraph g, CPTerminal ccp) throws DatabaseException {\r
- if(ccp.component == null)\r
- return null;\r
- Resource component = mapComponent(g, ccp.component);\r
- if(component == null)\r
- return null;\r
- Resource connectionRelation = mapConnectionRelation(g, ccp.relation);\r
- if(connectionRelation == null)\r
- return null;\r
- return new CPTerminal(\r
- component,\r
- connectionRelation\r
- );\r
- }\r
-\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2007, 2014 Association for Decentralized Information Management
+ * in Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VTT Technical Research Centre of Finland - initial API and implementation
+ * Semantum Oy - #5290
+ *******************************************************************************/
+package org.simantics.modeling.rules;
+
+import java.util.Collection;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.modeling.ModelingResources;
+import org.simantics.structural2.modelingRules.CPConnection;
+import org.simantics.structural2.modelingRules.CPConnectionJoin;
+import org.simantics.structural2.modelingRules.CPTerminal;
+import org.simantics.structural2.modelingRules.IConnectionPoint;
+
+public class Mapping implements IMapping {
+
+ Resource componentMap;
+ Resource connectionMap;
+ Resource mapsToConnection;
+ Resource invConnectionMap;
+ Resource componentTypeMap;
+ Resource connectionRelationMap;
+
+ public Mapping(ReadGraph g) throws DatabaseException {
+ initializeRelations(g);
+ }
+
+ protected void initializeRelations(ReadGraph g) throws DatabaseException {
+ componentMap = g.getResource(ModelingResources.URIs.ElementToComponent);
+ connectionMap = g.getResource(ModelingResources.URIs.DiagramConnectionToConnection);
+ mapsToConnection = g.getResource(ModelingResources.URIs.MapsToConnection);
+ invConnectionMap = g.getResource(ModelingResources.URIs.ConnectionToDiagramConnection);
+ componentTypeMap = g.getResource(ModelingResources.URIs.SymbolToComponentType);
+ connectionRelationMap = g.getResource(ModelingResources.URIs.DiagramConnectionRelationToConnectionRelation);
+ }
+
+ @Override
+ public Resource mapComponentType(ReadGraph g, Resource componentType)
+ throws DatabaseException {
+ return g.getPossibleObject(componentType, componentTypeMap);
+ }
+
+ public Collection<Resource> mapToConnections(ReadGraph g, Resource connection)
+ throws DatabaseException {
+ return g.getObjects(connection, mapsToConnection);
+ }
+
+ @Override
+ public Resource mapConnection(ReadGraph g, Resource connection)
+ throws DatabaseException {
+ return g.getPossibleObject(connection, connectionMap);
+ }
+
+ @Override
+ public Resource invMapConnection(WriteGraph g, Resource connection)
+ throws DatabaseException {
+ return g.getPossibleObject(connection, invConnectionMap);
+ }
+
+ @Override
+ public Resource mapConnectionRelation(ReadGraph g, Resource relation)
+ throws DatabaseException {
+ return g.getPossibleObject(relation, connectionRelationMap);
+ }
+
+ @Override
+ public Resource mapComponent(ReadGraph g, Resource component)
+ throws DatabaseException {
+ return g.getPossibleObject(component, componentMap);
+ }
+
+ @Override
+ public IConnectionPoint mapConnectionPoint(ReadGraph g,
+ IConnectionPoint cp) throws DatabaseException {
+ if(cp instanceof CPConnection) {
+ CPConnection ccp = (CPConnection)cp;
+ Resource connection = mapConnection(g, ccp.connection);
+ if (connection == null)
+ return null;
+ return new CPConnection(connection);
+ }
+ if(cp instanceof CPTerminal)
+ return mapCPTerminal(g, (CPTerminal)cp);
+ if(cp instanceof CPConnectionJoin)
+ return cp;
+ return null;
+ }
+
+ @Override
+ public int mapToConnectionPoints(ReadGraph g, IConnectionPoint cp,
+ Collection<IConnectionPoint> result) throws DatabaseException {
+ if(cp instanceof CPConnection) {
+ CPConnection ccp = (CPConnection)cp;
+ Collection<Resource> connections = mapToConnections(g, ccp.connection);
+ int size = connections.size();
+ if (size > 0)
+ for (Resource connection : connections)
+ result.add(new CPConnection(connection));
+ return size;
+ }
+ if(cp instanceof CPTerminal) {
+ IConnectionPoint mcp = mapCPTerminal(g, (CPTerminal) cp);
+ if (mcp != null)
+ result.add(mcp);
+ return mcp != null ? 1 : 0;
+ }
+ if(cp instanceof CPConnectionJoin) {
+ result.add(cp);
+ return 1;
+ }
+ return 0;
+ }
+
+ protected IConnectionPoint mapCPTerminal(ReadGraph g, CPTerminal ccp) throws DatabaseException {
+ if(ccp.component == null)
+ return null;
+ Resource component = mapComponent(g, ccp.component);
+ if(component == null)
+ return null;
+ Resource connectionRelation = mapConnectionRelation(g, ccp.relation);
+ if(connectionRelation == null)
+ return null;
+ return new CPTerminal(
+ component,
+ connectionRelation
+ );
+ }
+
+}