+ /**
+ * Register new type to class mapping used to assign return type when deserializing message
+ * @param key type to class key
+ * @param clazz return class
+ */
+ public void registerMapping(final TypeToClassKey key, final Class<?> clazz) {
+ messageClassMap.put(key, clazz);
+ }
+
+ /**
+ * Unregister type to class mapping used to assign return type when deserializing message
+ * @param key type to class key
+ * @return true if mapping was successfully removed
+ */
+ public boolean unregisterMapping(final TypeToClassKey key) {
+ if (key == null) {
+ throw new IllegalArgumentException("TypeToClassKey is null");
+ }
+
+ return messageClassMap.remove(key) != null;
+ }
+