AbstractSampleLogger.java

net.minecraft.util.debugchart.AbstractSampleLogger

信息

  • 全限定名:net.minecraft.util.debugchart.AbstractSampleLogger
  • 类型:public abstract class
  • 包:net.minecraft.util.debugchart
  • 源码路径:src/main/java/net/minecraft/util/debugchart/AbstractSampleLogger.java
  • 起始行号:L3
  • 实现:SampleLogger
  • 职责:

    TODO

字段/常量

  • defaults

    • 类型: long[]
    • 修饰符: protected final
    • 源码定位: L4
    • 说明:

      TODO

  • sample

    • 类型: long[]
    • 修饰符: protected final
    • 源码定位: L5
    • 说明:

      TODO

内部类/嵌套类型

构造器

protected AbstractSampleLogger(int dimensions, long[] defaults) @ L7

  • 构造器名:AbstractSampleLogger
  • 源码定位:L7
  • 修饰符:protected

参数:

  • dimensions: int
  • defaults: long[]

说明:

TODO

方法

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

public void logFullSample(long[] sample) @ L16

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

参数:

  • sample: long[]

说明:

TODO

public void logSample(long sample) @ L23

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

参数:

  • sample: long

说明:

TODO

public void logPartialSample(long sample, int dimension) @ L30

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

参数:

  • sample: long
  • dimension: int

说明:

TODO

protected abstract void useSample() @ L39

  • 方法名:useSample
  • 源码定位:L39
  • 返回类型:void
  • 修饰符:protected abstract

参数:

说明:

TODO

protected void resetSample() @ L41

  • 方法名:resetSample
  • 源码定位:L41
  • 返回类型:void
  • 修饰符:protected

参数:

说明:

TODO

代码

public abstract class AbstractSampleLogger implements SampleLogger {
    protected final long[] defaults;
    protected final long[] sample;
 
    protected AbstractSampleLogger(int dimensions, long[] defaults) {
        if (defaults.length != dimensions) {
            throw new IllegalArgumentException("defaults have incorrect length of " + defaults.length);
        } else {
            this.sample = new long[dimensions];
            this.defaults = defaults;
        }
    }
 
    @Override
    public void logFullSample(long[] sample) {
        System.arraycopy(sample, 0, this.sample, 0, sample.length);
        this.useSample();
        this.resetSample();
    }
 
    @Override
    public void logSample(long sample) {
        this.sample[0] = sample;
        this.useSample();
        this.resetSample();
    }
 
    @Override
    public void logPartialSample(long sample, int dimension) {
        if (dimension >= 1 && dimension < this.sample.length) {
            this.sample[dimension] = sample;
        } else {
            throw new IndexOutOfBoundsException(dimension + " out of bounds for dimensions " + this.sample.length);
        }
    }
 
    protected abstract void useSample();
 
    protected void resetSample() {
        System.arraycopy(this.defaults, 0, this.sample, 0, this.defaults.length);
    }
}

引用的其他类