Package org.bukkit.persistence
Interface PersistentDataType<T,Z>
- Type Parameters:
- T- the primary object type that is stored in the given tag
- Z- 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 SummaryNested Classes Modifier and Type Interface Description static classPersistentDataType.PrimitivePersistentDataType<T>A default implementation that simply exists to pass on the retrieved or inserted value to the next layer.
- 
Field SummaryFields Modifier and Type Field Description static PersistentDataType<Byte,Byte>BYTEstatic PersistentDataType<byte[],byte[]>BYTE_ARRAYstatic PersistentDataType<Double,Double>DOUBLEstatic PersistentDataType<Float,Float>FLOATstatic PersistentDataType<Integer,Integer>INTEGERstatic PersistentDataType<int[],int[]>INTEGER_ARRAYstatic PersistentDataType<Long,Long>LONGstatic PersistentDataType<long[],long[]>LONG_ARRAYstatic PersistentDataType<Short,Short>SHORTstatic PersistentDataType<String,String>STRINGstatic PersistentDataType<PersistentDataContainer,PersistentDataContainer>TAG_CONTAINERstatic PersistentDataType<PersistentDataContainer[],PersistentDataContainer[]>TAG_CONTAINER_ARRAY
- 
Method SummaryModifier and Type Method Description ZfromPrimitive(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.TtoPrimitive(Z complex, PersistentDataAdapterContext context)Returns the primitive data that resembles the complex object passed to this method.
- 
Field Details- 
BYTE
- 
SHORT
- 
INTEGER
- 
LONG
- 
FLOAT
- 
DOUBLE
- 
STRING
- 
BYTE_ARRAY
- 
INTEGER_ARRAY
- 
LONG_ARRAY
- 
TAG_CONTAINER_ARRAYstatic final PersistentDataType<PersistentDataContainer[],PersistentDataContainer[]> TAG_CONTAINER_ARRAY
- 
TAG_CONTAINER
 
- 
- 
Method Details- 
getPrimitiveTypeReturns the primitive data type of this tag.- Returns:
- the class
 
- 
getComplexTypeReturns the complex object type the primitive value resembles.- Returns:
- the class type
 
- 
toPrimitiveReturns the primitive data that resembles the complex object passed to this method.- Parameters:
- complex- the complex object instance
- context- the context this operation is running in
- Returns:
- the primitive value
 
- 
fromPrimitiveCreates a complex object based of the passed primitive value- Parameters:
- primitive- the primitive value
- context- the context this operation is running in
- Returns:
- the complex object instance
 
 
-