/*******************************************************************************
*
* Copyright (c) 2013 blinkbox Entertainment Limited. All rights reserved.
*
*
*******************************************************************************/
package com.blinkbox.java.book.model;
import com.blinkbox.java.book.json.BBBEPubBookInfo;
import java.util.List;
/**
* This class contains a Blinkbox Book ePub book object created from a zip file.
*/
public abstract class BBBEPubBook {
/**
* Returns the books mimetype as a string
*
* @return
*/
public abstract String getMimeType();
/**
* Returns the books ePub version
*
* @return
*/
public abstract String getVersion();
/**
* Returns a list of the books table of contents
*
* @return
*/
public abstract List<BBBEPubTOCReference> getTOCList();
/**
* Returns all the {@link BBBEPubTOCReference} items below a given tree depth
*
* @param treeDepth
* @return
*/
public abstract List<BBBEPubTOCReference> getTOCList(int treeDepth);
/**
* Currently not implemented - Returns the root element of the books navigation tree
*
* @return
*/
public abstract BBBEPubNavigationNode getNavigationTree();
/**
* Returns the books title from the {@link BBBEPubMetaData} object
*
* @return
*/
public abstract String getTitle();
/**
* Returns the books author from the {@link BBBEPubMetaData} object
*
* @return
*/
public abstract String getAuthor();
/**
* Returns the books {@link BBBEPubMetaData} object
*
* @return
*/
public abstract BBBEPubMetaData getMetaData();
/**
* Returns the resource at a given url
*
* @return the {@link BBBEPubContent} at the given url
*/
public abstract BBBEPubContent getContentAtUrl(String url);
/**
* Returns the books base url
*
* @return base url
*/
public abstract String getBaseUrl();
/**
* Returns the books cover url
*
* @return the cover url
*/
public abstract String getCoverUrl();
/**
* Returns the books info object
*
* @return the {@link BBBEPubBookInfo} object from the book, or null
*/
public abstract BBBEPubBookInfo getBookInfo();
}