public abstract class AbstractFRPackage
extends java.lang.Object
implements java.io.Closeable
限定符和类型 | 字段和说明 |
---|---|
protected boolean |
modified |
protected java.lang.String |
originalPackagePath
包路径,可能为空
|
protected java.io.OutputStream |
output
包将要写出的输出流
|
protected PackageAccess |
packageAccess |
protected java.util.Map<java.lang.String,AbstractPackagePart> |
partMap
块容器
|
protected PartSummaryManager |
partSummaryManager
摘要管理类
|
限定符和类型 | 方法和说明 |
---|---|
void |
addSummary(PartSummary partSummary)
添加一个摘要
|
AbstractFRPackage |
clone() |
void |
close() |
static AbstractFRPackage |
create(java.io.File file)
使用指定文件创建一个包
|
static AbstractFRPackage |
create(java.io.OutputStream output)
使用指定输出流创建一个包
|
AbstractPackagePart |
createPart(PartSummary summary)
创建一个块,并添加到摘要中
|
AbstractPackagePart |
createPart(PartSummary summary,
boolean needRegister)
创建一个块,如果needRegister为
true ,
则注册到package中 |
protected abstract AbstractPackagePart |
createPartImpl(PartSummary partSummary)
创建一个package part,用于子类实现
|
java.util.Map<java.lang.String,AbstractPackagePart> |
getParts()
解析part
|
java.util.List<AbstractPackagePart> |
getPartsByName(java.util.regex.Pattern namePattern)
根据名称正则取回模块
|
AbstractPackagePart |
getPartsByName(java.lang.String partName)
根据名称取回模块
|
protected abstract java.util.Map<java.lang.String,AbstractPackagePart> |
getPartsImpl()
获取包中所有的parts。
|
static AbstractFRPackage |
open(java.io.File file,
PackageAccess access)
打开一个包
|
static AbstractFRPackage |
open(java.io.InputStream in)
打开一个包。
|
static AbstractFRPackage |
open(java.lang.String path)
使用读写访问级别打开一个文件
|
static AbstractFRPackage |
open(java.lang.String path,
PackageAccess access)
打开一个包
|
static AbstractFRPackage |
openOrCreate(java.io.File file)
文件存在就打开,不存在则创建
|
void |
register(AbstractPackagePart part)
注册包块到包中
|
void |
registerClone(AbstractPackagePart part)
注册clone包块到包中。
|
void |
registerPart(AbstractPackagePart packagePart)
手动注册模块到package中。
|
void |
releaseParts()
释放partmap
|
void |
removePart(AbstractPackagePart packagePart)
移除模块
|
void |
removeSummary(PartSummary partSummary)
移除一个摘要
|
void |
revert()
关闭但是不保存更改。
|
protected abstract void |
revertImpl()
关闭时不保存,丢弃所有改动
todo:[cptx]发现保存错误的时候会变成0KB,希望做个回滚,但是只能基于文件不能基于流
|
void |
save(java.io.File targetFile)
保存文档到指定文件
|
void |
save(java.io.OutputStream outputStream)
保存文档到指定输出流
|
protected abstract void |
saveImpl(java.io.OutputStream outputStream)
保存文档到指定流中
|
protected PackageAccess packageAccess
protected java.util.Map<java.lang.String,AbstractPackagePart> partMap
protected java.lang.String originalPackagePath
protected java.io.OutputStream output
protected PartSummaryManager partSummaryManager
protected boolean modified
public static AbstractFRPackage open(java.lang.String path) throws InvalidFormatException
path
- 包的路径InvalidFormatException
- If the specified file doesn't exist, and a parsing error
occur.public static AbstractFRPackage open(java.lang.String path, PackageAccess access) throws InvalidFormatException, InvalidOperationException
path
- 包路径access
- 包访问级别InvalidFormatException
- 指定文件不存在,或格式无法解析InvalidOperationException
- 该zip文件存在问题public static AbstractFRPackage open(java.io.File file, PackageAccess access) throws InvalidFormatException
file
- 包文件access
- 包访问级别InvalidFormatException
- 指定文件不存在,或格式无法解析public static AbstractFRPackage open(java.io.InputStream in) throws InvalidFormatException, java.io.IOException
open(String)
多一些的内存,
因为需要在内存中暂时持有整个zip包。注意读完内存及时释放。in
- 输入流InvalidFormatException
- 指定文件不存在,或格式无法解析java.io.IOException
public static AbstractFRPackage create(java.io.OutputStream output)
output
- 输出流public static AbstractFRPackage create(java.io.File file)
file
- 文件public static AbstractFRPackage openOrCreate(java.io.File file) throws InvalidFormatException
file
- 待操作的文件InvalidFormatException
- 无法打开或者创建public AbstractPackagePart createPart(PartSummary summary)
summary
- 摘要public AbstractPackagePart createPart(PartSummary summary, boolean needRegister)
true
,
则注册到package中summary
- 摘要needRegister
- 是否需要注册public void register(AbstractPackagePart part)
part
- 包块public void registerClone(AbstractPackagePart part)
part
- 包块public void removeSummary(PartSummary partSummary)
partSummary
- 摘要public void addSummary(PartSummary partSummary)
partSummary
- 摘要public void registerPart(AbstractPackagePart packagePart)
packagePart
- 待注册的模块public void removePart(AbstractPackagePart packagePart)
packagePart
- 待移除的模块public java.util.List<AbstractPackagePart> getPartsByName(java.util.regex.Pattern namePattern)
namePattern
- 名称正则public AbstractPackagePart getPartsByName(java.lang.String partName)
partName
- 名称public java.util.Map<java.lang.String,AbstractPackagePart> getParts() throws InvalidFormatException
InvalidFormatException
- 无效格式异常InvalidWorkBookException
- 模板不完整时抛出异常public void releaseParts()
public void close() throws java.io.IOException
close
在接口中 java.io.Closeable
close
在接口中 java.lang.AutoCloseable
java.io.IOException
public void revert()
public void save(java.io.File targetFile) throws java.io.IOException
targetFile
- 指定文件java.io.IOException
- 保存失败save(OutputStream)
public void save(java.io.OutputStream outputStream) throws java.io.IOException
outputStream
- 要保存文档的输出流java.io.IOException
saveImpl(OutputStream)
public AbstractFRPackage clone()
clone
在类中 java.lang.Object
protected abstract AbstractPackagePart createPartImpl(PartSummary partSummary)
partSummary
- 摘要protected abstract void revertImpl()
protected abstract void saveImpl(java.io.OutputStream outputStream) throws java.io.IOException
outputStream
- 保存文档的输出流java.io.IOException
protected abstract java.util.Map<java.lang.String,AbstractPackagePart> getPartsImpl() throws InvalidFormatException
InvalidFormatException
- 无效格式异常