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 ) ; }
Unmarshals the embedded field represented by the given embedded metadata .