Package com.imyeyu.compress
Class AbstractRunner<T extends AbstractRunner<T>>
java.lang.Object
com.imyeyu.compress.AbstractRunner<T>
- Type Parameters:
T- 处理器类型
- All Implemented Interfaces:
com.imyeyu.utils.OS.FileSystem
- Direct Known Subclasses:
Compressor,Decompressor
public abstract class AbstractRunner<T extends AbstractRunner<T>>
extends Object
implements com.imyeyu.utils.OS.FileSystem
抽象处理器
- Since:
- 2024-06-30 18:09
- Author:
- 夜雨
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected com.imyeyu.java.bean.CallbackArg<File> 文件处理回调protected boolean中断标记protected boolean暂停标记protected final Object暂停锁protected com.imyeyu.java.bean.CallbackArg<Double> 进度回调Fields inherited from interface com.imyeyu.utils.OS.FileSystem
COMPARATOR_FILE_NAME, SEP -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void执行暂停检查protected void检查是否已经中断fileCallback(com.imyeyu.java.bean.CallbackArg<File> fileCallback) 设置文件处理回调protected void将进度推进到完成态protected voidhandleFile(File file) 触发文件回调protected voidhandleProgress(long currentBytes, long totalBytes) 触发进度回调protected voidhandleTransferred(long bytes) 增加已处理字节数并回调protected voidinitByteProgress(long totalBytes) 初始化字节进度void中断任务protected InputStreamnonClosing(InputStream inputStream) 创建一个关闭时不关闭原始流的输入流包装protected OutputStreamnonClosing(OutputStream outputStream) 创建一个关闭时不关闭原始流的输出流包装protected StringnormalizeEntryName(String entryName) 规范化归档条目名称voidpause()暂停任务progressCallback(com.imyeyu.java.bean.CallbackArg<Double> progressCallback) 设置进度回调protected void重置进度状态protected final Tself()返回当前处理器setFileCallback(com.imyeyu.java.bean.CallbackArg<File> fileCallback) 设置文件处理回调setProgressCallback(com.imyeyu.java.bean.CallbackArg<Double> progressCallback) 设置进度回调voidstart()恢复任务protected longtransfer(InputStream fromStream, OutputStream toStream) 复制数据流并更新进度protected longtransfer(InputStream fromStream, OutputStream toStream, boolean countProgress) 复制数据流
-
Field Details
-
fileCallback
文件处理回调 -
progressCallback
进度回调 -
isInterrupt
protected boolean isInterrupt中断标记 -
isPause
protected boolean isPause暂停标记 -
pauseLock
暂停锁
-
-
Constructor Details
-
AbstractRunner
public AbstractRunner()
-
-
Method Details
-
setFileCallback
设置文件处理回调- Parameters:
fileCallback- 文件处理回调- Returns:
- 当前处理器
-
fileCallback
设置文件处理回调- Parameters:
fileCallback- 文件处理回调- Returns:
- 当前处理器
-
setProgressCallback
设置进度回调- Parameters:
progressCallback- 进度回调- Returns:
- 当前处理器
-
progressCallback
设置进度回调- Parameters:
progressCallback- 进度回调- Returns:
- 当前处理器
-
pause
public void pause()暂停任务 -
start
public void start()恢复任务 -
interrupt
public void interrupt()中断任务 -
self
返回当前处理器- Returns:
- 当前处理器
-
initByteProgress
protected void initByteProgress(long totalBytes) 初始化字节进度- Parameters:
totalBytes- 总字节数
-
resetProgress
protected void resetProgress()重置进度状态 -
awaitIfPaused
执行暂停检查- Throws:
InterruptedException- 等待恢复时被中断
-
ensureRunning
检查是否已经中断- Throws:
IOException- 操作已中断
-
handleFile
触发文件回调- Parameters:
file- 当前处理的文件
-
handleProgress
protected void handleProgress(long currentBytes, long totalBytes) 触发进度回调- Parameters:
currentBytes- 当前已处理字节数totalBytes- 总字节数
-
handleTransferred
protected void handleTransferred(long bytes) 增加已处理字节数并回调- Parameters:
bytes- 本次新增字节数
-
finishProgress
protected void finishProgress()将进度推进到完成态 -
transfer
复制数据流并更新进度- Parameters:
fromStream- 输入流toStream- 输出流- Returns:
- 已复制字节数
- Throws:
Exception- 复制失败
-
transfer
protected long transfer(InputStream fromStream, OutputStream toStream, boolean countProgress) throws Exception 复制数据流- Parameters:
fromStream- 输入流toStream- 输出流countProgress- 是否统计进度- Returns:
- 已复制字节数
- Throws:
Exception- 复制失败
-
nonClosing
创建一个关闭时不关闭原始流的输入流包装- Parameters:
inputStream- 原始输入流- Returns:
- 包装后的输入流
-
nonClosing
创建一个关闭时不关闭原始流的输出流包装- Parameters:
outputStream- 原始输出流- Returns:
- 包装后的输出流
-
normalizeEntryName
规范化归档条目名称- Parameters:
entryName- 条目名称- Returns:
- 规范化后的名称
-