ResourceMetadata.java
net.minecraft.server.packs.resources.ResourceMetadata
信息
- 全限定名:net.minecraft.server.packs.resources.ResourceMetadata
- 类型:public interface
- 包:net.minecraft.server.packs.resources
- 源码路径:src/main/java/net/minecraft/server/packs/resources/ResourceMetadata.java
- 起始行号:L20
- 职责:
TODO
字段/常量
-
EMPTY- 类型:
ResourceMetadata - 修饰符:
public - 源码定位:
L21 - 说明:
TODO
- 类型:
-
EMPTY_SUPPLIER- 类型:
IoSupplier<ResourceMetadata> - 修饰符:
package-private - 源码定位:
L27 - 说明:
TODO
- 类型:
内部类/嵌套类型
net.minecraft.server.packs.resources.ResourceMetadata.MapBased- 类型:
class - 修饰符:
public static - 源码定位:
L69 - 说明:
TODO
- 类型:
构造器
- 无
方法
下面的方法块按源码顺序生成。
static ResourceMetadata fromJsonStream(InputStream inputStream) @ L29
- 方法名:fromJsonStream
- 源码定位:L29
- 返回类型:ResourceMetadata
- 修饰符:static
参数:
- inputStream: InputStream
说明:
TODO
<T> Optional<T> getSection(MetadataSectionType<T> serializer) @ L51
- 方法名:getSection
- 源码定位:L51
- 返回类型:
Optional - 修饰符:package-private
参数:
- serializer: MetadataSectionType
说明:
TODO
default <T> Optional<MetadataSectionType.WithValue<T>> getTypedSection(MetadataSectionType<T> type) @ L53
- 方法名:getTypedSection
- 源码定位:L53
- 返回类型:
Optional<MetadataSectionType.WithValue > - 修饰符:default
参数:
- type: MetadataSectionType
说明:
TODO
static <T> ResourceMetadata of(MetadataSectionType<T> k, T v) @ L57
- 方法名:of
- 源码定位:L57
- 返回类型:
ResourceMetadata - 修饰符:static
参数:
- k: MetadataSectionType
- v: T
说明:
TODO
static <T1,T2> ResourceMetadata of(MetadataSectionType<T1> k1, T1 v1, MetadataSectionType<T2> k2, T2 v2) @ L61
- 方法名:of
- 源码定位:L61
- 返回类型:<T1,T2> ResourceMetadata
- 修饰符:static
参数:
- k1: MetadataSectionType
- v1: T1
- k2: MetadataSectionType
- v2: T2
说明:
TODO
default List<MetadataSectionType.WithValue<?>> getTypedSections(Collection<MetadataSectionType<?>> types) @ L65
- 方法名:getTypedSections
- 源码定位:L65
- 返回类型:List<MetadataSectionType.WithValue<?>>
- 修饰符:default
参数:
- types: Collection<MetadataSectionType<?>>
说明:
TODO
代码
public interface ResourceMetadata {
ResourceMetadata EMPTY = new ResourceMetadata() {
@Override
public <T> Optional<T> getSection(MetadataSectionType<T> serializer) {
return Optional.empty();
}
};
IoSupplier<ResourceMetadata> EMPTY_SUPPLIER = () -> EMPTY;
static ResourceMetadata fromJsonStream(InputStream inputStream) throws IOException {
ResourceMetadata var3;
try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8))) {
final JsonObject metadata = GsonHelper.parse(reader);
var3 = new ResourceMetadata() {
@Override
public <T> Optional<T> getSection(MetadataSectionType<T> serializer) {
String name = serializer.name();
JsonElement rawSection = metadata.get(name);
if (rawSection != null) {
T section = serializer.codec().parse(JsonOps.INSTANCE, rawSection).getOrThrow(JsonParseException::new);
return Optional.of(section);
} else {
return Optional.empty();
}
}
};
}
return var3;
}
<T> Optional<T> getSection(MetadataSectionType<T> serializer);
default <T> Optional<MetadataSectionType.WithValue<T>> getTypedSection(MetadataSectionType<T> type) {
return this.getSection(type).map(type::withValue);
}
static <T> ResourceMetadata of(MetadataSectionType<T> k, T v) {
return new ResourceMetadata.MapBased(Map.of(k, v));
}
static <T1, T2> ResourceMetadata of(MetadataSectionType<T1> k1, T1 v1, MetadataSectionType<T2> k2, T2 v2) {
return new ResourceMetadata.MapBased(Map.of(k1, v1, k2, (T1)v2));
}
default List<MetadataSectionType.WithValue<?>> getTypedSections(Collection<MetadataSectionType<?>> types) {
return types.stream().map(this::getTypedSection).flatMap(Optional::stream).collect(Collectors.toUnmodifiableList());
}
public static class MapBased implements ResourceMetadata {
private final Map<MetadataSectionType<?>, ?> values;
private MapBased(Map<MetadataSectionType<?>, ?> values) {
this.values = values;
}
@Override
public <T> Optional<T> getSection(MetadataSectionType<T> serializer) {
return Optional.ofNullable((T)this.values.get(serializer));
}
}
}引用的其他类
-
- 引用位置:
参数/返回值
- 引用位置:
-
- 引用位置:
字段
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
GsonHelper.parse()
- 引用位置: