1 package org.simantics.modeling;
\r
3 import org.simantics.db.Resource;
\r
4 import org.simantics.db.WriteGraph;
\r
5 import org.simantics.db.common.CommentMetadata;
\r
6 import org.simantics.db.common.utils.NameUtils;
\r
7 import org.simantics.db.exception.DatabaseException;
\r
8 import org.simantics.db.layer0.adapter.impl.EntityNameModifier;
\r
9 import org.simantics.db.layer0.adapter.impl.EntityStringModifierFactory;
\r
10 import org.simantics.layer0.Layer0;
\r
12 public class Rename {
\r
14 public static String renameNode (WriteGraph graph, Resource node, String newName) throws DatabaseException {
\r
16 Layer0 L0 = Layer0.getInstance(graph);
\r
17 Resource previousName = graph.getPossibleObject(node, L0.HasName);
\r
18 String nodeName = NameUtils.getSafeName(graph, node);
\r
19 EntityStringModifierFactory factory = new EntityStringModifierFactory(node);
\r
20 EntityNameModifier modifier = (EntityNameModifier) factory.createModifier(graph, L0.HasName, previousName);
\r
22 String error = modifier.isValid(newName);
\r
23 if (error != null) {
\r
27 modifier.modify(graph, newName);
\r
29 CommentMetadata cm = graph.getMetadata(CommentMetadata.class);
\r
30 graph.addMetadata(cm.add("Renamed node " + nodeName + ", resource " + node + ", to " + newName));
\r
32 return "Succesfully renamed "+ nodeName + " to " + newName;
\r