ExtraInfo class

Пакет: com.hypixel.hytale.codec

Файл: com/hypixel/hytale/codec/ExtraInfo.java

Поля (16)

МодификаторыТипИмя
final ThreadLocal<ExtraInfo> THREAD_LOCAL
int var1
int var1
int var2
int var2
int var2
int var2
int var2
int var2
String var2
StringBuilder var2
int var3
int var3
String var3
String var4
String var5

Методы (37)

МодификаторыВозвратСигнатура
public void addUnknownKeyvoid addUnknownKey(@Nonnull String var1)
public void appendDetailsTovoid appendDetailsTo(@Nonnull StringBuilder var1)
public boolean consumeIgnoredUnknownKeyboolean consumeIgnoredUnknownKey(@Nonnull RawJsonReader var1)
public boolean consumeIgnoredUnknownKeyboolean consumeIgnoredUnknownKey(@Nonnull String var1)
for for(int var3 = 0; var3 < this.keysSize; var3++)
public CodecStore getCodecStoreCodecStore getCodecStore()
public int getIgnoredUnusedSizeint getIgnoredUnusedSize()
public int getKeysSizeint getKeysSize()
public ValidationResults getValidationResultsValidationResults getValidationResults()
public int getVersionint getVersion()
static int growint grow(int var0)
if if(this.stringKeys.length <= var1)
if if(this.ignoredUnknownKeys.length <= var1)
if if(this.ignoredUnknownSize <= 0)
if if(var3 == null)
if if(this.ignoredUnknownSize <= 0)
if if(this.keysSize == 0)
if if(this.keysSize == 1)
if if(var3 > 0)
if if(var4 != null)
public void ignoreUnusedKeyvoid ignoreUnusedKey(String var1)
static boolean isIgnoredMetadataKeyboolean isIgnoredMetadataKey(@Nonnull String var0)
private int nextIgnoredUnknownIndexint nextIgnoredUnknownIndex()
private int nextKeyIndexint nextKeyIndex()
public int peekColumnint peekColumn()
public String peekKeyString peekKey()
public String peekKeyString peekKey(char var1)
public int peekLineint peekLine()
public void popIgnoredUnusedKeyvoid popIgnoredUnusedKey()
public void popKeyvoid popKey()
public void pushIntKeyvoid pushIntKey(int var1)
public void pushIntKeyvoid pushIntKey(int var1, RawJsonReader var2)
public void pushKeyvoid pushKey(String var1)
public void pushKeyvoid pushKey(String var1, RawJsonReader var2)
public void readUnknownKeyvoid readUnknownKey(@Nonnull RawJsonReader var1)
protected void recordUnknownKeyvoid recordUnknownKey(@Nonnull String var1)
return switchreturn switch(var0)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.codec;

class="kw">import com.hypixel.hytale.codec.store.CodecStore;
class="kw">import com.hypixel.hytale.codec.util.RawJsonReader;
class="kw">import com.hypixel.hytale.codec.validation.ThrowingValidationResults;
class="kw">import com.hypixel.hytale.codec.validation.ValidationResults;
class="kw">import com.hypixel.hytale.logger.util.GithubMessageUtil;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
class="kw">import java.io.IOException;
class="kw">import java.util.Arrays;
class="kw">import java.util.List;
class="kw">import java.util.Map;
class="kw">import java.util.function.Function;
class="kw">import javax.annotation.Nonnull;

class="kw">public class ExtraInfo {
   class="kw">public class="kw">static class="kw">final ThreadLocal<ExtraInfo> THREAD_LOCAL = ThreadLocal.withInitial(ExtraInfo::new);
   class="kw">public class="kw">static class="kw">final String GENERATED_ID_PREFIX = "*";
   class="kw">public class="kw">static class="kw">final int UNSET_VERSION = Integer.MAX_VALUE;
   class="kw">private class="kw">final int legacyVersion;
   class="kw">private class="kw">final int keysInitialSize = this class="kw">instanceof EmptyExtraInfo ? 0 : 128;
   @Nonnull
   class="kw">private String[] stringKeys = new String[this.keysInitialSize];
   @Nonnull
   class="kw">private int[] intKeys = new int[this.keysInitialSize];
   class="kw">private int[] lineNumbers = GithubMessageUtil.isGithub() ? new int[this.keysInitialSize] : null;
   class="kw">private int[] columnNumbers = GithubMessageUtil.isGithub() ? new int[this.keysInitialSize] : null;
   class="kw">private int keysSize;
   @Nonnull
   class="kw">private String[] ignoredUnknownKeys = new String[this.keysInitialSize];
   class="kw">private int ignoredUnknownSize;
   class="kw">private class="kw">final ValidationResults validationResults;
   class="kw">private class="kw">final CodecStore codecStore;
   @Deprecated
   class="kw">private class="kw">final Map<String, Object> metadata = new Object2ObjectOpenHashMap();

