code: private void unmarshalWithExplodedStrategy(EmbeddedMetadata embeddedMetadata, Object target)
        throws Throwable {
      Object embeddedObject = initializeEmbedded(embeddedMetadata, target);
      for (PropertyMetadata propertyMetadata : embeddedMetadata.getPropertyMetadataCollection()) {
        unmarshalProperty(propertyMetadata, embeddedObject);
      }
      for (EmbeddedMetadata embeddedMetadata2 : embeddedMetadata.getEmbeddedMetadataCollection()) {
        unmarshalWithExplodedStrategy(embeddedMetadata2, embeddedObject);
      }
      ConstructorMetadata constructorMetadata = embeddedMetadata.getConstructorMetadata();
      if (constructorMetadata.isBuilderConstructionStrategy()) {
        embeddedObject = constructorMetadata.getBuildMethodHandle().invoke(embeddedObject);
      }
      embeddedMetadata.getWriteMethod().invoke(target, embeddedObject);
    }
docs: Unmarshals the embedded field represented by the given embedded metadata.
  
  @param embeddedMetadata
  the embedded metadata
  @param target
  the target object that needs to be updated
  @throws Throwable
  propagated