Data class
Пакет: com.hypixel.hytale.assetstore
Файл: com/hypixel/hytale/assetstore/AssetExtraInfo.java
Поля (19)
| Модификаторы | Тип | Имя |
|---|---|---|
|
public static final char |
TAG_VALUE_SEPARATOR |
|
private AssetExtraInfo.Data |
containerData |
|
private final IntSet |
expandedTagStorage |
|
private Object |
key |
|
private Object |
parentKey |
|
private final Map<String, String[]> |
rawTags |
|
private final Int2ObjectMap<IntSet> |
tagStorage |
|
private final IntSet |
unmodifiableExpandedTagStorage |
|
private final Int2ObjectMap<IntSet> |
unmodifiableTagStorage |
|
AssetExtraInfo.Data |
var1 |
|
|
var1 |
|
String |
var10 |
|
int |
var2 |
|
IntSet |
var2 |
|
List |
var3 |
|
String |
var4 |
|
Function |
var4 |
|
IntSet |
var5 |
|
List |
var7 |
Методы (34)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public <K, T extends JsonAssetWithMap<K, M>, M extends AssetMap<K, T>> void |
addContainedAssetpublic <K, T extends JsonAssetWithMap<K, M>, M extends AssetMap<K, T>> void addContainedAsset(Class<T> var1, T var2) |
|
public <K, T extends JsonAssetWithMap<K, M>, M extends AssetMap<K, T>> void |
addContainedAssetpublic <K, T extends JsonAssetWithMap<K, M>, M extends AssetMap<K, T>> void addContainedAsset(Class<T> var1, RawAsset<K> var2) |
|
public <K, T extends JsonAssetWithMap<K, M>, M extends AssetMap<K, T>> boolean |
containsAssetpublic <K, T extends JsonAssetWithMap<K, M>, M extends AssetMap<K, T>> boolean containsAsset(Class<T> var1, K var2) |
|
private IntSet |
ensureTagprivate IntSet ensureTag(@Nonnull String var1) |
|
public <K> void |
fetchContainedAssetspublic <K> void fetchContainedAssets(K var1, @Nonnull Map<Class<? extends JsonAssetWithMap>, Map<K, List<Object>>> var2) |
|
public <K> void |
fetchContainedRawAssetspublic <K> void fetchContainedRawAssets(K var1, @Nonnull Map<Class<? extends JsonAssetWithMap>, Map<K, List<RawAsset<Object>>>> var2) |
|
|
for for(JsonAssetWithMap var6 : var3) |
|
|
for for(RawAsset var9 : var7) |
|
public AssetExtraInfo.Data |
getContainerDatapublic AssetExtraInfo.Data getContainerData() |
|
public <K> K |
getContainerKeypublic <K> K getContainerKey(Class<? extends JsonAsset<K>> var1) |
|
public IntSet |
getExpandedTagIndexespublic IntSet getExpandedTagIndexes() |
|
public Object |
getKeypublic Object getKey() |
|
public Object |
getParentKeypublic Object getParentKey() |
|
public Map<String, String[]> |
getRawTagspublic Map<String, String[]> getRawTags() |
|
public AssetExtraInfo.Data |
getRootContainerDatapublic AssetExtraInfo.Data getRootContainerData() |
|
public IntSet |
getTagpublic IntSet getTag(int var1) |
|
public Int2ObjectMap<IntSet> |
getTagspublic Int2ObjectMap<IntSet> getTags() |
|
|
if if(var1 != null && var5) |
|
|
if if(this.containerData == null) |
|
|
if if(this.containedAssets == null) |
|
|
if if(this.containedRawAssets == null) |
|
|
if if(this.containedAssets != null) |
|
|
if if(this.containedRawAssets != null) |
|
|
if if(this.containedAssets != null) |
|
|
if if(var3 != null) |
|
|
if if(this.containedRawAssets != null) |
|
|
if if(var7 != null) |
|
|
if if(this.containedAssets != null) |
|
|
if if(this.containedRawAssets != null) |
|
public void |
loadContainedAssetspublic void loadContainedAssets(boolean var1) |
|
public void |
putTagspublic void putTags(@Nonnull Map<String, String[]> var1) |
abstract |
|
this this(var2, var3, var4) |
|
public String |
toStringpublic String toString() |
|
|
while while(var1.containerData != null) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.assetstore;
class="kw">import com.hypixel.hytale.assetstore.map.JsonAssetWithMap;
class="kw">import com.hypixel.hytale.codec.CollectingExtraInfo;
class="kw">import com.hypixel.hytale.common.util.ArrayUtil;
class="kw">import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
class="kw">import it.unimi.dsi.fastutil.ints.Int2ObjectMaps;
class="kw">import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
class="kw">import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
class="kw">import it.unimi.dsi.fastutil.ints.IntSet;
class="kw">import it.unimi.dsi.fastutil.ints.IntSets;
class="kw">import java.nio.file.Path;
class="kw">import java.util.ArrayList;
class="kw">import java.util.Collections;
class="kw">import java.util.HashMap;
class="kw">import java.util.List;
class="kw">import java.util.Map;
class="kw">import java.util.Map.Entry;
class="kw">import java.util.function.Function;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class AssetExtraInfo<K> class="kw">extends CollectingExtraInfo {
@Nullable
class="kw">private class="kw">final Path assetPath;
class="kw">private class="kw">final AssetExtraInfo.Data data;
class="kw">public AssetExtraInfo(AssetExtraInfo.Data var1) {
super(Integer.MAX_VALUE, AssetValidationResults::new);
this.assetPath = null;
this.data = var1;
}
class="kw">public AssetExtraInfo(Path var1, AssetExtraInfo.Data var2) {
super(Integer.MAX_VALUE, AssetValidationResults::new);
this.assetPath = var1;
this.data = var2;
}
@Nonnull
class="kw">public String generateKey() {
class="kw">return "*" + this.getKey() + "_" + this.peekKey('_');
}
class="kw">public K getKey() {
class="kw">return (K)this.getData().getKey();
}
@Nullable
class="kw">public Path getAssetPath() {
class="kw">return this.assetPath;
}
class="kw">public AssetExtraInfo.Data getData() {
class="kw">return this.data;
}
@Override
class="kw">public void appendDetailsTo(@Nonnull StringBuilder var1) {
var1.append("Id: ").append(this.getKey()).append("\n");
if (this.assetPath != null) {
var1.append("Path: ").append(this.assetPath).append("\n");
}
}
class="kw">public AssetValidationResults getValidationResults() {
class="kw">return (AssetValidationResults)super.getValidationResults();
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "AssetExtraInfo{assetPath=" + this.assetPath + ", data=" + this.data + "} " + super.toString();
}
class="kw">public class="kw">static class Data {
class="kw">public class="kw">static class="kw">final char TAG_VALUE_SEPARATOR = '=';
class="kw">private Map<Class<? class="kw">extends JsonAssetWithMap>, List<Object>> containedAssets;
class="kw">private Map<Class<? class="kw">extends JsonAssetWithMap>, List<RawAsset<Object>>> containedRawAssets;
@Nullable
class="kw">private AssetExtraInfo.Data containerData;
class="kw">private Class<? class="kw">extends JsonAsset<?>> assetClass;
class="kw">private Object key;
class="kw">private Object parentKey;
class="kw">private class="kw">final Map<String, String[]> rawTags = new HashMap<>(0);
class="kw">private class="kw">final Int2ObjectMap<IntSet> tagStorage = new Int2ObjectOpenHashMap(0);
class="kw">private class="kw">final Int2ObjectMap<IntSet> unmodifiableTagStorage = new Int2ObjectOpenHashMap(0);
class="kw">private class="kw">final IntSet expandedTagStorage = new IntOpenHashSet(0);
class="kw">private class="kw">final IntSet unmodifiableExpandedTagStorage = IntSets.unmodifiable(this.expandedTagStorage);
class="kw">public <K> Data(Class<? class="kw">extends JsonAsset<K>> var1, K var2, K var3) {
this.assetClass = var1;
this.key = var2;
this.parentKey = var3;
}
class="kw">public <K> Data(@Nullable AssetExtraInfo.Data var1, Class<? class="kw">extends JsonAsset<K>> var2, K var3, K var4, boolean var5) {
this(var2, var3, var4);
this.containerData = var1;
if (var1 != null && var5) {
this.putTags(var1.rawTags);
}
}
class="kw">public Class<? class="kw">extends JsonAsset<?>> getAssetClass() {
class="kw">return this.assetClass;
}
class="kw">public Object getKey() {
class="kw">return this.key;
}
class="kw">public Object getParentKey() {
class="kw">return this.parentKey;
}
@Nonnull
class="kw">public AssetExtraInfo.Data getRootContainerData() {
AssetExtraInfo.Data var1 = this;
while (var1.containerData != null) {
var1 = var1.containerData;
}
class="kw">return var1;
}
@Nullable
class="kw">public AssetExtraInfo.Data getContainerData() {
class="kw">return this.containerData;
}
@Nullable
class="kw">public <K> K getContainerKey(Class<? class="kw">extends JsonAsset<K>> var1) {
if (this.containerData == null) {
class="kw">return null;
} else {
class="kw">return (K)(this.containerData.assetClass.equals(var1) ? this.containerData.key : this.containerData.getContainerKey(var1));
}
}
class="kw">public void putTags(@Nonnull Map<String, String[]> var1) {
for (Entry var3 : var1.entrySet()) {
String var4 = var3.getKey().intern();
this.rawTags.merge(var4, var3.getValue(), ArrayUtil::combine);
IntSet var5 = this.ensureTag(var4);
for (String var9 : var3.getValue()) {
var5.add(AssetRegistry.getOrCreateTagIndex(var9));
this.ensureTag(var9);
this.rawTags.putIfAbsent(var9, ArrayUtil.EMPTY_STRING_ARRAY);
String var10 = (var4 + "=" + var9).intern();
this.rawTags.putIfAbsent(var10, ArrayUtil.EMPTY_STRING_ARRAY);
this.ensureTag(var10);
}
}
}
@Nonnull
class="kw">public Map<String, String[]> getRawTags() {
class="kw">return Collections.unmodifiableMap(this.rawTags);
}
@Nonnull
class="kw">public Int2ObjectMap<IntSet> getTags() {
class="kw">return Int2ObjectMaps.unmodifiable(this.unmodifiableTagStorage);
}
@Nonnull
class="kw">public IntSet getExpandedTagIndexes() {
class="kw">return this.unmodifiableExpandedTagStorage;
}
class="kw">public IntSet getTag(int var1) {
class="kw">return (IntSet)this.unmodifiableTagStorage.getOrDefault(var1, IntSets.EMPTY_SET);
}
class="kw">public <K, T class="kw">extends JsonAssetWithMap<K, M>, M class="kw">extends AssetMap<K, T>> void addContainedAsset(Class<T> var1, T var2) {
if (this.containedAssets == null) {
this.containedAssets = new HashMap<>();
}
this.containedAssets.computeIfAbsent(var1, var0 -> new ArrayList<>()).add(var2);
}
class="kw">public <K, T class="kw">extends JsonAssetWithMap<K, M>, M class="kw">extends AssetMap<K, T>> void addContainedAsset(Class<T> var1, RawAsset<K> var2) {
if (this.containedRawAssets == null) {
this.containedRawAssets = new HashMap<>();
}
this.containedRawAssets.computeIfAbsent(var1, var0 -> new ArrayList<>()).add(var2);
}
class="kw">public <K> void fetchContainedAssets(K var1, @Nonnull Map<Class<? class="kw">extends JsonAssetWithMap>, Map<K, List<Object>>> var2) {
if (this.containedAssets != null) {
for (Entry var4 : this.containedAssets.entrySet()) {
var2.computeIfAbsent(var4.getKey(), var0 -> new HashMap<>()).computeIfAbsent(var1, var0 -> new ArrayList<>(3)).addAll(var4.getValue());
}
}
}
class="kw">public <K> void fetchContainedRawAssets(K var1, @Nonnull Map<Class<? class="kw">extends JsonAssetWithMap>, Map<K, List<RawAsset<Object>>>> var2) {
if (this.containedRawAssets != null) {
for (Entry var4 : this.containedRawAssets.entrySet()) {
var2.computeIfAbsent(var4.getKey(), var0 -> new HashMap<>()).computeIfAbsent(var1, var0 -> new ArrayList<>(3)).addAll(var4.getValue());
}
}
}
class="kw">public <K, T class="kw">extends JsonAssetWithMap<K, M>, M class="kw">extends AssetMap<K, T>> boolean containsAsset(Class<T> var1, K var2) {
if (this.containedAssets != null) {
List var3 = (List<T>)this.containedAssets.get(var1);
if (var3 != null) {
Function var4 = AssetRegistry.<K, T, M>getAssetStore(var1).getKeyFunction();
for (JsonAssetWithMap var6 : var3) {
if (var2.equals(var4.apply(var6))) {
class="kw">return true;
}
}
}
}
if (this.containedRawAssets != null) {
List var7 = (List<RawAsset<T>>)this.containedRawAssets.get(var1);
if (var7 != null) {
for (RawAsset var9 : var7) {
if (var2.equals(var9.getKey())) {
class="kw">return true;
}
}
}
}
class="kw">return false;
}
class="kw">public void loadContainedAssets(boolean var1) {
if (this.containedAssets != null) {
for (Entry var3 : this.containedAssets.entrySet()) {
AssetRegistry.getAssetStore(var3.getKey()).loadAssets("Hytale:Hytale", var3.getValue(), AssetUpdateQuery.DEFAULT, var1);
}
}
if (this.containedRawAssets != null) {
for (Entry var5 : this.containedRawAssets.entrySet()) {
AssetRegistry.getAssetStore(var5.getKey()).loadBuffersWithKeys("Hytale:Hytale", var5.getValue(), AssetUpdateQuery.DEFAULT, var1);
}
}
}
@Nonnull
class="kw">private IntSet ensureTag(@Nonnull String var1) {
int var2 = AssetRegistry.getOrCreateTagIndex(var1);
this.expandedTagStorage.add(var2);
class="kw">return (IntSet)this.tagStorage.computeIfAbsent(var2, var1x -> {
IntSet var2 = new IntOpenHashSet(3);
this.unmodifiableTagStorage.put(var1x, IntSets.unmodifiable(var2));
class="kw">return var2;
});
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "Data{containedRawAssets="
+ this.containedRawAssets
+ ", rawTags="
+ this.rawTags
+ ", parent="
+ this.containerData
+ ", assetClass="
+ this.assetClass
+ ", key="
+ this.key
+ "}";
}
}
}