   class="kw">public ExtraInfo() {
      this.legacyVersion = Integer.MAX_VALUE;
      this.validationResults = new ThrowingValidationResults(this);
      this.codecStore = CodecStore.STATIC;
   }

   @Deprecated
   class="kw">public ExtraInfo(int var1) {
      this.legacyVersion = var1;
      this.validationResults = new ThrowingValidationResults(this);
      this.codecStore = CodecStore.STATIC;
   }

   @Deprecated
   class="kw">public ExtraInfo(int var1, @Nonnull Function<ExtraInfo, ValidationResults> var2) {
      this.legacyVersion = var1;
      this.validationResults = var2.apply(this);
      this.codecStore = CodecStore.STATIC;
   }

   class="kw">public int getVersion() {
      class="kw">return Integer.MAX_VALUE;
   }

   @Deprecated
   class="kw">public int getLegacyVersion() {
      class="kw">return this.legacyVersion;
   }

   class="kw">public int getKeysSize() {
      class="kw">return this.keysSize;
   }

   class="kw">public CodecStore getCodecStore() {
      class="kw">return this.codecStore;
   }

   class="kw">private int nextKeyIndex() {
      int var1 = this.keysSize++;
      if (this.stringKeys.length <= var1) {
         int var2 = grow(var1);
         this.stringKeys = Arrays.copyOf(this.stringKeys, var2);
         this.intKeys = Arrays.copyOf(this.intKeys, var2);
         if (GithubMessageUtil.isGithub()) {
            this.lineNumbers = Arrays.copyOf(this.lineNumbers, var2);
            this.columnNumbers = Arrays.copyOf(this.columnNumbers, var2);
         }
      }

      class="kw">return var1;
   }

   class="kw">public void pushKey(String var1) {
      int var2 = this.nextKeyIndex();
      this.stringKeys[var2] = var1;
   }

   class="kw">public void pushIntKey(int var1) {
      int var2 = this.nextKeyIndex();
      this.intKeys[var2] = var1;
   }

   class="kw">public void pushKey(String var1, RawJsonReader var2) {
      int var3 = this.nextKeyIndex();
      this.stringKeys[var3] = var1;
      if (GithubMessageUtil.isGithub()) {
         this.lineNumbers[var3] = var2.getLine();
         this.columnNumbers[var3] = var2.getColumn();
      }
   }

   class="kw">public void pushIntKey(int var1, RawJsonReader var2) {
      int var3 = this.nextKeyIndex();
      this.intKeys[var3] = var1;
      if (GithubMessageUtil.isGithub()) {
         this.lineNumbers[var3] = var2.getLine();
         this.columnNumbers[var3] = var2.getColumn();
      }
   }

   class="kw">public void popKey() {
      this.stringKeys[--this.keysSize] = null;
   }

   class="kw">private int nextIgnoredUnknownIndex() {
      int var1 = this.ignoredUnknownSize++;
      if (this.ignoredUnknownKeys.length <= var1) {
         this.ignoredUnknownKeys = Arrays.copyOf(this.ignoredUnknownKeys, grow(var1));
      }

      class="kw">return var1;
   }

   class="kw">public void ignoreUnusedKey(String var1) {
      int var2 = this.nextIgnoredUnknownIndex();
      this.ignoredUnknownKeys[var2] = var1;
   }

   class="kw">public void popIgnoredUnusedKey() {
      this.ignoredUnknownKeys[--this.ignoredUnknownSize] = null;
   }

   class="kw">public int getIgnoredUnusedSize() {
      class="kw">return this.ignoredUnknownSize;
   }

   class="kw">public boolean consumeIgnoredUnknownKey(@Nonnull RawJsonReader var1) class="kw">throws IOException {
      if (this.ignoredUnknownSize <= 0) {
         class="kw">return false;
      }

