ParamValue class

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

Файл: com/hypixel/hytale/protocol/ParamValue.java

Поля (5)

МодификаторыТипИмя
final int MAX_SIZE
long var3
int var3
int var5
int var6

Методы (12)

МодификаторыВозвратСигнатура
abstract abstract int computeSizeint computeSize()
public int computeSizeWithTypeIdint computeSizeWithTypeId()
public int getTypeIdint getTypeId()
if if(this instanceof StringParamValue var6)
abstract abstract int serializeint serialize(@Nonnull MemorySegment var1, int var2)
public int serializeWithTypeIdint serializeWithTypeId(@Nonnull MemorySegment var1, int var2)
return switchreturn switch(var5)
static ParamValue toObjectParamValue toObject(MemorySegment var0)
static ParamValue toObjectParamValue toObject(MemorySegment var0, int var1)
static ParamValue toObjectParamValue toObject(MemorySegment var0, int var1, @Nullable ReadCursor var2)
abstract return toObjectreturn toObject(var0, 0, null)
abstract return toObjectreturn toObject(var0, var1, null)

Исходный код

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

class="kw">import com.hypixel.hytale.protocol.io.ProtocolException;
class="kw">import com.hypixel.hytale.protocol.io.ReadCursor;
class="kw">import com.hypixel.hytale.protocol.io.VarInt;
class="kw">import java.lang.foreign.MemorySegment;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class="kw">abstract class ParamValue {
   class="kw">public class="kw">static class="kw">final int MAX_SIZE = 16384011;

   class="kw">public ParamValue() {
   }

   class="kw">public class="kw">static ParamValue toObject(MemorySegment var0) {
      class="kw">return toObject(var0, 0, null);
   }

   class="kw">public class="kw">static ParamValue toObject(MemorySegment var0, int var1) {
      class="kw">return toObject(var0, var1, null);
   }

   class="kw">public class="kw">static ParamValue toObject(MemorySegment var0, int var1, @Nullable ReadCursor var2) {
      long var3 = VarInt.getWithLength(var0, var1);
      int var5 = (int)var3;
      int var6 = (int)(var3 >>> 32);

      class="kw">return class="kw">switch (var5) {
         case 0 -> StringParamValue.toObject(var0, var1 + var6, var2);
         case 1 -> BoolParamValue.toObject(var0, var1 + var6, var2);
         case 2 -> DoubleParamValue.toObject(var0, var1 + var6, var2);
         case 3 -> IntParamValue.toObject(var0, var1 + var6, var2);
         case 4 -> LongParamValue.toObject(var0, var1 + var6, var2);
         class="kw">default -> throw ProtocolException.unknownPolymorphicType("ParamValue", var5);
      };
   }

   class="kw">public int getTypeId() {
      if (this class="kw">instanceof StringParamValue var6) {
         class="kw">return 0;
      } else if (this class="kw">instanceof BoolParamValue var5) {
         class="kw">return 1;
      } else if (this class="kw">instanceof DoubleParamValue var4) {
         class="kw">return 2;
      } else if (this class="kw">instanceof IntParamValue var3) {
         class="kw">return 3;
      } else if (this class="kw">instanceof LongParamValue var1) {
         class="kw">return 4;
      } else {
         throw new IllegalStateException("Unknown subtype: " + this.getClass().getName());
      }
   }

   class="kw">public class="kw">abstract int serialize(@Nonnull MemorySegment var1, int var2);

   class="kw">public class="kw">abstract int computeSize();

   class="kw">public int serializeWithTypeId(@Nonnull MemorySegment var1, int var2) {
      int var3 = VarInt.set(var1, var2, this.getTypeId());
      class="kw">return var3 + this.serialize(var1, var2 + var3);
   }

   class="kw">public int computeSizeWithTypeId() {
      class="kw">return VarInt.size(this.getTypeId()) + this.computeSize();
   }
}