Folks, Recently we revealed an inconsistency in our binary serialization when BinaryObject.field() is called (*IGNITE-1956*): - When field is an object, BinaryObject is returned, i.e. it is not deserialized. - When field is enum, we always try to deserialize it. This way, user cannot work with enums if corresponding class is not loaded to JVM (or type is not loaded to .NET).
The problem can be solved using three new methods: 1) BinaryType.isEnum() - to let user know whether type is enum or not. 2) BinaryObject.enumOrdinal() - to get ordinal is this object is enum. Exception will be thrown otherwise. 3) IgniteBinaries.createEnum(String typeName, int ordinal) - to create enums when there is not matching class/type in runtime. Thoughts? Vladimir.
