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
 
 -