internal void Rename(Db4objects.Db4o.Rename a_rename) { Collection4 renameCollection = Rename(); if (renameCollection == null) { renameCollection = new Collection4(); _config.Put(RenameKey, renameCollection); } renameCollection.Add(a_rename); }
private bool AlreadyApplied(Rename ren) { return QueryByExample(SystemTransaction(), ren).Count != 0; }
private IObjectSet QueryInverseRenames(Rename ren) { return QueryByExample(SystemTransaction(), Renames.ForInverseQBE(ren)); }
private void DeleteInverseRenames(Rename rename) { // delete all that rename from the new name // to allow future backswitching IObjectSet inverseRenames = QueryInverseRenames(rename); while (inverseRenames.HasNext()) { Delete(SystemTransaction(), inverseRenames.Next()); } }
private void CommitRenameFor(Rename rename, ClassMetadata classMetadata) { SetDirtyInSystemTransaction(classMetadata); LogMsg(8, rename.rFrom + " to " + rename.rTo); DeleteInverseRenames(rename); // store the rename, so we only do it once Store(SystemTransaction(), rename); }
private bool ApplyFieldRename(Rename ren) { ClassMetadata parentClass = _classCollection.GetClassMetadata(ren.rClass); if (parentClass == null) { return false; } if (!parentClass.RenameField(ren.rFrom, ren.rTo)) { return false; } CommitRenameFor(ren, parentClass); return true; }
private bool ApplyClassRename(Rename ren) { ClassMetadata classToRename = _classCollection.GetClassMetadata(ren.rFrom); if (classToRename == null) { return false; } ClassMetadata existing = _classCollection.GetClassMetadata(ren.rTo); if (existing != null) { LogMsg(9, "class " + ren.rTo); return false; } classToRename.SetName(ren.rTo); CommitRenameFor(ren, classToRename); return true; }
private bool ApplyRename(Rename ren) { if (ren.IsField()) { return ApplyFieldRename(ren); } return ApplyClassRename(ren); }
public static Rename ForInverseQBE(Rename ren) { return new Rename(ren.rClass, null, ren.rFrom); }