Source:
<code>public static Provider<OpenstackNetworkProviderProperties> map(OpenStackNetworkProvider model, Provider<OpenstackNetworkProviderProperties> template) { Provider<OpenstackNetworkProviderProperties> entity = template != null? template: new Provider<>(); if (model.isSetType()) { entity.setType(mapProviderType(model.getType())); } if (model.isSetId()) { entity.setId(GuidUtils.asGuid(model.getId())); } if (model.isSetName()) { entity.setName(model.getName()); } if (model.isSetDescription()) { entity.setDescription(model.getDescription()); } if (model.isSetUrl()) { entity.setUrl(model.getUrl()); } if (model.isSetRequiresAuthentication()) { entity.setRequiringAuthentication(model.isRequiresAuthentication()); } if (model.isSetUsername()) { entity.setUsername(model.getUsername()); } if (model.isSetPassword()) { entity.setPassword(model.getPassword()); } if (model.isSetAuthenticationUrl()) { entity.setAuthUrl(model.getAuthenticationUrl()); } if (model.isSetProperties()) { Map<String, String> map = new HashMap<>(); for (Property property : model.getProperties().getProperties()) { map.put(property.getName(), property.getValue()); } entity.setCustomProperties(map); } OpenstackNetworkProviderProperties additionalProperties = new OpenstackNetworkProviderProperties(); if (model.isSetTenantName()) { additionalProperties.setTenantName(model.getTenantName()); } if (model.isSetExternalPluginType()) { additionalProperties.setPluginType(model.getExternalPluginType()); } else if (model.isSetPluginType() && model.getType().value().equalsIgnoreCase(OpenStackNetworkProviderType.NEUTRON.value())) { <START> additionalProperties.setPluginType(mapPluginType(model.getPluginType())); <END> } if (model.isSetAgentConfiguration()) { additionalProperties.setAgentConfiguration(map(model.getAgentConfiguration(), null)); } if (model.isSetReadOnly()) { additionalProperties.setReadOnly(model.isReadOnly()); } entity.setAdditionalProperties(additionalProperties); return entity; }</code><technical_language>data type of additionalProperties in long term? Do want OpenstackNetworkProviderProperties reuse for other ExternalNetworkProviders, too? do want move pluginType property Provider? Is restriction of 64 chars checked</technical_language>

Target:
public static Provider<OpenstackNetworkProviderProperties> map(OpenStackNetworkProvider model, Provider<OpenstackNetworkProviderProperties> template) { Provider<OpenstackNetworkProviderProperties> entity = template != null? template: new Provider<>(); if (model.isSetType()) { entity.setType(mapProviderType(model.getType())); } if (model.isSetId()) { entity.setId(GuidUtils.asGuid(model.getId())); } if (model.isSetName()) { entity.setName(model.getName()); } if (model.isSetDescription()) { entity.setDescription(model.getDescription()); } if (model.isSetUrl()) { entity.setUrl(model.getUrl()); } if (model.isSetRequiresAuthentication()) { entity.setRequiringAuthentication(model.isRequiresAuthentication()); } if (model.isSetUsername()) { entity.setUsername(model.getUsername()); } if (model.isSetPassword()) { entity.setPassword(model.getPassword()); } if (model.isSetAuthenticationUrl()) { entity.setAuthUrl(model.getAuthenticationUrl()); } if (model.isSetProperties()) { Map<String, String> map = new HashMap<>(); for (Property property : model.getProperties().getProperties()) { map.put(property.getName(), property.getValue()); } entity.setCustomProperties(map); } OpenstackNetworkProviderProperties additionalProperties = new OpenstackNetworkProviderProperties(); if (model.isSetTenantName()) { additionalProperties.setTenantName(model.getTenantName()); } if (model.isSetPluginType() && model.getType().value().equalsIgnoreCase(OpenStackNetworkProviderType.NEUTRON.value())) { additionalProperties.setPluginType(mapPluginType(model.getPluginType())); } if (model.isSetExternalPluginType()) { additionalProperties.setPluginType(model.getExternalPluginType()); } if (model.isSetAgentConfiguration()) { additionalProperties.setAgentConfiguration(map(model.getAgentConfiguration(), null)); } if (model.isSetReadOnly()) { additionalProperties.setReadOnly(model.isReadOnly()); } entity.setAdditionalProperties(additionalProperties); return entity; }