NamespacedSchema.java

net.minecraft.util.datafix.schemas.NamespacedSchema

信息

  • 全限定名:net.minecraft.util.datafix.schemas.NamespacedSchema
  • 类型:public class
  • 包:net.minecraft.util.datafix.schemas
  • 源码路径:src/main/java/net/minecraft/util/datafix/schemas/NamespacedSchema.java
  • 起始行号:L12
  • 继承:Schema
  • 职责:

    TODO

字段/常量

  • NAMESPACED_STRING_CODEC

    • 类型: PrimitiveCodec<String>
    • 修饰符: public static final public public public
    • 源码定位: L13
    • 说明:

      TODO

  • NAMESPACED_STRING

    • 类型: Type<String>
    • 修饰符: private static final
    • 源码定位: L28
    • 说明:

      TODO

内部类/嵌套类型

构造器

public NamespacedSchema(int versionKey, Schema parent) @ L30

  • 构造器名:NamespacedSchema
  • 源码定位:L30
  • 修饰符:public

参数:

  • versionKey: int
  • parent: Schema

说明:

TODO

方法

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

public static String ensureNamespaced(String input) @ L34

  • 方法名:ensureNamespaced
  • 源码定位:L34
  • 返回类型:String
  • 修饰符:public static

参数:

  • input: String

说明:

TODO

public static Type<String> namespacedString() @ L39

  • 方法名:namespacedString
  • 源码定位:L39
  • 返回类型:Type
  • 修饰符:public static

参数:

说明:

TODO

public Type<?> getChoiceType(TypeReference type, String choiceName) @ L43

  • 方法名:getChoiceType
  • 源码定位:L43
  • 返回类型:Type<?>
  • 修饰符:public

参数:

  • type: TypeReference
  • choiceName: String

说明:

TODO

代码

public class NamespacedSchema extends Schema {
    public static final PrimitiveCodec<String> NAMESPACED_STRING_CODEC = new PrimitiveCodec<String>() {
        @Override
        public <T> DataResult<String> read(DynamicOps<T> ops, T input) {
            return ops.getStringValue(input).map(NamespacedSchema::ensureNamespaced);
        }
 
        public <T> T write(DynamicOps<T> ops, String value) {
            return ops.createString(value);
        }
 
        @Override
        public String toString() {
            return "NamespacedString";
        }
    };
    private static final Type<String> NAMESPACED_STRING = new PrimitiveType<>(NAMESPACED_STRING_CODEC);
 
    public NamespacedSchema(int versionKey, Schema parent) {
        super(versionKey, parent);
    }
 
    public static String ensureNamespaced(String input) {
        Identifier identifier = Identifier.tryParse(input);
        return identifier != null ? identifier.toString() : input;
    }
 
    public static Type<String> namespacedString() {
        return NAMESPACED_STRING;
    }
 
    @Override
    public Type<?> getChoiceType(TypeReference type, String choiceName) {
        return super.getChoiceType(type, ensureNamespaced(choiceName));
    }
}

引用的其他类

  • Identifier

    • 引用位置: 方法调用
    • 关联成员: Identifier.tryParse()
  • Schema

    • 引用位置: 参数/继承