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