/**
* This work is licensed under the Creative Commons Attribution-NonCommercial-
* NoDerivs 3.0 Unported License. To view a copy of this license, visit
* http://creativecommons.org/licenses/by-nc-nd/3.0/ or send a letter to
* Creative Commons, 444 Castro Street, Suite 900, Mountain View, California,
* 94041, USA.
*
* Use of this work is permitted only in accordance with license rights granted.
* Materials provided "AS IS"; no representations or warranties provided.
*
* Copyright � 2012 Marcus Parkkinen, Aki K�kel�, Fredrik �hs.
**/
package edu.chalmers.dat255.audiobookplayer.util;
import java.io.IOException;
import android.content.Context;
import edu.chalmers.dat255.audiobookplayer.model.Bookshelf;
/**
* Loads and saves bookshelf data.
*
* @author Aki K�kel�, Marcus Parkkinen
* @version 0.1
*
*/
public final class BookshelfHandler {
private BookshelfHandler() {
} // to defeat instantiation
/**
* Attempt to load the model object tree from a file. This method
* instantiates the member variable with either a new Bookshelf or a
* existing one from a file.
*
* A reference to the bookshelf is also returned to the calling method.
*
* @param Context
* context
* @param String
* username
*/
public static Bookshelf loadBookshelf(Context c, String username) {
try {
// read
Object obj = JsonParser.fromJSON(FileParser
.readFromInternalStorage(username + ".bookmark", c),
Bookshelf.class);
if (obj instanceof Bookshelf) {
// if we found a bookshelf type object, return it
return ((Bookshelf) obj);
}
} catch (Exception e) {
// If anything goes wrong, just continue..
}
// return a new bookshelf instance if nothing was found
return (new Bookshelf());
}
/**
* Save a JSON representation of the model object tree to file.
*
* @param bs
*
* @param Context
* context
* @param String
* username
*/
public static boolean saveBookshelf(Context c, String username, Bookshelf bs) {
try {
// write
FileParser.writeToInternalStorage(username + ".bookmark", c,
JsonParser.toJSON(bs));
} catch (IOException e) {
// the saving failed; show it by returning false
return false;
}
// saving was successful
return true;
}
}