X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.modeling%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Frules%2FRelatedDiagramConnections.java;h=5f63e7c670dca7e83938c15126822816dbbcef67;hp=ebbef33323cd7d543e9011026f1863e54e3bff75;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hpb=24e2b34260f219f0d1644ca7a138894980e25b14 diff --git a/bundles/org.simantics.modeling/src/org/simantics/modeling/rules/RelatedDiagramConnections.java b/bundles/org.simantics.modeling/src/org/simantics/modeling/rules/RelatedDiagramConnections.java index ebbef3332..5f63e7c67 100644 --- a/bundles/org.simantics.modeling/src/org/simantics/modeling/rules/RelatedDiagramConnections.java +++ b/bundles/org.simantics.modeling/src/org/simantics/modeling/rules/RelatedDiagramConnections.java @@ -1,71 +1,71 @@ -package org.simantics.modeling.rules; - -import gnu.trove.set.hash.THashSet; - -import java.util.Collection; -import java.util.Set; - -import org.simantics.db.ReadGraph; -import org.simantics.db.Resource; -import org.simantics.db.Statement; -import org.simantics.db.exception.DatabaseException; -import org.simantics.diagram.stubs.DiagramResource; -import org.simantics.structural.stubs.StructuralResource2; - -public class RelatedDiagramConnections { - - ReadGraph g; - StructuralResource2 sr; - DiagramResource dr; - - THashSet connections = new THashSet(); - THashSet connectionJoins = new THashSet(); - THashSet outputConnectors = new THashSet(); - - public RelatedDiagramConnections(ReadGraph g) { - this.g = g; - this.sr = StructuralResource2.getInstance(g); - this.dr = DiagramResource.getInstance(g); - } - - public void addConnection(Resource connection) throws DatabaseException { - if(connections.add(connection)) { - for(Statement hasConnector : g.getStatements(connection, dr.HasConnector)) { - Resource connector = hasConnector.getObject(); - for(Resource flag : g.getObjects(connector, sr.Connects)) { - if(g.isInstanceOf(flag, dr.Flag)) { - for(Resource join : g.getObjects(flag, dr.FlagIsJoinedBy)) - addConnectionJoin(join); - } - } - if (g.isSubrelationOf(hasConnector.getPredicate(), dr.HasTailConnector)) { - outputConnectors.add(connector); - } - } - } - } - - public void addConnectionJoin(Resource join) throws DatabaseException { - if(connectionJoins.add(join)) { - for(Resource flag : g.getObjects(join, dr.JoinsFlag)) - for(Resource connector : g.getObjects(flag, sr.IsConnectedTo)) - for(Resource connection : g.getObjects(connector, dr.IsConnectorOf)) - addConnection(connection); - } - } - - public static Collection getRelatedDiagramConnections(ReadGraph g, Resource connection) throws DatabaseException { - RelatedDiagramConnections p = new RelatedDiagramConnections(g); - p.addConnection(connection); - return p.connections; - } - - public Set getDiagramConnections() { - return connections; - } - - public Set getOutputConnectors() { - return outputConnectors; - } - -} +package org.simantics.modeling.rules; + +import gnu.trove.set.hash.THashSet; + +import java.util.Collection; +import java.util.Set; + +import org.simantics.db.ReadGraph; +import org.simantics.db.Resource; +import org.simantics.db.Statement; +import org.simantics.db.exception.DatabaseException; +import org.simantics.diagram.stubs.DiagramResource; +import org.simantics.structural.stubs.StructuralResource2; + +public class RelatedDiagramConnections { + + ReadGraph g; + StructuralResource2 sr; + DiagramResource dr; + + THashSet connections = new THashSet(); + THashSet connectionJoins = new THashSet(); + THashSet outputConnectors = new THashSet(); + + public RelatedDiagramConnections(ReadGraph g) { + this.g = g; + this.sr = StructuralResource2.getInstance(g); + this.dr = DiagramResource.getInstance(g); + } + + public void addConnection(Resource connection) throws DatabaseException { + if(connections.add(connection)) { + for(Statement hasConnector : g.getStatements(connection, dr.HasConnector)) { + Resource connector = hasConnector.getObject(); + for(Resource flag : g.getObjects(connector, sr.Connects)) { + if(g.isInstanceOf(flag, dr.Flag)) { + for(Resource join : g.getObjects(flag, dr.FlagIsJoinedBy)) + addConnectionJoin(join); + } + } + if (g.isSubrelationOf(hasConnector.getPredicate(), dr.HasTailConnector)) { + outputConnectors.add(connector); + } + } + } + } + + public void addConnectionJoin(Resource join) throws DatabaseException { + if(connectionJoins.add(join)) { + for(Resource flag : g.getObjects(join, dr.JoinsFlag)) + for(Resource connector : g.getObjects(flag, sr.IsConnectedTo)) + for(Resource connection : g.getObjects(connector, dr.IsConnectorOf)) + addConnection(connection); + } + } + + public static Collection getRelatedDiagramConnections(ReadGraph g, Resource connection) throws DatabaseException { + RelatedDiagramConnections p = new RelatedDiagramConnections(g); + p.addConnection(connection); + return p.connections; + } + + public Set getDiagramConnections() { + return connections; + } + + public Set getOutputConnectors() { + return outputConnectors; + } + +}