class MsoVnfAdapterImpl {

    public void createVnf(String cloudSiteId, String cloudOwner, String tenantId, String vnfType, String vnfVersion,
            String vnfName, String requestType, String volumeGroupHeatStackId, Map<String, Object> inputs,
            Boolean failIfExists, Boolean backout, Boolean enableBridge, MsoRequest msoRequest, Holder<String> vnfId,
            Holder<Map<String, String>> outputs, Holder<VnfRollback> rollback) throws VnfException {
        // parameters used for multicloud adapter
        String genericVnfId = "";
        String vfModuleId = "";
        // Create a hook here to catch shortcut createVf requests:
        if (requestType != null && requestType.startsWith("VFMOD")) {
            logger.debug("Calling createVfModule from createVnf -- requestType={}", requestType);
            String newRequestType = requestType.substring(5);
            String vfVolGroupHeatStackId = "";
            String vfBaseHeatStackId = "";
            try {
                if (volumeGroupHeatStackId != null) {
                    vfVolGroupHeatStackId =
                            volumeGroupHeatStackId.substring(0, volumeGroupHeatStackId.lastIndexOf('|'));
                    vfBaseHeatStackId = volumeGroupHeatStackId.substring(volumeGroupHeatStackId.lastIndexOf('|') + 1);
                }
            } catch (Exception e) {
                // might be ok - both are just blank
                logger.debug("ERROR trying to parse the volumeGroupHeatStackId {}", volumeGroupHeatStackId, e);
            }
            this.createVfModule(cloudSiteId, cloudOwner, tenantId, vnfType, vnfVersion, genericVnfId, vnfName,
                    vfModuleId, newRequestType, vfVolGroupHeatStackId, vfBaseHeatStackId, null, inputs, failIfExists,
                    backout, enableBridge, msoRequest, vnfId, outputs, rollback);
            return;
        }
        // createVf will know if the requestType starts with "X" that it's the "old" way
        StringBuilder newRequestTypeSb = new StringBuilder("X");
        String vfVolGroupHeatStackId = "";
        String vfBaseHeatStackId = "";
        if (requestType != null) {
            newRequestTypeSb.append(requestType);
        }
        this.createVfModule(cloudSiteId, cloudOwner, tenantId, vnfType, vnfVersion, genericVnfId, vnfName, vfModuleId,
                newRequestTypeSb.toString(), vfVolGroupHeatStackId, vfBaseHeatStackId, null, inputs, failIfExists,
                backout, enableBridge, msoRequest, vnfId, outputs, rollback);
        return;
        // End createVf shortcut
    }

    public  MsoVnfAdapterImpl();

}