/**
* @file BookMarkInfo.java
*
* @revision: none
*
* @version 0.0.01
* @author: Zenki (zhajun), zenki2001cn@163.com
* @date: 2011-7-1 上午10:40:01
*/
package com.easyview.ebook.reader.engine.model;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import com.easyview.ebook.reader.engine.util.Logger;
/**
* 書簽信息相關類.
*/
public class BookMarkInfo implements IBookMarkCursor {
/** The Constant TAG. */
static private final String TAG = "BookMarkInfo";
/** The m bookmark to go. */
private Bookmark mBookmarkToGo;
/** The m bookmark list. */
private LinkedList<Bookmark> mBookmarkList;
/**
* Instantiates a new book mark info.
*/
protected BookMarkInfo() {
mBookmarkList = new LinkedList<Bookmark>();
}
/**
* 書簽數據類.
*/
static public class Bookmark {
/** The bookId. */
public int bookId;
/** The location. */
public String location;
/** The page num. */
public int pageNum;
/** The summary. */
public String summary;
/** The make time. */
public long createTime;
/**
* Instantiates a new bookmark.
*/
protected Bookmark() {
bookId = -1;
location = Book.VALUE_NULL;
pageNum = -1;
summary = Book.VALUE_NULL;
createTime = -1;
}
/**
* 設置書籍ID.
*
* @param id
* 書籍ID
*/
public void setBookId(int id) {
bookId = id;
}
/**
* 獲取書籍ID.
*
* @return 書籍ID
*/
public int getBookId() {
return bookId;
}
/**
* 設置書簽位置.
*
* @param lc
* 書簽位置
*/
public void setLocation(String lc) {
location = lc;
}
/**
* 獲取書簽位置.
*
* @return 書簽位置
*/
public String getLocation() {
return location;
}
/**
* 設置書簽頁碼.
*
* @param num
* 書簽頁碼
*/
public void setPageNum(int num) {
pageNum = num;
}
/**
* 獲取書簽頁碼.
*
* @return 書簽頁碼.
*/
public int getPageNum() {
return pageNum;
}
/**
* 設置書簽頁的摘要信息.
*
* @param sumy
* 當前書簽頁的摘要信息.
*/
public void setSummary(String sumy) {
summary = sumy;
}
/**
* 獲取當前書簽的摘要信息.
*
* @return 當前書簽頁的摘要信息.
*/
public String getSummary() {
return summary;
}
/**
* 設置書簽的時間戳.
*
* @param time
* 時間戳,long類型
*/
public void setTime(long time) {
createTime = time;
}
/**
* 獲取書簽的時間戳.
*
* @return 書簽的時間戳.
*/
public long getTime() {
return createTime;
}
}
/*
* (non-Javadoc)
*
* @see
* com.easyview.ebook.reader.engine.model.IBookMarkCursor#addBookmark(com
* .easyview.ebook.reader.engine.model.BookMarkInfo.Bookmark)
*/
@Override
public boolean addBookmark(Bookmark bookmark) {
if ((mBookmarkList != null) && (bookmark != null)
&& (bookmark.getLocation() != null)
&& (!bookmark.getLocation().equals(Book.VALUE_NULL))) {
Iterator<Bookmark> it = mBookmarkList.iterator();
while (it.hasNext()) {
if (it.next().getLocation().equals(bookmark.getLocation())) {
Logger.eLog(TAG, "addBookmark has duplicate ");
return false;
}
}
mBookmarkList.add(bookmark);
} else {
Logger.eLog(TAG, "addBookmark null ");
return false;
}
return true;
}
/*
* (non-Javadoc)
*
* @see
* com.easyview.ebook.reader.engine.model.IBookMarkCursor#delBookmark(com
* .easyview.ebook.reader.engine.model.BookMarkInfo.Bookmark)
*/
@Override
public boolean delBookmark(Bookmark bookmark) {
Bookmark bmk;
if ((mBookmarkList != null) && (bookmark != null)) {
Iterator<Bookmark> it = mBookmarkList.iterator();
while (it.hasNext()) {
bmk = it.next();
if ((bmk.getBookId() == bookmark.getBookId())
&& bmk.getLocation().equals(bookmark.getLocation())) {
mBookmarkList.remove(bookmark);
return true;
}
}
}
return false;
}
/*
* (non-Javadoc)
*
* @see
* com.easyview.ebook.reader.engine.model.IBookMarkCursor#getBookmarkList()
*/
@Override
public List<Bookmark> getBookmarkList() {
return mBookmarkList;
}
/*
* (non-Javadoc)
*
* @see
* com.easyview.ebook.reader.engine.model.IBookMarkCursor#getBookmarkTogo()
*/
@Override
public Bookmark getBookmarkTogo() {
return mBookmarkToGo;
}
/*
* (non-Javadoc)
*
* @see
* com.easyview.ebook.reader.engine.model.IBookMarkCursor#setBookmarkTogo
* (com.easyview.ebook.reader.engine.model.BookMarkInfo.Bookmark)
*/
@Override
public void setBookmarkTogo(Bookmark bookmark) {
mBookmarkToGo = bookmark;
}
/*
* (non-Javadoc)
*
* @see
* com.easyview.ebook.reader.engine.model.IBookMarkCursor#cleanBookmarks()
*/
@Override
public boolean cleanBookmarks() {
if (mBookmarkList != null) {
mBookmarkList.clear();
if (!mBookmarkList.isEmpty()) {
return false;
}
}
mBookmarkToGo = null;
return true;
}
}