content: package org.allaymc.server.pdc;
  
  import org.allaymc.api.pdc.PersistentDataAdapterContext;
  import org.allaymc.api.pdc.PersistentDataType;
  
  import java.nio.ByteBuffer;
  import java.util.UUID;
  
  /**
   * @author IWareQ
   */
  public class UUIDDataType implements PersistentDataType<byte[], UUID> {
      @Override
      public Class<byte[]> getPrimitiveType() {
          return byte[].class;
      }
  
      @Override
      public Class<UUID> getComplexType() {
          return UUID.class;
      }
  
      @Override
      public byte[] toPrimitive(UUID complex, PersistentDataAdapterContext context) {
          var buffer = ByteBuffer.wrap(new byte[16]);
          buffer.putLong(complex.getMostSignificantBits());
          buffer.putLong(complex.getLeastSignificantBits());
          return buffer.array();
      }
  
      @Override
      public UUID fromPrimitive(byte[] primitive, PersistentDataAdapterContext context) {
          var buffer = ByteBuffer.wrap(primitive);
          var firstLong = buffer.getLong();
          var secondLong = buffer.getLong();
          return new UUID(firstLong, secondLong);
      }
  }
  