public class BookClass
extends java.lang.Object
对应南京大学馆藏数字化图书平台 中的图书。
同时分类名和分类编号满足中图法分类。是树结构。具有查询子分类和查询分类下书籍列表,批量下载分类书籍等功能。
如果你没有足够信息构造实例,可以通过RootBookClass
查询所有分类来获取实例。
或者BookSearch
中的一些方法获取实例。
构造器和说明 |
---|
BookClass(java.lang.String id)
创建一个新初始化的
BookClass 对象,
使之中图法分类标识是id |
BookClass(java.lang.String id,
java.lang.String name,
BookClass parent)
创建并初始化一个书本分类。
|
限定符和类型 | 方法和说明 |
---|---|
BookClass |
addChild(BookClass bookClass)
添加一个子分类
|
void |
downloadAllBooks(java.lang.String pathname,
int threadNumber,
java.lang.String errorLogPath)
下载分类下所有图书。
|
void |
downloadWithCataDir()
下载分类下所有图书,会迭代测创建分类文件夹
下载存储路径为当前路径,线程数为5,错误日志将保存在当前路径,文件名为
BookDownloader.ERROR_LOG_NAME
可以调用重载downloadWithCataDir(String, int, String) 设置参数 |
void |
downloadWithCataDir(java.lang.String pathname,
int threadNumber,
java.lang.String errorLogPath)
下载分类下所有图书,会迭代测创建分类文件夹
|
boolean |
equals(java.lang.Object obj)
判断两个
BookClass 是否是同一个分类。 |
java.util.Set<Book> |
getBooks()
获取分类对象所有终端分类下已存储的书籍
|
BookClass |
getChild(java.lang.String idOrName)
查询特定子分类。
|
int |
getChildCount()
获取子分类的数量
|
java.util.Map<java.lang.String,BookClass> |
getChildren()
获取所有子分类。
|
java.lang.String |
getCookie()
查看当对象所使用的cookie
|
java.lang.String |
getId() |
java.lang.String |
getName() |
BookClass |
getParent()
获取父分类
|
java.lang.String |
getPath()
获取分类所在的路径。
|
int |
hashCode()
返回
BookClass 的哈希值。 |
boolean |
isRoot()
用于判断
BookClass 对象是不是RootBookClass 的实例 |
boolean |
isTerminal() |
BookClass |
link(BookClass... childBookClasses)
对当前分类添加子分类
|
void |
loadAllChild()
迭代加载所有子分类。
|
void |
loadChild()
加载子分类。
|
java.util.Set<Book> |
queryAllBooks()
获得某分类下的所有图书
|
java.util.Set<Book> |
queryAllBooks(int threadNumber)
获得分类下的所有图书
|
java.util.Set<Book> |
queryBooks(int page)
从服务器获取该分类下图书列表的第
page 页。 |
java.util.Set<Book> |
queryBooks(java.lang.String html)
获取HTML文本中的书籍并根据其分类添加进当前的分类结构
|
int |
queryBooksSize()
从服务器查询当前分类下图书的数量。
|
void |
setCookie(java.lang.String cookie)
设置
cookie ,BookClass的子每一次子分类加载,
书籍查询等操作都需要cookie,设置的cookie将会对所有子分类使用,
以避免频繁获取cookie |
void |
setId(java.lang.String id) |
void |
setName(java.lang.String name) |
void |
setParent(BookClass parent) |
java.lang.String |
toString()
返回
BookClass 的可读字符串描述。 |
public BookClass(java.lang.String id, java.lang.String name, BookClass parent)
id
- 分类编号name
- 分类名称parent
- 父分类public BookClass(java.lang.String id)
BookClass
对象,
使之中图法分类标识是id
id
- 分类的中图法分类标识。
需要和南京大学馆藏数字化图书平台定义的格式一致public java.lang.String getCookie()
public void setCookie(java.lang.String cookie)
cookie
,BookClass的子每一次子分类加载,
书籍查询等操作都需要cookie,设置的cookie将会对所有子分类使用,
以避免频繁获取cookiecookie
- cookiepublic int getChildCount()
public BookClass getParent()
public java.util.Map<java.lang.String,BookClass> getChildren()
loadChild()
或者loadAllChild()
从服务器查询并加载public BookClass getChild(java.lang.String idOrName)
idOrName
- 子分类的名称或者代号。符合中图法分类。public java.lang.String getName()
public void setName(java.lang.String name)
public java.lang.String getId()
public void setId(java.lang.String id)
public void setParent(BookClass parent)
public boolean isTerminal()
public BookClass addChild(BookClass bookClass)
bookClass
- 子分类public void loadChild() throws java.io.IOException
children
如需递归加载子分类,调用loadAllChild()
java.io.IOException
- 从服务器查询子节点出错public void loadAllChild() throws java.io.IOException
java.io.IOException
- 从服务器查询时出错public void downloadWithCataDir(java.lang.String pathname, int threadNumber, java.lang.String errorLogPath) throws java.io.IOException
pathname
- 存储路径。将在该路径下创建多级分类目录并保存下载的图书threadNumber
- 线程数errorLogPath
- 错误日志路径java.io.IOException
- 连接失败的错误public void downloadWithCataDir() throws java.io.IOException
BookDownloader.ERROR_LOG_NAME
可以调用重载downloadWithCataDir(String, int, String)
设置参数java.io.IOException
- 连接失败的错误public java.util.Set<Book> queryBooks(int page) throws java.io.IOException
page
页。
图书列表的分页是服务器做的,每页最多10条图书。
页数的最大值可以根据queryBooksSize()
自行计算
page
- 图书列表的页码java.io.IOException
- 从服务器查询书本列表时出错public java.util.Set<Book> queryAllBooks() throws java.io.IOException
java.io.IOException
- 从服务器查询书本列表时出错public java.util.Set<Book> queryAllBooks(int threadNumber) throws java.io.IOException
threadNumber
- 线程数java.io.IOException
- 连接错误public void downloadAllBooks(java.lang.String pathname, int threadNumber, java.lang.String errorLogPath) throws java.io.IOException
pathname
目录下,每本书一个文件夹,以书名命名。如同名,则加作者名,如又同名,加书本编号pathname
- 存储路径。书本文件夹所在的上级路径threadNumber
- 线程数errorLogPath
- 错误日志路径java.io.IOException
- 连接失败的错误public java.util.Set<Book> queryBooks(java.lang.String html)
html
- 服务器特定页面返回的包含书本信息的HTML文本。
服务器多个不同页面返回的包含书本信息的HTML中书本信息相关节点的格式都相似。均可调用本函数public int queryBooksSize() throws java.io.IOException
java.io.IOException
- 查询失败public BookClass link(BookClass... childBookClasses)
childBookClasses
- 顺次路径关系子分类,后一个是前一个的子分类。第一个是当前分类的子分类public java.util.Set<Book> getBooks()
public boolean equals(java.lang.Object obj)
BookClass
是否是同一个分类。
仅根据代号即id
来判断equals
在类中 java.lang.Object
obj
- 任意对象public java.lang.String getPath()
String
,对二级分类到当前分类顺次所经路径分别调用toString()
,用"-"分割public boolean isRoot()
BookClass
对象是不是RootBookClass
的实例public int hashCode()
BookClass
的哈希值。
会直接使用用id
的哈希值hashCode
在类中 java.lang.Object
public java.lang.String toString()
BookClass
的可读字符串描述。toString
在类中 java.lang.Object