Package org.infinispan.protostream
Interface EnumMarshaller<E extends Enum<E>>
- All Superinterfaces:
BaseMarshaller<E>
- All Known Implementing Classes:
MonthAdapter$___Marshaller_c409c149b27332de7c8d88677a12d4136e468c61088296228688c531f047e597
Contract to be implemented by marshallers of
Enum types. Translates a Java enum into an int value
that is suitable for serializing with Protobuf. The returned integer value must be one of the values defined in the
.proto schema file. The marshaller implementation must be stateless and thread-safe.- Since:
- 1.0
-
Field Summary
Fields inherited from interface org.infinispan.protostream.BaseMarshaller
EMPTY -
Method Summary
Methods inherited from interface org.infinispan.protostream.BaseMarshaller
getJavaClass, getSubClassNames, getTypeName
-
Method Details
-
decode
Decodes an integer enum value read from a Protobuf encoded stream into a Java enum instance.If the numeric value is not recognized the method must return
nullto signal this to the library and allow the unrecognized data to be preserved. No exception should be thrown in this case.- Parameters:
enumValue- the Protobuf enum value to decode- Returns:
- a Java
Enuminstance if the value is recognized ornullotherwise.
-
encode
Encodes a JavaEnuminto its corresponding Protobuf numeric value.- Parameters:
e- anEnuminstance- Returns:
- the corresponding numeric value from the Protobuf definition of the enum.
- Throws:
IllegalArgumentException- if the given Enum argument is of an unexpected type or its value has no correspondence to a Protobuf enum value (this is a programming error, not a schema evolution issue).
-