anchor.diff:    @override
     bool get hasStorage => true;
   }
  -
  -//final FsDatabaseFactory ioDatabaseFactory = new FsDatabaseFactory();
  -///
  -/// Open a new of existing database
  -///
  -/// [path] is the location of the database
  -/// [version] is the version expected, if not null and if the existing version is different, onVersionChanged is called
  -/// if [failIfNotFound] is true, open will return a null database if not found
  -/// if [empty] is true, the existing database
  -//Future<Database> openIoDatabase(String path, {int version, OnVersionChangedFunction onVersionChanged, DatabaseMode mode: DatabaseMode.CREATE}) {
  -//  return ioDatabaseFactory.openDatabase(path, version: version, onVersionChanged: onVersionChanged, mode: mode);
  -//}
  
positive.code:   String get path => file.path;
  
    @override
    Future delete() {
      return file.exists().then((exists) {
        return file.delete(recursive: true).catchError((_) {});
      });
    }
  
    @override
  
negative.code:   }
  
    @override
    Future findOrCreate() async {
      if (!(await fs.isFile(path))) {
        bool done;
        // try to recover from tmp file
        if (isTmp == true) {
          done = false;
        } else {
          done = await tmpRecover();
        }
  
        if (!done) {
          try {
            File _file = await file.create(recursive: true);
          } catch (e) {
            if (!(await fs.isFile(path))) {
              rethrow;
            }
          }
        } else {
          // ok found fine
        }
      }
    }
  
    String get tmpPath => join(dirname(path), "~${basename(path)}");
  