code: private static void unmarshalWithImplodedStrategy(EmbeddedMetadata embeddedMetadata,
        Object target, BaseEntity<?> nativeEntity) throws Throwable {
      Object embeddedObject = null;
      ConstructorMetadata constructorMetadata = embeddedMetadata.getConstructorMetadata();
      FullEntity<?> nativeEmbeddedEntity = null;
      String propertyName = embeddedMetadata.getMappedName();
      if (nativeEntity.contains(propertyName)) {
        Value<?> nativeValue = nativeEntity.getValue(propertyName);
        if (nativeValue instanceof NullValue) {
          embeddedMetadata.getWriteMethod().invoke(target, embeddedObject);
        } else {
          nativeEmbeddedEntity = ((EntityValue) nativeValue).get();
          embeddedObject = constructorMetadata.getConstructorMethodHandle().invoke();
        }
      }
      if (embeddedObject == null) {
        return;
      }
      for (PropertyMetadata propertyMetadata : embeddedMetadata.getPropertyMetadataCollection()) {
        unmarshalProperty(propertyMetadata, embeddedObject, nativeEmbeddedEntity);
      }
      for (EmbeddedMetadata embeddedMetadata2 : embeddedMetadata.getEmbeddedMetadataCollection()) {
        unmarshalWithImplodedStrategy(embeddedMetadata2, embeddedObject, nativeEmbeddedEntity);
      }
      if (constructorMetadata.isBuilderConstructionStrategy()) {
        embeddedObject = constructorMetadata.getBuildMethodHandle().invoke(embeddedObject);
      }
      embeddedMetadata.getWriteMethod().invoke(target, embeddedObject);
    }
docs: Unmarshals the embedded field represented by the given metadata.
  
  @param embeddedMetadata
  the metadata of the field to unmarshal
  @param target
  the object in which the embedded field is declared/accessible from
  @param nativeEntity
  the native entity from which the embedded entity is to be extracted
  @throws Throwable
  propagated