Package ch.njol.yggdrasil
Interface YggdrasilSerializable.YggdrasilRobustSerializable
- All Superinterfaces:
YggdrasilSerializable
- All Known Implementing Classes:
Direction
- Enclosing interface:
- YggdrasilSerializable
public static interface YggdrasilSerializable.YggdrasilRobustSerializable
extends YggdrasilSerializable
A class that has had fields added, changed, or removed from it should implement this interface to handle the now invalid/missing fields that may still be read from stream.
-
Nested Class Summary
Nested classes/interfaces inherited from interface ch.njol.yggdrasil.YggdrasilSerializable
YggdrasilSerializable.YggdrasilExtendedSerializable, YggdrasilSerializable.YggdrasilRobustEnum, YggdrasilSerializable.YggdrasilRobustSerializable -
Method Summary
Modifier and TypeMethodDescriptionbooleanexcessiveField(@NonNull Fields.FieldContext field)Called if a field was read from stream which does not exist in this class.booleanincompatibleField(@NonNull Field field, @NonNull Fields.FieldContext value)Called if a field that was read from stream is of an incompatible type to the existing field in this class.booleanmissingField(@NonNull Field field)Called if a field was not found in the stream.
-
Method Details
-
incompatibleField
boolean incompatibleField(@NonNull Field field, @NonNull Fields.FieldContext value) throws StreamCorruptedExceptionCalled if a field that was read from stream is of an incompatible type to the existing field in this class.- Parameters:
field- The Java fieldvalue- The field read from stream- Returns:
- Whether the field was handled. If false,
yggdrasil.
incompatibleField(this, field, value) will be called. - Throws:
StreamCorruptedException
-
excessiveField
Called if a field was read from stream which does not exist in this class.- Parameters:
field- The field read from stream- Returns:
- Whether the field was handled. If false, yggdrasil.
excessiveField(this, field) will be called. - Throws:
StreamCorruptedException
-
missingField
Called if a field was not found in the stream.- Parameters:
field- The field that did not occur in the stream- Returns:
- Whether the field was handled (e.g. true if the default value is fine). If false,
yggdrasil.
missingField(this, field) will be called. - Throws:
StreamCorruptedException
-