import org.simantics.db.layer0.adapter.impl.SharedOntologyImportAdvisor;
import org.simantics.db.layer0.adapter.impl.TrashBinRemover;
import org.simantics.db.layer0.internal.SimanticsInternal;
+import org.simantics.db.layer0.request.ActivateModel;
import org.simantics.db.layer0.util.ExternalDownloadBean;
import org.simantics.db.layer0.util.Layer0Utils;
import org.simantics.db.layer0.util.TGTransferableGraphSource;
+import org.simantics.db.request.Write;
import org.simantics.db.service.XSupport;
import org.simantics.graph.db.IImportAdvisor;
import org.simantics.graph.db.ImportResult;
// return getTG(session, state, true, false);
// }
- public static void clearTempResource(Session session, final Resource resource) {
- session.asyncRequest(new WriteRequest() {
-
- @Override
- public void perform(WriteGraph graph) throws DatabaseException {
- graph.deny(resource, Layer0.getInstance(graph).PartOf);
- }
+ public static void clearTempResource(Session session, Resource resource) {
+ session.asyncRequest((Write) graph -> {
+ graph.deny(resource, Layer0.getInstance(graph).PartOf);
});
}
private static void activateIfNoActiveModel(WriteGraph graph, Resource root, Resource parent) throws DatabaseException {
Layer0X L0X = Layer0X.getInstance(graph);
SimulationResource SIMU = SimulationResource.getInstance(graph);
- if(!graph.hasStatement(parent, L0X.Activates) && graph.isInstanceOf(root, SIMU.Model))
- graph.claim(parent, L0X.Activates, root);
+ if (!graph.hasStatement(parent, L0X.Activates) && graph.isInstanceOf(root, SIMU.Model)) {
+ new ActivateModel(parent, root).perform(graph);
+ }
}
public static Collection<Resource> importTo(IProgressMonitor monitor, Session session, MigrationState state, final Resource parent, final IImportAdvisor advisor) throws DatabaseException, TransferableGraphException {
final Resource resource = getResource(monitor, session, state);
- final ArrayList<Resource> result = new ArrayList<Resource>();
+ final ArrayList<Resource> result = new ArrayList<>();
if(resource != null) {
session.syncRequest(new WriteRequest() {
if(version != null) {
VersionMap map = graph.syncRequest(new VersionMapRequest(parent));
if(map.contains(baseName, version)) {
- String newName = graph.syncRequest(new FreshEscapedName(parent, Layer0.getInstance(graph).ConsistsOf, baseName));
+ String newName = graph.syncRequest(new FreshEscapedName(parent, L0.ConsistsOf, baseName));
graph.claimLiteral(root, L0.HasName, newName + "@1", Bindings.STRING);
}
} else {
- String newName = graph.syncRequest(new FreshEscapedName(parent, Layer0.getInstance(graph).ConsistsOf, baseName));
+ String newName = graph.syncRequest(new FreshEscapedName(parent, L0.ConsistsOf, baseName));
if(!newName.equals(baseName)) {
graph.claimLiteral(root, L0.HasName, newName, Bindings.STRING);
}
graph.deny(root, L0.PartOf);
graph.claim(root, L0.PartOf, parent);
-
- // FIXME : Model activation must be done in "activations" virtual graph.
- // FIXME : This step should be optional, not all the products use active models.
- //activateIfNoActiveModel(graph, root, parent);
+
+ if (Boolean.TRUE.equals( state.getProperty(MigrationKeys.ACTIVATE_ROOT_IF_NONE_ACTIVE) )) {
+ activateIfNoActiveModel(graph, root, parent);
+ }
CommentMetadata cm = graph.getMetadata(CommentMetadata.class);
graph.addMetadata(cm.add("Imported " + graph.getURI(root) + ", resource " + root));
public Collection<MigrationStep> perform(ReadGraph graph) throws DatabaseException {
Layer0 L0 = Layer0.getInstance(graph);
- ArrayList<Pair<Double,MigrationStep>> steps = new ArrayList<Pair<Double,MigrationStep>>();
+ ArrayList<Pair<Double,MigrationStep>> steps = new ArrayList<>();
Instances query = graph.adapt(L0.Migration, Instances.class);
- Set<Resource> migrations = new HashSet<Resource>();
+ Set<Resource> migrations = new HashSet<>();
for(Resource ontology : Layer0Utils.listOntologies(graph)) {
migrations.addAll(Layer0Utils.sortByCluster(graph, query.find(graph, ontology)));
}