class NamingServiceCreateTasks {

    public void createVpnBondingServiceName(BuildingBlockExecution execution) throws BBObjectNotFoundException {
        ServiceInstance serviceInstance = extractPojosForBB.extractByKey(execution, ResourceKey.SERVICE_INSTANCE_ID);
        L3Network network = extractPojosForBB.extractByKey(execution, ResourceKey.NETWORK_ID);
        VpnBinding vpnBinding = extractPojosForBB.extractByKey(execution, ResourceKey.VPN_ID);
        NamingRequestObject namingRequestObject = new NamingRequestObject();
        namingRequestObject.setExternalKeyValue(serviceInstance.getServiceInstanceId());
        namingRequestObject.setPolicyInstanceNameValue(serviceInstance.getModelInfoServiceInstance().getNamingPolicy());
        namingRequestObject.setNamingTypeValue(NamingServiceConstants.NAMING_TYPE_SERVICE);
        namingRequestObject.setServiceModelNameValue(serviceInstance.getModelInfoServiceInstance().getModelName());
        namingRequestObject.setModelVersionValue(serviceInstance.getModelInfoServiceInstance().getModelVersion());
        namingRequestObject.setNetworkNameValue(network.getNetworkName());
        namingRequestObject.setVpnNameValue(vpnBinding.getVpnName());
        namingRequestObject.setResourceNameValue(NamingServiceConstants.RESOURCE_NAME_SERVICE_INSTANCE_NAME);

        String generatedVpnBondingServiceName = "";
        try {
            generatedVpnBondingServiceName = namingServiceResources.generateServiceInstanceName(namingRequestObject);
        } catch (Exception ex) {
            exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex);
        }
        serviceInstance.setServiceInstanceName(generatedVpnBondingServiceName);
    }

}