-package org.simantics.modeling.utils;\r
-\r
-import java.util.Collection;\r
-\r
-import org.simantics.datatypes.literal.GUID;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.WriteGraph;\r
-import org.simantics.db.common.CommentMetadata;\r
-import org.simantics.db.common.request.WriteRequest;\r
-import org.simantics.db.common.utils.CommonDBUtils;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.layer0.util.Layer0Utils;\r
-import org.simantics.layer0.Layer0;\r
-import org.simantics.modeling.ModelingResources;\r
-import org.simantics.modeling.adapters.ChangeHistoryUpdated;\r
-import org.simantics.modeling.adapters.ChangeInformation;\r
-\r
-/**\r
- * @author Antti Villberg\r
- * @author Tuukka Lehtonen\r
- */\r
-public class OntologicalRequirementEnforceRequest extends WriteRequest {\r
-\r
- private Collection<Resource> creates;\r
- private Collection<Resource> modis;\r
- private Collection<Resource> ids;\r
- private String author;\r
- private long time;\r
-\r
- public OntologicalRequirementEnforceRequest(Collection<Resource> creates, Collection<Resource> modis, Collection<Resource> ids) {\r
- this(creates,\r
- modis,\r
- ids,\r
- System.getProperty("user.name", ""),\r
- System.currentTimeMillis());\r
- }\r
-\r
- public OntologicalRequirementEnforceRequest(Collection<Resource> creates, Collection<Resource> modis, Collection<Resource> ids, String author, long time) {\r
- this.creates = creates;\r
- this.modis = modis;\r
- this.ids = ids;\r
- this.author = author;\r
- this.time = time;\r
- }\r
-\r
- @Override\r
- public void perform(WriteGraph graph) throws DatabaseException {\r
- update(graph, creates, modis, ids, true, author, time, true);\r
- }\r
-\r
- public static void update(\r
- WriteGraph graph,\r
- Collection<Resource> creates,\r
- Collection<Resource> modis,\r
- Collection<Resource> ids,\r
- boolean addComment,\r
- boolean disableDependencyIndexing) throws DatabaseException\r
- {\r
- update(graph,\r
- creates,\r
- modis,\r
- ids,\r
- addComment,\r
- System.getProperty("user.name", ""),\r
- System.currentTimeMillis(),\r
- disableDependencyIndexing);\r
-\r
- }\r
-\r
- public static void update(\r
- WriteGraph graph,\r
- Collection<Resource> creates,\r
- Collection<Resource> modis,\r
- Collection<Resource> ids,\r
- boolean addComment,\r
- String author,\r
- long time,\r
- boolean disableDependencyIndexing) throws DatabaseException\r
- {\r
- if (disableDependencyIndexing)\r
- Layer0Utils.setDependenciesIndexingDisabled(graph, true);\r
- \r
- ModelingResources MOD = ModelingResources.getInstance(graph);\r
- Layer0 L0 = Layer0.getInstance(graph);\r
-\r
- if (!creates.isEmpty()) {\r
- ChangeInformation info = new ChangeInformation();\r
- info.createdAt = time;\r
- info.createdBy = author;\r
- info.modifiedAt = time;\r
- info.modifiedBy = author;\r
-\r
- for (Resource c : creates) {\r
- CommonDBUtils.selectClusterSet(graph, c);\r
- graph.claimLiteral(c, MOD.changeInformation, MOD.changeInformation_Inverse, MOD.ChangeInformation, info, ChangeInformation.BINDING);\r
- }\r
- }\r
-\r
- for (Resource m : modis) {\r
- ChangeInformation info = graph.getPossibleRelatedValue(m, MOD.changeInformation, ChangeInformation.BINDING);\r
- if (info == null) {\r
- // Should not be possible but lets handle this anyway\r
- info = new ChangeInformation();\r
- info.createdAt = time;\r
- info.createdBy = author;\r
- }\r
- info.modifiedAt = time;\r
- info.modifiedBy = author;\r
- CommonDBUtils.selectClusterSet(graph, m);\r
- graph.claimLiteral(m, MOD.changeInformation, MOD.changeInformation_Inverse, MOD.ChangeInformation, info, ChangeInformation.BINDING);\r
- }\r
- \r
- for (Resource r : ids) {\r
- if (!graph.hasStatement(r, L0.identifier)) {\r
- CommonDBUtils.selectClusterSet(graph, r);\r
- graph.addLiteral(r, L0.identifier, L0.identifier_Inverse, L0.GUID, GUID.random(), GUID.BINDING);\r
- }\r
- }\r
-\r
- graph.addMetadata( graph.getMetadata(CommentMetadata.class).add("Updated change information") );\r
- \r
- graph.addMetadata( graph.getMetadata(ChangeHistoryUpdated.class) );\r
- \r
- }\r
-\r
+package org.simantics.modeling.utils;
+
+import java.util.Collection;
+
+import org.simantics.db.Resource;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.common.CommentMetadata;
+import org.simantics.db.common.request.WriteRequest;
+import org.simantics.db.common.utils.CommonDBUtils;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.util.Layer0Utils;
+import org.simantics.layer0.Layer0;
+import org.simantics.modeling.ModelingResources;
+import org.simantics.modeling.adapters.ChangeHistoryUpdated;
+import org.simantics.modeling.adapters.ChangeInformation;
+
+/**
+ * @author Antti Villberg
+ * @author Tuukka Lehtonen
+ */
+public class OntologicalRequirementEnforceRequest extends WriteRequest {
+
+ private Collection<Resource> creates;
+ private Collection<Resource> modis;
+ private Collection<Resource> ids;
+ private String author;
+ private long time;
+
+ public OntologicalRequirementEnforceRequest(Collection<Resource> creates, Collection<Resource> modis, Collection<Resource> ids) {
+ this(creates,
+ modis,
+ ids,
+ System.getProperty("user.name", ""),
+ System.currentTimeMillis());
+ }
+
+ public OntologicalRequirementEnforceRequest(Collection<Resource> creates, Collection<Resource> modis, Collection<Resource> ids, String author, long time) {
+ this.creates = creates;
+ this.modis = modis;
+ this.ids = ids;
+ this.author = author;
+ this.time = time;
+ }
+
+ @Override
+ public void perform(WriteGraph graph) throws DatabaseException {
+ update(graph, creates, modis, ids, true, author, time, true);
+ }
+
+ public static void update(
+ WriteGraph graph,
+ Collection<Resource> creates,
+ Collection<Resource> modis,
+ Collection<Resource> ids,
+ boolean addComment,
+ boolean disableDependencyIndexing) throws DatabaseException
+ {
+ update(graph,
+ creates,
+ modis,
+ ids,
+ addComment,
+ System.getProperty("user.name", ""),
+ System.currentTimeMillis(),
+ disableDependencyIndexing);
+
+ }
+
+ public static void update(
+ WriteGraph graph,
+ Collection<Resource> creates,
+ Collection<Resource> modis,
+ Collection<Resource> ids,
+ boolean addComment,
+ String author,
+ long time,
+ boolean disableDependencyIndexing) throws DatabaseException
+ {
+ if (disableDependencyIndexing)
+ Layer0Utils.setDependenciesIndexingDisabled(graph, true);
+
+ ModelingResources MOD = ModelingResources.getInstance(graph);
+ Layer0 L0 = Layer0.getInstance(graph);
+
+ if (!creates.isEmpty()) {
+ ChangeInformation info = new ChangeInformation();
+ info.createdAt = time;
+ info.createdBy = author;
+ info.modifiedAt = time;
+ info.modifiedBy = author;
+
+ for (Resource c : creates) {
+ CommonDBUtils.selectClusterSet(graph, c);
+ graph.claimLiteral(c, MOD.changeInformation, MOD.changeInformation_Inverse, MOD.ChangeInformation, info, ChangeInformation.BINDING);
+ }
+ }
+
+ for (Resource m : modis) {
+ ChangeInformation info = graph.getPossibleRelatedValue(m, MOD.changeInformation, ChangeInformation.BINDING);
+ if (info == null) {
+ // Should not be possible but lets handle this anyway
+ info = new ChangeInformation();
+ info.createdAt = time;
+ info.createdBy = author;
+ }
+ info.modifiedAt = time;
+ info.modifiedBy = author;
+ CommonDBUtils.selectClusterSet(graph, m);
+ graph.claimLiteral(m, MOD.changeInformation, MOD.changeInformation_Inverse, MOD.ChangeInformation, info, ChangeInformation.BINDING);
+ }
+
+ for (Resource r : ids) {
+ if (!graph.hasStatement(r, L0.identifier)) {
+ CommonDBUtils.selectClusterSet(graph, r);
+ Layer0Utils.claimNewIdentifier(graph, r, true);
+ }
+ }
+
+ graph.addMetadata( graph.getMetadata(CommentMetadata.class).add("Updated change information") );
+
+ graph.addMetadata( graph.getMetadata(ChangeHistoryUpdated.class) );
+
+ }
+
}
\ No newline at end of file