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