public boolean moveToGroup(String group) { String currentParent = Group.substractParentName(getName()); if (group.equals(currentParent)) return false; // String oldName = getName(); String newName; if (group.equals(nullString)) newName = Group.substractObjectName(getName()); else newName = group + Constants.GROUP_SEPARATOR + Group.substractObjectName(getName()); // object with new name already exists, add suffix // !!! Object obj; boolean renameNeeded = false; while ((obj = Group.getRoot().findObject(newName, true)) != null) { if (obj == this) // it's me :) already moved, fix data { name = newName; return true; } else { renameNeeded = true; newName = StringUtils.incrementName(newName, Constants.MOVE_SUFFIX); } } if (renameNeeded) return rename(newName); getParent().removeObject(Group.substractObjectName(getName())); setParent(null); Group.getRoot().addSubObject(newName, this, true); name = newName; unconditionalValidation(); return true; }
public boolean rename(String newName) { String newObjName = Group.substractObjectName(newName); String oldObjName = Group.substractObjectName(getName()); if (!oldObjName.equals(newObjName)) { getParent().removeObject(oldObjName); String fullName = StringUtils.replaceEnding(getName(), oldObjName, newObjName); name = fullName; getParent().addSubObject(newObjName, this); } // move if needed moveToGroup(Group.substractParentName(newName)); return true; }