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 Details

    • fileCallback

      protected com.imyeyu.java.bean.CallbackArg<File> fileCallback
      文件处理回调
    • progressCallback

      protected com.imyeyu.java.bean.CallbackArg<Double> progressCallback
      进度回调
    • isInterrupt

      protected boolean isInterrupt
      中断标记
    • isPause

      protected boolean isPause
      暂停标记
    • pauseLock

      protected final Object pauseLock
      暂停锁
  • Constructor Details

    • AbstractRunner

      public AbstractRunner()
  • Method Details

    • setFileCallback

      public T setFileCallback(com.imyeyu.java.bean.CallbackArg<File> fileCallback)
      设置文件处理回调
      Parameters:
      fileCallback - 文件处理回调
      Returns:
      当前处理器
    • fileCallback

      public T fileCallback(com.imyeyu.java.bean.CallbackArg<File> fileCallback)
      设置文件处理回调
      Parameters:
      fileCallback - 文件处理回调
      Returns:
      当前处理器
    • setProgressCallback

      public T setProgressCallback(com.imyeyu.java.bean.CallbackArg<Double> progressCallback)
      设置进度回调
      Parameters:
      progressCallback - 进度回调
      Returns:
      当前处理器
    • progressCallback

      public T progressCallback(com.imyeyu.java.bean.CallbackArg<Double> progressCallback)
      设置进度回调
      Parameters:
      progressCallback - 进度回调
      Returns:
      当前处理器
    • pause

      public void pause()
      暂停任务
    • start

      public void start()
      恢复任务
    • interrupt

      public void interrupt()
      中断任务
    • self

      protected final T self()
      返回当前处理器
      Returns:
      当前处理器
    • initByteProgress

      protected void initByteProgress(long totalBytes)
      初始化字节进度
      Parameters:
      totalBytes - 总字节数
    • resetProgress

      protected void resetProgress()
      重置进度状态
    • awaitIfPaused

      protected void awaitIfPaused() throws InterruptedException
      执行暂停检查
      Throws:
      InterruptedException - 等待恢复时被中断
    • ensureRunning

      protected void ensureRunning() throws IOException
      检查是否已经中断
      Throws:
      IOException - 操作已中断
    • handleFile

      protected void handleFile(File file)
      触发文件回调
      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

      protected long transfer(InputStream fromStream, OutputStream toStream) throws Exception
      复制数据流并更新进度
      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

      protected InputStream nonClosing(InputStream inputStream)
      创建一个关闭时不关闭原始流的输入流包装
      Parameters:
      inputStream - 原始输入流
      Returns:
      包装后的输入流
    • nonClosing

      protected OutputStream nonClosing(OutputStream outputStream)
      创建一个关闭时不关闭原始流的输出流包装
      Parameters:
      outputStream - 原始输出流
      Returns:
      包装后的输出流
    • normalizeEntryName

      protected String normalizeEntryName(String entryName)
      规范化归档条目名称
      Parameters:
      entryName - 条目名称
      Returns:
      规范化后的名称