package org.simantics.modeling; import org.simantics.db.Resource; import org.simantics.db.WriteGraph; import org.simantics.db.common.CommentMetadata; import org.simantics.db.common.utils.NameUtils; import org.simantics.db.exception.DatabaseException; import org.simantics.db.layer0.adapter.impl.EntityNameModifier; import org.simantics.db.layer0.adapter.impl.EntityStringModifierFactory; import org.simantics.layer0.Layer0; public class Rename { public static String renameNode (WriteGraph graph, Resource node, String newName) throws DatabaseException { Layer0 L0 = Layer0.getInstance(graph); Resource previousName = graph.getPossibleObject(node, L0.HasName); String nodeName = NameUtils.getSafeName(graph, node); EntityStringModifierFactory factory = new EntityStringModifierFactory(node); EntityNameModifier modifier = (EntityNameModifier) factory.createModifier(graph, L0.HasName, previousName); String error = modifier.isValid(newName); if (error != null) { return error; } modifier.modify(graph, newName); CommentMetadata cm = graph.getMetadata(CommentMetadata.class); graph.addMetadata(cm.add("Renamed node " + nodeName + ", resource " + node + ", to " + newName)); return "Succesfully renamed "+ nodeName + " to " + newName; } }