FileFix.java

net.minecraft.util.filefix.FileFix

信息

  • 全限定名:net.minecraft.util.filefix.FileFix
  • 类型:public abstract class
  • 包:net.minecraft.util.filefix
  • 源码路径:src/main/java/net/minecraft/util/filefix/FileFix.java
  • 起始行号:L14
  • 职责:

    TODO

字段/常量

  • schema

    • 类型: Schema
    • 修饰符: private final
    • 源码定位: L15
    • 说明:

      TODO

  • fileFixOperations

    • 类型: List<FileFixOperation>
    • 修饰符: private final
    • 源码定位: L16
    • 说明:

      TODO

内部类/嵌套类型

构造器

public FileFix(Schema schema) @ L18

  • 构造器名:FileFix
  • 源码定位:L18
  • 修饰符:public

参数:

  • schema: Schema

说明:

TODO

方法

下面的方法块按源码顺序生成。

public final Schema getSchema() @ L23

  • 方法名:getSchema
  • 源码定位:L23
  • 返回类型:Schema
  • 修饰符:public final

参数:

说明:

TODO

public final int getVersion() @ L27

  • 方法名:getVersion
  • 源码定位:L27
  • 返回类型:int
  • 修饰符:public final

参数:

说明:

TODO

public void addFileFixOperation(FileFixOperation fileFixOperation) @ L31

  • 方法名:addFileFixOperation
  • 源码定位:L31
  • 返回类型:void
  • 修饰符:public

参数:

  • fileFixOperation: FileFixOperation

说明:

TODO

public void addFileContentFix(ModifyContent.FileAccessFunction fileAccessFunction) @ L35

  • 方法名:addFileContentFix
  • 源码定位:L35
  • 返回类型:void
  • 修饰符:public

参数:

  • fileAccessFunction: ModifyContent.FileAccessFunction

说明:

TODO

public int countFileOperations() @ L42

  • 方法名:countFileOperations
  • 源码定位:L42
  • 返回类型:int
  • 修饰符:public

参数:

说明:

TODO

public void runFixOperations(Path baseFolder, UpgradeProgress upgradeProgress) @ L46

  • 方法名:runFixOperations
  • 源码定位:L46
  • 返回类型:void
  • 修饰符:public

参数:

  • baseFolder: Path
  • upgradeProgress: UpgradeProgress

说明:

TODO

public abstract void makeFixer() @ L57

  • 方法名:makeFixer
  • 源码定位:L57
  • 返回类型:void
  • 修饰符:public abstract

参数:

说明:

TODO

代码

public abstract class FileFix {
    private final Schema schema;
    private final List<FileFixOperation> fileFixOperations = new ArrayList<>();
 
    public FileFix(Schema schema) {
        this.schema = schema;
        this.makeFixer();
    }
 
    public final Schema getSchema() {
        return this.schema;
    }
 
    public final int getVersion() {
        return DataFixUtils.getVersion(this.schema.getVersionKey());
    }
 
    public void addFileFixOperation(FileFixOperation fileFixOperation) {
        this.fileFixOperations.add(fileFixOperation);
    }
 
    public void addFileContentFix(ModifyContent.FileAccessFunction fileAccessFunction) {
        FileAccessProvider fileAccessProvider = new FileAccessProvider(this.getVersion());
        ModifyContent.FixFunction fixFunction = fileAccessFunction.make(fileAccessProvider);
        fileAccessProvider.freeze();
        this.fileFixOperations.add(new ModifyContent(fileAccessProvider, fixFunction));
    }
 
    public int countFileOperations() {
        return this.fileFixOperations.size();
    }
 
    public void runFixOperations(Path baseFolder, UpgradeProgress upgradeProgress) throws IOException {
        for (FileFixOperation fileFixOperation : this.fileFixOperations) {
            if (upgradeProgress.isCanceled()) {
                throw new CanceledFileFixException();
            }
 
            fileFixOperation.fix(baseFolder, upgradeProgress);
            upgradeProgress.incrementFinishedOperations();
        }
    }
 
    public abstract void makeFixer();
}

引用的其他类