Package ch.njol.skript.classes
Class ConfigurationSerializer<T extends ConfigurationSerializable>
java.lang.Object
ch.njol.yggdrasil.YggdrasilSerializer<T>
ch.njol.skript.classes.Serializer<T>
ch.njol.skript.classes.ConfigurationSerializer<T>
- All Implemented Interfaces:
ClassResolver
Uses strings for serialisation because the whole ConfigurationSerializable interface is badly documented, and especially DelegateDeserialization doesn't work well with
Yggdrasil.
-
Field Summary
Fields inherited from class ch.njol.skript.classes.Serializer
info -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanReturns whether the class should be instantiated using its nullary constructor or not.protected Tdeserialize(Fields fields) Used to deserialise Bukkit objects and other stuff that cannot be instantiated, e.g.Deprecated.voiddeserialize(T o, Fields fields) Deserializes an object.static <T extends ConfigurationSerializable>
TdeserializeCS(String s, Class<T> c) static <T extends ConfigurationSerializable>
TdeserializeCSOld(String s, Class<T> c) Deprecated.booleanNot currently used (everything happens on Bukkit's main thread).<E extends T>
EnewInstance(Class<E> c) Creates a new instance of the given class.Serialises the given object.static StringMethods inherited from class ch.njol.skript.classes.Serializer
canBeInstantiated, deserialize, getClass, getID
-
Constructor Details
-
ConfigurationSerializer
public ConfigurationSerializer()
-
-
Method Details
-
serialize
Description copied from class:SerializerSerialises the given object.Use return new
Fields(this); to emulate the default behaviour.This method must be thread-safe. Use
Task.callSync(Callable)if you need to serialise on Bukkit's main thread.- Specified by:
serializein classSerializer<T extends ConfigurationSerializable>- Parameters:
o- The object to serialise- Returns:
- A Fields object representing the object's fields to serialise. Must not be null.
- Throws:
NotSerializableException- If this object could not be serialized
-
mustSyncDeserialization
public boolean mustSyncDeserialization()Description copied from class:SerializerNot currently used (everything happens on Bukkit's main thread).- Specified by:
mustSyncDeserializationin classSerializer<T extends ConfigurationSerializable>- Returns:
- Whether deserialisation must be done on Bukkit's main thread.
-
canBeInstantiated
public boolean canBeInstantiated()Description copied from class:SerializerReturns whether the class should be instantiated using its nullary constructor or not. Return false if the class has no nullary constructor or if you do not have control over the source of the class (e.g. if it's from an API).You must override and use
Serializer.deserialize(Fields)if this method returns false (Serializer.deserialize(Object, Fields)will no be used anymore in this case).- Specified by:
canBeInstantiatedin classSerializer<T extends ConfigurationSerializable>
-
deserialize
Description copied from class:SerializerUsed to deserialise Bukkit objects and other stuff that cannot be instantiated, e.g. a plugin may and should not create a new instance ofWorld, but useBukkit.getWorld(String)to get an existing world object.- Overrides:
deserializein classSerializer<T extends ConfigurationSerializable>- Parameters:
fields- The Fields object that holds the information about the serialised object- Returns:
- The deserialised object. Must not be null (throw an exception instead).
- Throws:
StreamCorruptedException- If the given data is invalid or incomplete
-
serializeCS
-
deserializeCS
-
newInstance
Description copied from class:YggdrasilSerializerCreates a new instance of the given class.- Overrides:
newInstancein classSerializer<T extends ConfigurationSerializable>- Parameters:
c- The class as read from stream- Returns:
- A new instance of the given class. Must not be null if
YggdrasilSerializer.canBeInstantiated(Class)returned true.
-
deserialize
Description copied from class:YggdrasilSerializerDeserializes an object.Use fields.
setFields(o); to emulate the default behaviour.- Overrides:
deserializein classSerializer<T extends ConfigurationSerializable>- Parameters:
o- The object to deserialize as returned byYggdrasilSerializer.newInstance(Class).fields- The fields read from stream- Throws:
StreamCorruptedException- If deserialization failed because the data read from stream is incomplete or invalid.
-
deserialize
Deprecated.Description copied from class:SerializerDeserialises an object from a string returned by this serializer or an earlier version thereof.This method should only return null if the input is invalid (i.e. not produced by
Serializer.serialize(Object)or an older version of that method)This method must only be called from Bukkit's main thread if
Serializer.mustSyncDeserialization()returned true.- Overrides:
deserializein classSerializer<T extends ConfigurationSerializable>- Parameters:
s-- Returns:
- The deserialised object or null if the input is invalid. An error message may be logged to specify the cause.
-
deserializeCSOld
@Deprecated @Nullable public static <T extends ConfigurationSerializable> T deserializeCSOld(String s, Class<T> c) Deprecated.
-