*******************************************************************************/
package org.simantics.modeling.adapters;
-import gnu.trove.set.hash.THashSet;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import org.simantics.databoard.Bindings;
import org.simantics.db.common.request.PossibleObjectWithType;
import org.simantics.db.common.utils.NameUtils;
import org.simantics.db.exception.DatabaseException;
-import org.simantics.db.layer0.exception.VariableException;
+import org.simantics.db.exception.VariableException;
+import org.simantics.db.layer0.QueryIndexUtils;
import org.simantics.db.layer0.request.PossibleModel;
import org.simantics.db.layer0.variable.RVI;
import org.simantics.db.layer0.variable.Variable;
import org.simantics.diagram.stubs.DiagramResource;
import org.simantics.layer0.Layer0;
import org.simantics.modeling.ModelingResources;
-import org.simantics.operation.Layer0X;
-import org.simantics.scl.runtime.function.Function;
import org.simantics.structural.stubs.StructuralResource2;
import org.simantics.utils.ui.ErrorLogger;
+import gnu.trove.set.hash.THashSet;
+
/**
* @author Tuukka Lehtonen
*/
return;
NamedResource namedRoot = new NamedResource(rootName, root);
- @SuppressWarnings("rawtypes")
- Function modules = graph.adapt(Layer0X.getInstance(graph).Dependencies, Function.class);
- @SuppressWarnings("unchecked")
- List<Map<String, Object>> rows = (List<Map<String, Object>>) modules.apply(graph, root, "Types:\"" + result.componentType.getName() + "\"");
- if (rows.isEmpty())
+ List<Resource> components = QueryIndexUtils.searchByTypeShallow(graph, root, result.componentType.getResource());
+ if (components.isEmpty())
return;
ModelingResources MOD = ModelingResources.getInstance(graph);
StructuralResource2 STR = StructuralResource2.getInstance(graph);
- for (Map<String, Object> row : rows) {
- Resource component = (Resource) row.get("Resource");
- if (graph.isInstanceOf(component, result.componentType.getResource())) {
- String componentName = graph.getPossibleRelatedValue(component, L0.HasName, Bindings.STRING);
- next_connection:
- for (Resource connection : graph.getObjects(component, connectionRelation)) {
- if (graph.isInstanceOf(connection, STR.Connection)) {
-
- if (diagramConnectionRelation != null) {
- // When diagram connection relation is defined, validate that
- // exactly the specified diagram connection relation is being
- // used and not some other relation from another symbol.
- for (Resource element : graph.getObjects(component, MOD.ComponentToElement)) {
- for (Resource diagramConnector : graph.getObjects(element, diagramConnectionRelation)) {
- Resource diagramConnection = ConnectionUtil.tryGetConnection(graph, diagramConnector);
- if (diagramConnection == null)
- continue;
- Resource correspondingConnection = graph.getPossibleObject(diagramConnection, MOD.DiagramConnectionToConnection);
- Resource correspondingConnectionSpecial = graph.getPossibleObject(diagramConnection, MOD.DiagramConnectionToConnectionSpecial);
- if (connection.equals(correspondingConnection) || connection.equals(correspondingConnectionSpecial)) {
- addUse(graph, component, componentName, namedRoot, rootURI, result);
- continue next_connection;
- }
+ for (Resource component : components) {
+ String componentName = graph.getPossibleRelatedValue(component, L0.HasName, Bindings.STRING);
+ next_connection:
+ for (Resource connection : graph.getObjects(component, connectionRelation)) {
+ if (graph.isInstanceOf(connection, STR.Connection)) {
+
+ if (diagramConnectionRelation != null) {
+ // When diagram connection relation is defined, validate that
+ // exactly the specified diagram connection relation is being
+ // used and not some other relation from another symbol.
+ for (Resource element : graph.getObjects(component, MOD.ComponentToElement)) {
+ for (Resource diagramConnector : graph.getObjects(element, diagramConnectionRelation)) {
+ Resource diagramConnection = ConnectionUtil.tryGetConnection(graph, diagramConnector);
+ if (diagramConnection == null)
+ continue;
+ Resource correspondingConnection = graph.getPossibleObject(diagramConnection, MOD.DiagramConnectionToConnection);
+ Resource correspondingConnectionSpecial = graph.getPossibleObject(diagramConnection, MOD.DiagramConnectionToConnectionSpecial);
+ if (connection.equals(correspondingConnection) || connection.equals(correspondingConnectionSpecial)) {
+ addUse(graph, component, componentName, namedRoot, rootURI, result);
+ continue next_connection;
}
}
- } else {
- addUse(graph, component, componentName, namedRoot, rootURI, result);
}
+ } else {
+ addUse(graph, component, componentName, namedRoot, rootURI, result);
}
-
}
- }
+ }
}
}