      int var2 = this.ignoredUnknownSize - 1;
      String var3 = this.ignoredUnknownKeys[var2];
      if (var3 == null) {
         class="kw">return false;
      }

      if (!var1.tryConsumeString(var3)) {
         class="kw">return false;
      }

      this.ignoredUnknownKeys[var2] = null;
      class="kw">return true;
   }

   class="kw">public boolean consumeIgnoredUnknownKey(@Nonnull String var1) {
      if (this.ignoredUnknownSize <= 0) {
         class="kw">return false;
      }

      int var2 = this.ignoredUnknownSize - 1;
      if (!var1.equals(this.ignoredUnknownKeys[var2])) {
         class="kw">return false;
      }

      this.ignoredUnknownKeys[var2] = null;
      class="kw">return true;
   }

   class="kw">public void readUnknownKey(@Nonnull RawJsonReader var1) class="kw">throws IOException {
      if (!this.consumeIgnoredUnknownKey(var1)) {
         String var2 = var1.readString();
         if (!isIgnoredMetadataKey(var2)) {
            this.recordUnknownKey(var2);
         }
      }
   }

   class="kw">public void addUnknownKey(@Nonnull String var1) {
      if (!this.consumeIgnoredUnknownKey(var1)) {
         if (!isIgnoredMetadataKey(var1)) {
            if (this.keysSize != 0 || !"Parent".equals(var1)) {
               this.recordUnknownKey(var1);
            }
         }
      }
   }

   class="kw">protected void recordUnknownKey(@Nonnull String var1) {
   }

   class="kw">private class="kw">static boolean isIgnoredMetadataKey(@Nonnull String var0) {
      class="kw">return class="kw">switch (var0) {
         case "$Title", "$Comment", "$TODO", "$Author", "$Position", "$FloatingFunctionNodes", "$Groups", "$WorkspaceID", "$NodeEditorMetadata", "$NodeId" -> true;
         class="kw">default -> false;
      };
   }

   class="kw">public String peekKey() {
      class="kw">return this.peekKey('.');
   }

   class="kw">public String peekKey(char var1) {
      if (this.keysSize == 0) {
         class="kw">return "";
      }

      if (this.keysSize == 1) {
         String var5 = this.stringKeys[0];
         class="kw">return var5 != null ? var5 : String.valueOf(this.intKeys[0]);
      }

      StringBuilder var2 = new StringBuilder();

      for (int var3 = 0; var3 < this.keysSize; var3++) {
         if (var3 > 0) {
            var2.append(var1);
         }

         String var4 = this.stringKeys[var3];
         if (var4 != null) {
            var2.append(var4);
         } else {
            var2.append(this.intKeys[var3]);
         }
      }

      class="kw">return var2.toString();
   }

   class="kw">public int peekLine() {
      class="kw">return GithubMessageUtil.isGithub() && this.keysSize > 0 ? this.lineNumbers[this.keysSize - 1] : -1;
   }

   class="kw">public int peekColumn() {
      class="kw">return GithubMessageUtil.isGithub() && this.keysSize > 0 ? this.columnNumbers[this.keysSize - 1] : -1;
   }

   @Nonnull
   class="kw">public List<String> getUnknownKeys() {
      class="kw">return List.of();
   }

   class="kw">public ValidationResults getValidationResults() {
      class="kw">return this.validationResults;
   }

   @Deprecated
   class="kw">public Map<String, Object> getMetadata() {
      class="kw">return this.metadata;
   }

   class="kw">public void appendDetailsTo(@Nonnull StringBuilder var1) {
      var1.append("ExtraInfo\n");
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "ExtraInfo{version="
         + this.legacyVersion
         + ", stringKeys="
         + Arrays.toString(this.stringKeys)
         + ", intKeys="
         + Arrays.toString(this.intKeys)
         + ", keysSize="
         + this.keysSize
         + ", ignoredUnknownKeys="
         + Arrays.toString(this.ignoredUnknownKeys)
         + ", ignoredUnknownSize="
         + this.ignoredUnknownSize
         + ", unknownKeys="
         + this.getUnknownKeys()
         + ", validationResults="
         + this.validationResults
         + "}";
   }

   class="kw">private class="kw">static int grow(int var0) {
      class="kw">return var0 + (var0 >> 1);
   }
}