package com.iwedia.service.storage;
import java.util.ArrayList;
import com.iwedia.comm.content.Content;
public class StorageManager implements IStorageManager, IController {
private ControllerManager controllerManager;
private A_DbAdapter dbAdapter;
/**
* Default constructor. Initiates opening of database.
*/
public StorageManager() {
dbAdapter = new A_DbAdapter();
dbAdapter.open();
controllerManager = new ControllerManager(dbAdapter);
}
/**
* Close database.
*/
public void closeDatabase() {
dbAdapter.close();
}
/**
* Sets active controller, e.g. (RecentlyListController,
* FavoriteListController, etc.).
*/
@Override
public void setActiveController(int controller) {
controllerManager.setActiveController(controller);
}
/**
* Adds content to database table.
*
* @param name
* - Database table name.
* @param content
* - Content to be added.
* @return the row ID of the newly inserted row, or -1 if an error occurred.
*/
@Override
public long addContentToList(String name, Content content) {
return controllerManager.getActiveController().addContentToList(name,
content);
}
@Override
public void removeContentFromList(String name, Content content) {
controllerManager.getActiveController().removeContentFromList(name,
content);
}
@Override
public ArrayList<Content> getElementsInListByFilter(String name,
int filterType) {
return controllerManager.getActiveController()
.getElementsInListByFilter(name, filterType);
}
@Override
public ArrayList<Content> getElementsInList(String name) {
return controllerManager.getActiveController().getElementsInList(name);
}
/**
* Deletes IWEDIA database.
*/
@Override
public void deleteDatabase() {
dbAdapter.deleteDatabase();
}
public A_DbAdapter getDbAdapter() {
return dbAdapter;
}
}