/// <summary>Used to rebuild an index</summary>
 public virtual void RebuildIndex(string className, string indexName, bool verbose
                                  )
 {
     if (verbose)
     {
         NeoDatis.Tool.DLogger.Info("Rebuilding index " + indexName + " on class " + className
                                    );
     }
     NeoDatis.Odb.Core.Layers.Layer2.Meta.ClassInfo classInfo = GetMetaModel().GetClassInfo
                                                                    (className, true);
     if (!classInfo.HasIndex(indexName))
     {
         throw new NeoDatis.Odb.ODBRuntimeException(NeoDatis.Odb.Core.NeoDatisError.IndexDoesNotExist
                                                    .AddParameter(indexName).AddParameter(className));
     }
     NeoDatis.Odb.Core.Layers.Layer2.Meta.ClassInfoIndex cii = classInfo.GetIndexWithName
                                                                   (indexName);
     DeleteIndex(className, indexName, verbose);
     AddIndexOn(className, indexName, classInfo.GetAttributeNames(cii.GetAttributeIds(
                                                                      )), verbose, !cii.IsUnique());
 }
 public virtual void DeleteIndex(string className, string indexName, bool verbose)
 {
     NeoDatis.Odb.Core.Layers.Layer2.Meta.ClassInfo classInfo = GetMetaModel().GetClassInfo
                                                                    (className, true);
     if (!classInfo.HasIndex(indexName))
     {
         throw new NeoDatis.Odb.ODBRuntimeException(NeoDatis.Odb.Core.NeoDatisError.IndexDoesNotExist
                                                    .AddParameter(indexName).AddParameter(className));
     }
     NeoDatis.Odb.Core.Layers.Layer2.Meta.ClassInfoIndex cii = classInfo.GetIndexWithName
                                                                   (indexName);
     if (verbose)
     {
         NeoDatis.Tool.DLogger.Info("Deleting index " + indexName + " on class " + className
                                    );
     }
     Delete(cii);
     classInfo.RemoveIndex(cii);
     if (verbose)
     {
         NeoDatis.Tool.DLogger.Info("Index " + indexName + " deleted");
     }
 }