-import android.os.RemoteException;
-import android.util.Log;
-
-public class OCFile {
-  private static String TAG = "OCFile";
-
-  private long id_;
-  private long parent_id_;
-  private long length_;
-  private long creation_timestamp_;
-  private long modified_timestamp_;
-  private String path_;
-  private String storage_path_;
-  private String mimetype_;
-
-  private ContentResolver cr_;
-  private ContentProviderClient cp_;
-  private Account account_;
-
-  public static OCFile createNewFile(ContentProviderClient cr, Account account,
-      String path, long length, long creation_timestamp,
-      long modified_timestamp, String mimetype, long parent_id) {
-    OCFile new_file = new OCFile(cr, account);
-
-    try {
-      Cursor c = new_file.cp_.query(ProviderTableMeta.CONTENT_URI_FILE, null,
-          ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND "
-              + ProviderTableMeta.FILE_PATH + "=?", new String[]{new_file.account_.name,
-              path}, null);
-      if (c.moveToFirst())
-        new_file.setFileData(c);
-      c.close();
-    } catch (RemoteException e) {
-      Log.e(TAG, e.getMessage());
-    }
-
-    new_file.path_ = path;
-    new_file.length_ = length;
-    new_file.creation_timestamp_ = creation_timestamp;
-    new_file.modified_timestamp_ = modified_timestamp;
-    new_file.mimetype_ = mimetype;
-    new_file.parent_id_ = parent_id;
-
-    return new_file;
-  }
-
-  public static OCFile createNewFile(ContentResolver contentResolver, Account a,
-      String path, int length, int creation_timestamp, int modified_timestamp,
-      String mimetype, long parent_id) {
-    OCFile new_file = new OCFile(contentResolver, a);
-    Cursor c = new_file.cr_.query(ProviderTableMeta.CONTENT_URI_FILE, null,
-          ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND "
-              + ProviderTableMeta.FILE_PATH + "=?", new String[]{new_file.account_.name,
-              path}, null);
-      if (c.moveToFirst())
-        new_file.setFileData(c);
-      c.close();
-
-    new_file.path_ = path;
-    new_file.length_ = length;
-    new_file.creation_timestamp_ = creation_timestamp;
-    new_file.modified_timestamp_ = modified_timestamp;
-    new_file.mimetype_ = mimetype;
-    new_file.parent_id_ = parent_id;
-
-    return new_file;
-  }
-  
-  public OCFile(ContentResolver cr, Account account, long id) {
-    cr_ = cr;
-    account_ = account;
-    Cursor c = cr_.query(ProviderTableMeta.CONTENT_URI_FILE, null,
-        ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND "
-            + ProviderTableMeta._ID + "=?",
-        new String[]{account_.name, String.valueOf(id)}, null);
-    if (c.moveToFirst())
-      setFileData(c);
-  }
-
-  public OCFile(ContentResolver cr, Account account, String path) {
-    cr_ = cr;
-    account_ = account;
-    
-    Cursor c = cr_.query(ProviderTableMeta.CONTENT_URI_FILE, null,
-        ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND "
-            + ProviderTableMeta.FILE_PATH + "=?", new String[]{account_.name,
-            path}, null);
-    if (c.moveToFirst()) {
-      setFileData(c);
-      if (path_ != null)
-        path_ = path;
-    }
-  }
-
-  public long getFileId() {
-    return id_;
-  }
-
-  public String getPath() {
-    return path_;
-  }
-
-  public boolean fileExtist() {
-    return id_ != -1;
-  }
-
-  public boolean isDirectory() {
-    return mimetype_ != null && mimetype_.equals("DIR");
-  }
-
-  public boolean isDownloaded() {
-    return storage_path_ != null;
-  }
-
-  public String getStoragePath() {
-    return storage_path_;
-  }
-  public void setStoragePath(String storage_path) {
-    storage_path_ = storage_path;
-  }
-
-  public long getCreationTimestamp() {
-    return creation_timestamp_;
-  }
-  public void setCreationTimestamp(long creation_timestamp) {
-    creation_timestamp_ = creation_timestamp;
-  }
-
-  public long getModificationTimestamp() {
-    return modified_timestamp_;
-  }
-  public void setModificationTimestamp(long modification_timestamp) {
-    modified_timestamp_ = modification_timestamp;
-  }
-
-  public String getFileName() {
-    if (path_ != null) {
-      File f = new File(path_);
-      return f.getName().equals("") ? "/" : f.getName();
-    }
-    return null;
-  }
-
-  public String getMimetype() {
-    return mimetype_;
-  }
-  
-  public void save() {
-    ContentValues cv = new ContentValues();
-    cv.put(ProviderTableMeta.FILE_MODIFIED, modified_timestamp_);
-    cv.put(ProviderTableMeta.FILE_CREATION, creation_timestamp_);
-    cv.put(ProviderTableMeta.FILE_CONTENT_LENGTH, length_);
-    cv.put(ProviderTableMeta.FILE_CONTENT_TYPE, mimetype_);
-    cv.put(ProviderTableMeta.FILE_NAME, getFileName());
-    if (parent_id_ != 0)
-      cv.put(ProviderTableMeta.FILE_PARENT, parent_id_);
-    cv.put(ProviderTableMeta.FILE_PATH, path_);
-    cv.put(ProviderTableMeta.FILE_STORAGE_PATH, storage_path_);
-    cv.put(ProviderTableMeta.FILE_ACCOUNT_OWNER, account_.name);
-
-    if (fileExtist()) {
-      if (cp_ != null) {
-        try {
-          cp_.update(ProviderTableMeta.CONTENT_URI, cv, ProviderTableMeta._ID
-              + "=?", new String[]{String.valueOf(id_)});
-        } catch (RemoteException e) {
-          Log.e(TAG, e.getMessage());
-          return;