Package org.bukkit.persistence
Interface PersistentDataType<T,Z>
-
- Type Parameters:
T
- the primary object type that is stored in the given tagZ
- the retrieved object type when applying this tag type
- All Known Implementing Classes:
PersistentDataType.PrimitivePersistentDataType
public interface PersistentDataType<T,Z>
This class represents an enum with a generic content type. It defines the types a custom tag can have.This interface can be used to create your own custom
PersistentDataType
with different complex types. This may be useful for the likes of a UUIDTagType:public class UUIDTagType implements PersistentDataType<byte[], UUID> { {@literal @Override} public Class<byte[]> getPrimitiveType() { return byte[].class; } {@literal @Override} public Class<UUID> getComplexType() { return UUID.class; } {@literal @Override} public byte[] toPrimitive(UUID complex, PersistentDataAdapterContext context) { ByteBuffer bb = ByteBuffer.wrap(new byte[16]); bb.putLong(complex.getMostSignificantBits()); bb.putLong(complex.getLeastSignificantBits()); return bb.array(); } {@literal @Override} public UUID fromPrimitive(byte[] primitive, PersistentDataAdapterContext context) { ByteBuffer bb = ByteBuffer.wrap(primitive); long firstLong = bb.getLong(); long secondLong = bb.getLong(); return new UUID(firstLong, secondLong); } }
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
PersistentDataType.PrimitivePersistentDataType<T>
A default implementation that simply exists to pass on the retrieved or inserted value to the next layer.
-
Field Summary
Fields Modifier and Type Field Description static PersistentDataType<Byte,Byte>
BYTE
static PersistentDataType<byte[],byte[]>
BYTE_ARRAY
static PersistentDataType<Double,Double>
DOUBLE
static PersistentDataType<Float,Float>
FLOAT
static PersistentDataType<Integer,Integer>
INTEGER
static PersistentDataType<int[],int[]>
INTEGER_ARRAY
static PersistentDataType<Long,Long>
LONG
static PersistentDataType<long[],long[]>
LONG_ARRAY
static PersistentDataType<Short,Short>
SHORT
static PersistentDataType<String,String>
STRING
static PersistentDataType<PersistentDataContainer,PersistentDataContainer>
TAG_CONTAINER
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Z
fromPrimitive(T primitive, PersistentDataAdapterContext context)
Creates a complex object based of the passed primitive valueClass<Z>
getComplexType()
Returns the complex object type the primitive value resembles.Class<T>
getPrimitiveType()
Returns the primitive data type of this tag.T
toPrimitive(Z complex, PersistentDataAdapterContext context)
Returns the primitive data that resembles the complex object passed to this method.
-
-
-
Field Detail
-
BYTE
static final PersistentDataType<Byte,Byte> BYTE
-
SHORT
static final PersistentDataType<Short,Short> SHORT
-
INTEGER
static final PersistentDataType<Integer,Integer> INTEGER
-
LONG
static final PersistentDataType<Long,Long> LONG
-
FLOAT
static final PersistentDataType<Float,Float> FLOAT
-
DOUBLE
static final PersistentDataType<Double,Double> DOUBLE
-
STRING
static final PersistentDataType<String,String> STRING
-
BYTE_ARRAY
static final PersistentDataType<byte[],byte[]> BYTE_ARRAY
-
INTEGER_ARRAY
static final PersistentDataType<int[],int[]> INTEGER_ARRAY
-
LONG_ARRAY
static final PersistentDataType<long[],long[]> LONG_ARRAY
-
TAG_CONTAINER
static final PersistentDataType<PersistentDataContainer,PersistentDataContainer> TAG_CONTAINER
-
-
Method Detail
-
getPrimitiveType
@NotNull Class<T> getPrimitiveType()
Returns the primitive data type of this tag.- Returns:
- the class
-
getComplexType
@NotNull Class<Z> getComplexType()
Returns the complex object type the primitive value resembles.- Returns:
- the class type
-
toPrimitive
@NotNull T toPrimitive(@NotNull Z complex, @NotNull PersistentDataAdapterContext context)
Returns the primitive data that resembles the complex object passed to this method.- Parameters:
complex
- the complex object instancecontext
- the context this operation is running in- Returns:
- the primitive value
-
fromPrimitive
@NotNull Z fromPrimitive(@NotNull T primitive, @NotNull PersistentDataAdapterContext context)
Creates a complex object based of the passed primitive value- Parameters:
primitive
- the primitive valuecontext
- the context this operation is running in- Returns:
- the complex object instance
-
-