@@ -2,7 +2,6 @@ package com.imyeyu.compress;
|
||||
|
||||
import com.imyeyu.java.bean.CallbackArg;
|
||||
import com.imyeyu.utils.OS;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FilterInputStream;
|
||||
@@ -14,17 +13,16 @@ import java.io.OutputStream;
|
||||
/**
|
||||
* 抽象压缩执行器
|
||||
*
|
||||
* @param <T> 处理器类型
|
||||
* @author 夜雨
|
||||
* @since 2024-06-30 18:09
|
||||
*/
|
||||
public abstract class AbstractRunner implements OS.FileSystem {
|
||||
public abstract class AbstractRunner<T extends AbstractRunner<T>> implements OS.FileSystem {
|
||||
|
||||
/** 文件处理回调 */
|
||||
@Setter
|
||||
protected CallbackArg<File> fileCallback;
|
||||
|
||||
/** 进度回调 */
|
||||
@Setter
|
||||
protected CallbackArg<Double> progressCallback;
|
||||
|
||||
/** 中断标记 */
|
||||
@@ -42,6 +40,48 @@ public abstract class AbstractRunner implements OS.FileSystem {
|
||||
/** 当前已处理字节数 */
|
||||
private long progressBytes = 0L;
|
||||
|
||||
/**
|
||||
* 设置文件处理回调
|
||||
*
|
||||
* @param fileCallback 文件处理回调
|
||||
* @return 当前处理器
|
||||
*/
|
||||
public T setFileCallback(CallbackArg<File> fileCallback) {
|
||||
this.fileCallback = fileCallback;
|
||||
return self();
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置文件处理回调
|
||||
*
|
||||
* @param fileCallback 文件处理回调
|
||||
* @return 当前处理器
|
||||
*/
|
||||
public T fileCallback(CallbackArg<File> fileCallback) {
|
||||
return setFileCallback(fileCallback);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置进度回调
|
||||
*
|
||||
* @param progressCallback 进度回调
|
||||
* @return 当前处理器
|
||||
*/
|
||||
public T setProgressCallback(CallbackArg<Double> progressCallback) {
|
||||
this.progressCallback = progressCallback;
|
||||
return self();
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置进度回调
|
||||
*
|
||||
* @param progressCallback 进度回调
|
||||
* @return 当前处理器
|
||||
*/
|
||||
public T progressCallback(CallbackArg<Double> progressCallback) {
|
||||
return setProgressCallback(progressCallback);
|
||||
}
|
||||
|
||||
/** 暂停任务 */
|
||||
public void pause() {
|
||||
isPause = true;
|
||||
@@ -60,6 +100,16 @@ public abstract class AbstractRunner implements OS.FileSystem {
|
||||
isInterrupt = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回当前处理器
|
||||
*
|
||||
* @return 当前处理器
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
protected final T self() {
|
||||
return (T) this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化字节进度
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user