IdentifierPattern.java

net.minecraft.util.IdentifierPattern

信息

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

    TODO

字段/常量

  • CODEC

    • 类型: Codec<IdentifierPattern>
    • 修饰符: public static final
    • 源码定位: L11
    • 说明:

      TODO

  • namespacePattern

    • 类型: Optional<Pattern>
    • 修饰符: private final
    • 源码定位: L18
    • 说明:

      TODO

  • namespacePredicate

    • 类型: Predicate<String>
    • 修饰符: private final
    • 源码定位: L19
    • 说明:

      TODO

  • pathPattern

    • 类型: Optional<Pattern>
    • 修饰符: private final
    • 源码定位: L20
    • 说明:

      TODO

  • pathPredicate

    • 类型: Predicate<String>
    • 修饰符: private final
    • 源码定位: L21
    • 说明:

      TODO

  • locationPredicate

    • 类型: Predicate<Identifier>
    • 修饰符: private final
    • 源码定位: L22
    • 说明:

      TODO

内部类/嵌套类型

构造器

private IdentifierPattern(Optional<Pattern> namespacePattern, Optional<Pattern> pathPattern) @ L24

  • 构造器名:IdentifierPattern
  • 源码定位:L24
  • 修饰符:private

参数:

  • namespacePattern: Optional
  • pathPattern: Optional

说明:

TODO

方法

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

public Predicate<String> namespacePredicate() @ L32

  • 方法名:namespacePredicate
  • 源码定位:L32
  • 返回类型:Predicate
  • 修饰符:public

参数:

说明:

TODO

public Predicate<String> pathPredicate() @ L36

  • 方法名:pathPredicate
  • 源码定位:L36
  • 返回类型:Predicate
  • 修饰符:public

参数:

说明:

TODO

public Predicate<Identifier> locationPredicate() @ L40

  • 方法名:locationPredicate
  • 源码定位:L40
  • 返回类型:Predicate
  • 修饰符:public

参数:

说明:

TODO

代码

public class IdentifierPattern {
    public static final Codec<IdentifierPattern> CODEC = RecordCodecBuilder.create(
        i -> i.group(
                ExtraCodecs.PATTERN.optionalFieldOf("namespace").forGetter(o -> o.namespacePattern),
                ExtraCodecs.PATTERN.optionalFieldOf("path").forGetter(o -> o.pathPattern)
            )
            .apply(i, IdentifierPattern::new)
    );
    private final Optional<Pattern> namespacePattern;
    private final Predicate<String> namespacePredicate;
    private final Optional<Pattern> pathPattern;
    private final Predicate<String> pathPredicate;
    private final Predicate<Identifier> locationPredicate;
 
    private IdentifierPattern(Optional<Pattern> namespacePattern, Optional<Pattern> pathPattern) {
        this.namespacePattern = namespacePattern;
        this.namespacePredicate = namespacePattern.map(Pattern::asPredicate).orElse(r -> true);
        this.pathPattern = pathPattern;
        this.pathPredicate = pathPattern.map(Pattern::asPredicate).orElse(r -> true);
        this.locationPredicate = location -> this.namespacePredicate.test(location.getNamespace()) && this.pathPredicate.test(location.getPath());
    }
 
    public Predicate<String> namespacePredicate() {
        return this.namespacePredicate;
    }
 
    public Predicate<String> pathPredicate() {
        return this.pathPredicate;
    }
 
    public Predicate<Identifier> locationPredicate() {
        return this.locationPredicate;
    }
}

引用的其他类