package org.simantics.db.layer0.util;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedList;
collectDependencies(graph, resource, order, new HashSet<>());
return order;
}
-
+
private static void collectDependencies(ReadGraph graph, Resource resource, LinkedList<Resource> order, Set<Resource> visited) throws DatabaseException {
Layer0 L0 = Layer0.getInstance(graph);
for(Resource library : graph.syncRequest(new ObjectsWithType(resource, L0.IsLinkedTo, L0.SharedOntology))) {
order.addFirst(library);
}
}
-
+
private static List<ModelDependency> collectModelDependencies(ReadGraph graph, Resource resource) throws DatabaseException {
List<Resource> order = collectDependencies(graph, resource);
Collections.reverse(order);
- List<ModelDependency> modelDependencies = new LinkedList<>();
+ List<ModelDependency> modelDependencies = new ArrayList<>(order.size());
for (Resource library : order) {
String uri = graph.getPossibleURI(library);
}
}
return modelDependencies;
-
}
public static ModelDependenciesBean create(ReadGraph graph, Resource resource) throws DatabaseException {
-
List<ModelDependency> dependencies = collectModelDependencies(graph, resource);
return new ModelDependenciesBean(dependencies.toArray(new ModelDependency[dependencies.size()]));
-
}
- public static ModelDependenciesBean fromMigrationState(MigrationState state) throws DatabaseException {
+ public static ModelDependenciesBean fromMigrationState(MigrationState state) throws DatabaseException, AdaptException {
Map<String,Variant> extensions = state.getProperty(MigrationStateKeys.TG_EXTENSIONS);
final Variant variant = extensions.get(ModelDependenciesBean.EXTENSION_KEY);
- if (variant != null) {
- try {
- return (ModelDependenciesBean) variant.getValue(ModelDependenciesBean.BINDING);
- } catch (AdaptException e) {
- e.printStackTrace();
- }
- }
- return null;
- }
-
+ return variant != null ? (ModelDependenciesBean) variant.getValue(ModelDependenciesBean.BINDING) : null;
+ }
+
}