code: public static Object applyDecodingHooks(final Object objectToDecode) {
          Object transformedObject = objectToDecode;
          if (!hasDecodeHooks() || objectToDecode == null || decodingHooks.size() == 0) {
              return transformedObject;
          }
  
          List<Transformer> transformersForObject = decodingHooks.get(objectToDecode.getClass());
          if (transformersForObject != null) {
              for (final Transformer transformer : transformersForObject) {
                  transformedObject = transformer.transform(objectToDecode);
              }
          }
          return transformedObject;
      }
docs: Transforms the {@code objectToDecode} using all transformers registered for the class of this object.
  
  @param objectToDecode the BSON object to decode
  @return the transformed object