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
            + "}";
      }
   }
}